2 xmlns='http://www.onap.org/sdnc/svclogic'
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}'>
4 <method rpc='self-serve-netbox-ip-assign' mode='sync'>
6 <switch test='`$ss.capability-name`'>
8 <return status="failure">
9 <parameter name="ack-final" value="Y" />
10 <parameter name="error-code" value="500"/>
11 <parameter name="error-message" value="ss.capability-name is null" />
15 <switch test='`$ss.capability-action`'>
17 <return status="failure">
18 <parameter name="ack-final" value="Y" />
19 <parameter name="error-code" value="500"/>
20 <parameter name="error-message" value="ss.capability-action is null" />
24 <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >
25 <outcome value='failure'>
26 <return status="failure">
27 <parameter name="ack-final" value="Y" />
28 <parameter name="error-code" value="500"/>
29 <parameter name="error-message" value="`'Not all assignments are resolved' + $error-message`" />
33 <switch test="`$ss.capability-type == 'vnf'`">
34 <outcome value='true'>
36 <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >
38 <parameter name='tmp.ss.param.capability-name'
39 value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />
42 <parameter name='tmp.ss.param.name'
43 value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].name`' />
45 <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
46 <outcome value='true'>
48 <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key_length`">
49 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>
50 <outcome value='service-instance-id'>
52 <parameter name='tmp.ss.service-instance-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />
55 <outcome value='vnf-id'>
57 <parameter name='tmp.ss.vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />
60 <outcome value='prefix-id'>
62 <parameter name='tmp.ss.prefix-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />
65 <outcome value='external_key'>
67 <parameter name='tmp.ss.external-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />
72 <switch test='`$ss.capability-action`'>
73 <outcome value='assign'>
74 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>
75 <outcome value='FAILED'>
77 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
78 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
79 <parameter name="vf_module_id" value="`$tmp.ss.vnf-id`" />
80 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
81 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
82 <parameter name="external_key" value="`$tmp.ss.external-key`" />
83 <outcome value='failure'>
86 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />
88 <return status='failure'>
89 <parameter name='error-code' value='' />
90 <parameter name='error-message' value='' />
94 <outcome value='success'>
96 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
97 <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
98 <parameter name="regex" value="/"/>
99 <parameter name="ctx_memory_result_key" value="ip" />
102 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value'
106 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status'
114 <outcome value='PENDING'>
115 <block atomic='true'>
116 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
117 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
118 <parameter name="vf_module_id" value="`$tmp.ss.vnf-id`" />
119 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
120 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
121 <parameter name="external_key" value="`$tmp.ss.external-key`" />
122 <outcome value='failure'>
123 <block atomic='true'>
125 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />
127 <return status='failure'>
128 <parameter name='error-code' value='' />
129 <parameter name='error-message' value='' />
133 <outcome value='success'>
135 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
136 <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
137 <parameter name="regex" value="/"/>
138 <parameter name="ctx_memory_result_key" value="ip" />
141 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value'
145 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status'
155 <outcome value='unassign'>
156 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>
157 <outcome value='SUCCESS'>
158 <block atomic="true">
159 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
160 key='SELECT * from IPAM_IP_ASSIGNEMENT
161 WHERE external_key = $tmp.ss.external-key
162 AND service_instance_id = $tmp.ss.service-instance-id' >
163 <outcome value='not-found'>
166 <outcome value='success'>
167 <block atomic="true">
169 <parameter name='tmp.status' value="PENDING_DELETE" />
171 <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
172 key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status
173 WHERE external_key = $tmp.ss.external-key
174 AND service_instance_id = $tmp.ss.service-instance-id" >
175 <outcome value='failure'>
176 <return status='failure'>
177 <parameter name='ack-final' value='Y'/>
178 <parameter name="error-code" value="500" />
179 <parameter name="error-message" value="`'Error updating NETBOX_IP_ASSIGNMENTS table to unassign ip with external_key=' + $tmp.ss.external-key + ' and service_instance_id=' + $tmp.ss.service-instance-id`" />
183 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
184 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
185 <parameter name="external_key" value="`$tmp.ss.external-key`" />
186 <outcome value='failure'>
187 <return status='failure'>
188 <parameter name='ack-final' value='Y'/>
189 <parameter name="error-code" value="500" />
190 <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
193 <outcome value='success'>
195 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status'
212 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
213 <parameter name="logger" value="message-log"/>
214 <parameter name="field1" value="__TIMESTAMP__"/>
215 <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>
220 <switch test="`$ss.capability-type == 'vf-module'`">
221 <outcome value='true'>
223 <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`">
225 <parameter name='tmp.ss.param.capability-name'
226 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`' />
229 <parameter name='tmp.ss.param.name'
230 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`' />
232 <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
233 <outcome value='true'>
235 <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`">
236 <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`'>
237 <outcome value='service-instance-id'>
239 <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`' />
242 <outcome value='vf-module-id'>
244 <parameter name='tmp.ss.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[$pidx].resource-resolution-data.resource-key[$kidx].value`' />
247 <outcome value='prefix-id'>
249 <parameter name='tmp.ss.prefix-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`' />
252 <outcome value='ip-address-id'>
254 <parameter name='tmp.ss.ip-address-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`' />
257 <outcome value='external_key'>
259 <parameter name='tmp.ss.external-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`' />
264 <switch test='`$ss.capability-action`'>
265 <outcome value='assign'>
266 <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`'>
267 <outcome value='FAILED'>
268 <block atomic='true'>
269 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
270 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
271 <parameter name="vf_module_id" value="`$tmp.ss.vf-module-id`" />
272 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
273 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
274 <parameter name="external_key" value="`$tmp.ss.external-key`" />
275 <outcome value='failure'>
276 <block atomic='true'>
278 <parameter name='service-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' />
280 <return status='failure'>
281 <parameter name='error-code' value='' />
282 <parameter name='error-message' value='' />
286 <outcome value='success'>
288 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
289 <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
290 <parameter name="regex" value="/"/>
291 <parameter name="ctx_memory_result_key" value="ip" />
294 <parameter name='service-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'
298 <parameter name='service-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'
306 <outcome value='PENDING'>
307 <block atomic='true'>
308 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
309 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
310 <parameter name="vf_module_id" value="`$tmp.ss.vf-module-id`" />
311 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
312 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
313 <parameter name="external_key" value="`$tmp.ss.external-key`" />
314 <outcome value='failure'>
315 <block atomic='true'>
317 <parameter name='service-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' />
319 <return status='failure'>
320 <parameter name='error-code' value='' />
321 <parameter name='error-message' value='' />
325 <outcome value='success'>
327 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
328 <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
329 <parameter name="regex" value="/"/>
330 <parameter name="ctx_memory_result_key" value="ip" />
333 <parameter name='service-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'
337 <parameter name='service-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'
347 <outcome value='unassign'>
348 <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`'>
349 <outcome value='SUCCESS'>
350 <block atomic="true">
351 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
352 key='SELECT * from IPAM_IP_ASSIGNEMENT
353 WHERE external_key = $tmp.ss.external-key
354 AND service_instance_id = $tmp.ss.service-instance-id' >
355 <outcome value='not-found'>
358 <outcome value='success'>
359 <block atomic="true">
361 <parameter name='tmp.status' value="PENDING_DELETE" />
363 <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
364 key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status
365 WHERE external_key = $tmp.ss.external-key
366 AND service_instance_id = $tmp.ss.service-instance-id" >
367 <outcome value='failure'>
368 <return status='failure'>
369 <parameter name='ack-final' value='Y'/>
370 <parameter name="error-code" value="500" />
371 <parameter name="error-message" value="`'Error updating NETBOX_IP_ASSIGNMENTS table to unassign ip with external_key=' + $tmp.ss.external-key + ' and service_instance_id=' + $tmp.ss.service-instance-id`" />
375 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
376 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
377 <parameter name="external_key" value="`$tmp.ss.external-key`" />
378 <outcome value='failure'>
379 <return status='failure'>
380 <parameter name='ack-final' value='Y'/>
381 <parameter name="error-code" value="500" />
382 <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
385 <outcome value='success'>
387 <parameter name='service-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'
404 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
405 <parameter name="logger" value="message-log"/>
406 <parameter name="field1" value="__TIMESTAMP__"/>
407 <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>