2 xmlns='http://www.onap.org/sdnc/svclogic'
\r
3 xmlns:xsi='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
4 <method rpc='generate-FQPN' mode='sync'>
\r
5 <block atomic="true">
\r
6 <switch test='`$generate-FQPN-input.plan-name`'>
\r
8 <return status="failure">
\r
9 <parameter name="ack-final" value="Y" />
\r
10 <parameter name="error-code" value="500"/>
\r
11 <parameter name="error-message" value="generate-FQPN-input.plan-name is null" />
\r
16 <parameter name='eipam-ip-block.plan-name' value='`$generate-FQPN-input.plan-name`' />
\r
19 <parameter name='generate-FQPN-output.' value='' />
\r
21 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="getPlanTopology">
\r
22 <outcome value='failure'>
\r
23 <return status="failure">
\r
24 <parameter name="ack-final" value="Y" />
\r
25 <parameter name="error-code" value="500"/>
\r
26 <parameter name="error-message" value="`'An error occured while getting Keyname and Keyvalue for address plan, '+ $eipam-ip-block.planName + ', from EIPAM'`" />
\r
30 <switch test='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`'>
\r
32 <return status="failure">
\r
33 <parameter name="ack-final" value="Y" />
\r
34 <parameter name="error-code" value="500"/>
\r
35 <parameter name="error-message" value="eipam-ip-block.getPlanTopologyResponse.TopologyDetails is null" />
\r
39 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>
\r
40 <outcome value='true'>
\r
41 <call module='GENERIC-RESOURCE-API' rpc='self-serve-generate-FQPN' mode='sync' ></call>
\r
43 <outcome value='false'>
\r
44 <block atomic='true'>
\r
45 <for index="resp-index" start="0" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">
\r
46 <switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>
\r
47 <outcome value='false'>
\r
48 <return status="failure">
\r
49 <parameter name="ack-final" value="Y" />
\r
50 <parameter name="error-code" value="500"/>
\r
51 <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
56 <parameter name='pool-index'
\r
57 value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />
\r
60 <parameter name='tmp.final.key-value' value="" />
\r
63 <parameter name='tmp.getPlanTopologyResponse.key-name'
\r
64 value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />
\r
66 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
\r
67 <parameter name="original_string" value="`$tmp.getPlanTopologyResponse.key-name`" />
\r
68 <parameter name="regex" value=":" />
\r
69 <parameter name="ctx_memory_result_key" value="tmp.split.key-name" />
\r
71 <for index="split-index" start="0" end="`$tmp.split.key-name_length`">
\r
73 <parameter name='tmp.eipam.key-name'
\r
74 value='`$tmp.split.key-name[$split-index]`' />
\r
76 <block atomic='true'>
\r
77 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
78 key='SELECT key_value_source from ADDRESS_PLAN_POLICIES WHERE key_name = $tmp.eipam.key-name '
\r
79 pfx='db.address-plan-policies'>
\r
80 <outcome value='failure'>
\r
81 <return status='failure'>
\r
82 <parameter name='ack-final' value='Y'/>
\r
83 <parameter name="error-code" value="500" />
\r
84 <parameter name="error-message" value="Error reading ADDRESS_PLAN_POLICIES table" />
\r
87 <outcome value='not-found'>
\r
88 <return status='failure'>
\r
89 <parameter name='ack-final' value='Y'/>
\r
90 <parameter name="error-code" value="500" />
\r
91 <parameter name="error-message" value="`'No ADDRESS_PLAN_POLICIES entry found for key_name = ' + $eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$key-index].KeyName`" />
\r
95 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
96 key='SELECT * from ROUTING_CHARACTERISTIC_MAPPING WHERE network_role = $generate-FQPN-input.network-role '
\r
97 pfx='db.routing-characteristic_mapping[]'>
\r
98 <outcome value='failure'>
\r
99 <return status='failure'>
\r
100 <parameter name='ack-final' value='Y'/>
\r
101 <parameter name="error-code" value="500" />
\r
102 <parameter name="error-message" value="Error reading ROUTING_CHARACTERISTIC_MAPPING table" />
\r
105 <outcome value='not-found'>
\r
106 <return status='failure'>
\r
107 <parameter name='ack-final' value='Y'/>
\r
108 <parameter name="error-code" value="500" />
\r
109 <parameter name="error-message" value="`'No ROUTING_CHARACTERISTIC_MAPPING entry found for network_role = ' + $generate-FQPN-input.network-role`" />
\r
114 <parameter name='tmp.key-value' value='' />
\r
116 <switch test='`$db.address-plan-policies.key-value-source`'>
\r
117 <outcome value='AddressPlanPolicyDG-Routing_Characteristic'>
\r
118 <block atomic="true">
\r
120 <parameter name='tmp.key-value' value='-1' />
\r
122 <switch test='`$db.routing-characteristic_mapping_length > 1`'>
\r
123 <outcome value='true'>
\r
125 <for index="routing-index" start="0" end="`$db.routing-characteristic_mapping_length`">
\r
126 <switch test='`$db.routing-characteristic_mapping[$routing-index].vrf-name == $generate-FQPN-input.vrf-name`'>
\r
127 <outcome value='true'>
\r
128 <block atomic='true'>
\r
130 <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[$routing-index].routing-characteristic`' />
\r
132 <return status='failure'></return>
\r
137 <return status='success'></return>
\r
140 <outcome value='false'>
\r
142 <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].routing-characteristic`' />
\r
146 <switch test='`$tmp.key-value`'>
\r
147 <outcome value='-1'>
\r
148 <return status='failure'>
\r
149 <parameter name='ack-final' value='Y'/>
\r
150 <parameter name="error-code" value="500" />
\r
151 <parameter name="error-message" value="No matching ROUTING_CHARACTERISTIC_MAPPING.vrf-name found" />
\r
157 <outcome value='AddressPlanPolicyDG-Location_Clli8'>
\r
159 <parameter name='tmp.key-value' value='`$generate-FQPN-input.location-clli8`' />
\r
162 <outcome value='AddressPlanPolicyDG-Vrf_Name'>
\r
163 <switch test='`$generate-FQPN-input.vrf-name`'>
\r
166 <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].vrf-name`' />
\r
171 <outcome value='cloud_region_id'>
\r
173 <parameter name='tmp.key-value' value='`$generate-FQPN-input.aic-cloud-region`' />
\r
176 <outcome value='AddressPlanPolicyDG-Complex_region'>
\r
178 <parameter name='tmp.key-value' value='`$aai.complex.region`' />
\r
181 <outcome value='AddressPlanPolicyDG-Network_Name'>
\r
183 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-name`' />
\r
186 <outcome value='AddressPlanPolicyDG-Subnet_Role'>
\r
187 <switch test='`$generate-FQPN-input.subnet-role`' >
\r
190 <parameter name='tmp.key-value' value='STATIC' />
\r
193 <outcome value='Other'>
\r
195 <parameter name='tmp.key-value' value='`$generate-FQPN-input.subnet-role`' />
\r
200 <outcome value='AddressPlanPolicyDG-Network_Role'>
\r
202 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-role`' />
\r
205 <outcome value='AddressPlanPolicyDG-Network_Id'>
\r
207 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-id`' />
\r
210 <outcome value='AddressPlanPolicyDG-Network_Collection'>
\r
212 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-collection`' />
\r
215 <outcome value='AddressPlanPolicyDG-Zone'>
\r
217 <parameter name='tmp.key-value' value='`$generate-FQPN-input.zone`' />
\r
220 <outcome value='Other'>
\r
221 <return status='failure'>
\r
222 <parameter name='ack-final' value='Y'/>
\r
223 <parameter name="error-code" value="500" />
\r
224 <parameter name="error-message" value="`'Unknown ADDRESS_PLAN_POLICIES: ' + $db.address-plan-policies.key-value-source`" />
\r
229 <switch test='`$split-index == 0`'>
\r
230 <outcome value='true'>
\r
232 <parameter name='tmp.final.key-value' value="`$tmp.key-value`" />
\r
235 <outcome value='false'>
\r
237 <parameter name='tmp.final.key-value'
\r
238 value="`$tmp.final.key-value + ':' + $tmp.key-value`" />
\r
244 <parameter name='generate-FQPN-output.pools[$pool-index].key-name'
\r
245 value='`$tmp.getPlanTopologyResponse.key-name`' />
\r
246 <parameter name='generate-FQPN-output.pools[$pool-index].key-value'
\r
247 value='`$tmp.final.key-value`' />
\r
251 <parameter name='generate-FQPN-output.pools_length'
\r
252 value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />
\r
257 <block atomic='true'>
\r
258 <for index="resp-index" start="0" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">
\r
259 <switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>
\r
260 <outcome value='false'>
\r
261 <return status="failure">
\r
262 <parameter name="ack-final" value="Y" />
\r
263 <parameter name="error-code" value="500"/>
\r
264 <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
269 <parameter name='pool-index'
\r
270 value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />
\r
273 <parameter name='tmp.final.key-value' value="" />
\r
276 <parameter name='tmp.getPlanTopologyResponse.key-name'
\r
277 value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />
\r
279 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
\r
280 <parameter name="original_string" value="`$tmp.getPlanTopologyResponse.key-name`" />
\r
281 <parameter name="regex" value=":" />
\r
282 <parameter name="ctx_memory_result_key" value="tmp.split.key-name" />
\r
284 <for index="split-index" start="0" end="`$tmp.split.key-name_length`">
\r
286 <parameter name='tmp.eipam.key-name'
\r
287 value='`$tmp.split.key-name[$split-index]`' />
\r
289 <block atomic='true'>
\r
290 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
291 key='SELECT key_value_source from ADDRESS_PLAN_POLICIES WHERE key_name = $tmp.eipam.key-name '
\r
292 pfx='db.address-plan-policies'>
\r
293 <outcome value='failure'>
\r
294 <return status='failure'>
\r
295 <parameter name='ack-final' value='Y'/>
\r
296 <parameter name="error-code" value="500" />
\r
297 <parameter name="error-message" value="Error reading ADDRESS_PLAN_POLICIES table" />
\r
300 <outcome value='not-found'>
\r
301 <return status='failure'>
\r
302 <parameter name='ack-final' value='Y'/>
\r
303 <parameter name="error-code" value="500" />
\r
304 <parameter name="error-message" value="`'No ADDRESS_PLAN_POLICIES entry found for key_name = ' + $eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$key-index].KeyName`" />
\r
308 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
309 key='SELECT * from ROUTING_CHARACTERISTIC_MAPPING WHERE network_role = $generate-FQPN-input.network-role '
\r
310 pfx='db.routing-characteristic_mapping[]'>
\r
311 <outcome value='failure'>
\r
312 <return status='failure'>
\r
313 <parameter name='ack-final' value='Y'/>
\r
314 <parameter name="error-code" value="500" />
\r
315 <parameter name="error-message" value="Error reading ROUTING_CHARACTERISTIC_MAPPING table" />
\r
318 <outcome value='not-found'>
\r
319 <return status='failure'>
\r
320 <parameter name='ack-final' value='Y'/>
\r
321 <parameter name="error-code" value="500" />
\r
322 <parameter name="error-message" value="`'No ROUTING_CHARACTERISTIC_MAPPING entry found for network_role = ' + $generate-FQPN-input.network-role`" />
\r
327 <parameter name='tmp.key-value' value='' />
\r
329 <switch test='`$db.address-plan-policies.key-value-source`'>
\r
330 <outcome value='AddressPlanPolicyDG-Routing_Characteristic'>
\r
331 <block atomic="true">
\r
333 <parameter name='tmp.key-value' value='-1' />
\r
335 <switch test='`$db.routing-characteristic_mapping_length > 1`'>
\r
336 <outcome value='true'>
\r
338 <for index="routing-index" start="0" end="`$db.routing-characteristic_mapping_length`">
\r
339 <switch test='`$db.routing-characteristic_mapping[$routing-index].vrf-name == $generate-FQPN-input.vrf-name`'>
\r
340 <outcome value='true'>
\r
341 <block atomic='true'>
\r
343 <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[$routing-index].routing-characteristic`' />
\r
345 <return status='failure'></return>
\r
350 <return status='success'></return>
\r
353 <outcome value='false'>
\r
355 <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].routing-characteristic`' />
\r
359 <switch test='`$tmp.key-value`'>
\r
360 <outcome value='-1'>
\r
361 <return status='failure'>
\r
362 <parameter name='ack-final' value='Y'/>
\r
363 <parameter name="error-code" value="500" />
\r
364 <parameter name="error-message" value="No matching ROUTING_CHARACTERISTIC_MAPPING.vrf-name found" />
\r
370 <outcome value='AddressPlanPolicyDG-Location_Clli8'>
\r
372 <parameter name='tmp.key-value' value='`$generate-FQPN-input.location-clli8`' />
\r
375 <outcome value='AddressPlanPolicyDG-Vrf_Name'>
\r
376 <switch test='`$generate-FQPN-input.vrf-name`'>
\r
379 <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].vrf-name`' />
\r
384 <outcome value='cloud_region_id'>
\r
386 <parameter name='tmp.key-value' value='`$generate-FQPN-input.aic-cloud-region`' />
\r
389 <outcome value='AddressPlanPolicyDG-Complex_region'>
\r
391 <parameter name='tmp.key-value' value='`$aai.complex.region`' />
\r
394 <outcome value='AddressPlanPolicyDG-Network_Name'>
\r
396 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-name`' />
\r
399 <outcome value='AddressPlanPolicyDG-Subnet_Role'>
\r
400 <switch test='`$generate-FQPN-input.subnet-role`' >
\r
403 <parameter name='tmp.key-value' value='STATIC' />
\r
406 <outcome value='Other'>
\r
408 <parameter name='tmp.key-value' value='`$generate-FQPN-input.subnet-role`' />
\r
413 <outcome value='AddressPlanPolicyDG-Network_Role'>
\r
415 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-role`' />
\r
418 <outcome value='AddressPlanPolicyDG-Network_Id'>
\r
420 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-id`' />
\r
423 <outcome value='AddressPlanPolicyDG-Network_Collection'>
\r
425 <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-collection`' />
\r
428 <outcome value='AddressPlanPolicyDG-Zone'>
\r
430 <parameter name='tmp.key-value' value='`$generate-FQPN-input.zone`' />
\r
433 <outcome value='Other'>
\r
434 <return status='failure'>
\r
435 <parameter name='ack-final' value='Y'/>
\r
436 <parameter name="error-code" value="500" />
\r
437 <parameter name="error-message" value="`'Unknown ADDRESS_PLAN_POLICIES: ' + $db.address-plan-policies.key-value-source`" />
\r
442 <switch test='`$split-index == 0`'>
\r
443 <outcome value='true'>
\r
445 <parameter name='tmp.final.key-value' value="`$tmp.key-value`" />
\r
448 <outcome value='false'>
\r
450 <parameter name='tmp.final.key-value'
\r
451 value="`$tmp.final.key-value + ':' + $tmp.key-value`" />
\r
457 <parameter name='generate-FQPN-output.pools[$pool-index].key-name'
\r
458 value='`$tmp.getPlanTopologyResponse.key-name`' />
\r
459 <parameter name='generate-FQPN-output.pools[$pool-index].key-value'
\r
460 value='`$tmp.final.key-value`' />
\r
464 <parameter name='generate-FQPN-output.pools_length'
\r
465 value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />
\r