Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_generate-FQPN.xml
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