Merge "Prepare for release build"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-netbox-ip-assign.xml
1 <service-logic
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'>
5         <block atomic="true">
6             <switch test='`$ss.capability-name`'>
7                 <outcome value=''>
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" />
12                     </return>
13                 </outcome>
14             </switch>
15             <switch test='`$ss.capability-action`'>
16                 <outcome value=''>
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" />
21                     </return>
22                 </outcome>
23             </switch>
24             <call module='GENERIC-RESOURCE-API' rpc='self-service-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`" />
30                     </return>
31                 </outcome>
32             </call>
33             <switch test="`$ss.capability-type == 'vnf'`">
34                 <outcome value='true'>
35                     <block>
36                         <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >
37                             <set>
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`' />
40                             </set>
41                             <set>
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`' />
44                             </set>
45                             <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
46                                 <outcome value='true'>
47                                     <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>
48                                         <outcome value='FAILED'>
49                                             <block>
50                                                 <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`">
51                                                     <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>
52                                                         <outcome value='service-instance-id'>
53                                                             <set>
54                                                                 <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                                                             </set>
56                                                         </outcome>
57                                                         <outcome value='vnf-id'>
58                                                             <set>
59                                                                 <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                                                             </set>
61                                                         </outcome>
62                                                         <outcome value='prefix-id'>
63                                                             <set>
64                                                                 <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                                                             </set>
66                                                         </outcome>
67                                                         <outcome value='external_key'>
68                                                             <set>
69                                                                 <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`' />
70                                                             </set>
71                                                         </outcome>
72                                                     </switch>
73                                                 </for>
74                                                 <switch test='`$ss.capability-action`'>
75                                                     <outcome value='assign'>
76                                                         <block atomic='true'>
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'>
84                                                                     <block atomic='true'>
85                                                                         <set>
86                                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />
87                                                                         </set>
88                                                                         <return status='failure'>
89                                                                             <parameter name='error-code' value='' />
90                                                                             <parameter name='error-message' value='' />
91                                                                         </return>
92                                                                     </block>
93                                                                 </outcome>
94                                                                 <outcome value='success'>
95                                                                     <block>
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" />
100                                                                         </execute>
101                                                                         <set>
102                                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' 
103         value='`$ip[0]`' />
104                                                                         </set>
105                                                                         <set>
106                                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' 
107         value='SUCCESS' />
108                                                                         </set>
109                                                                     </block>
110                                                                 </outcome>
111                                                             </execute>
112                                                         </block>
113                                                     </outcome>
114                                                     <outcome value='unassign'>
115                                                         <block atomic="true">
116                                                             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
117         key='SELECT * from IPAM_IP_ASSIGNEMENT 
118                 WHERE external_key = $tmp.ss.external-key
119                 AND service_instance_id = $tmp.ss.service-instance-id' >
120                                                                 <outcome value='not-found'>
121                                                                     <block></block>
122                                                                 </outcome>
123                                                                 <outcome value='success'>
124                                                                     <block atomic="true">
125                                                                         <set>
126                                                                             <parameter name='tmp.status' value="PENDING_DELETE" />
127                                                                         </set>
128                                                                         <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
129         key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status 
130                 WHERE external_key = $tmp.ss.external-key
131                 AND service_instance_id = $tmp.ss.service-instance-id" >
132                                                                             <outcome value='failure'>
133                                                                                 <return status='failure'>
134                                                                                     <parameter name='ack-final' value='Y'/>
135                                                                                     <parameter name="error-code" value="500" />
136                                                                                     <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`" />
137                                                                                 </return>
138                                                                             </outcome>
139                                                                         </update>
140                                                                         <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
141                                                                             <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
142                                                                             <parameter name="external_key" value="`$tmp.ss.external-key`" />
143                                                                             <outcome value='failure'>
144                                                                                 <return status='failure'>
145                                                                                     <parameter name='ack-final' value='Y'/>
146                                                                                     <parameter name="error-code" value="500" />
147                                                                                     <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
148                                                                                 </return>
149                                                                             </outcome>
150                                                                             <outcome value='success'>
151                                                                                 <set>
152                                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' 
153         value='DELETED' />
154                                                                                 </set>
155                                                                             </outcome>
156                                                                         </execute>
157                                                                     </block>
158                                                                 </outcome>
159                                                             </get-resource>
160                                                         </block>
161                                                     </outcome>
162                                                 </switch>
163                                             </block>
164                                         </outcome>
165                                         <outcome value='PENDING'>
166                                             <block>
167                                                 <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`">
168                                                     <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>
169                                                         <outcome value='service-instance-id'>
170                                                             <set>
171                                                                 <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`' />
172                                                             </set>
173                                                         </outcome>
174                                                         <outcome value='vnf-id'>
175                                                             <set>
176                                                                 <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`' />
177                                                             </set>
178                                                         </outcome>
179                                                         <outcome value='prefix-id'>
180                                                             <set>
181                                                                 <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`' />
182                                                             </set>
183                                                         </outcome>
184                                                         <outcome value='external_key'>
185                                                             <set>
186                                                                 <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`' />
187                                                             </set>
188                                                         </outcome>
189                                                     </switch>
190                                                 </for>
191                                                 <switch test='`$ss.capability-action`'>
192                                                     <outcome value='assign'>
193                                                         <block atomic='true'>
194                                                             <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
195                                                                 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
196                                                                 <parameter name="vf_module_id" value="`$tmp.ss.vnf-id`" />
197                                                                 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
198                                                                 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
199                                                                 <parameter name="external_key" value="`$tmp.ss.external-key`" />
200                                                                 <outcome value='failure'>
201                                                                     <block atomic='true'>
202                                                                         <set>
203                                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />
204                                                                         </set>
205                                                                         <return status='failure'>
206                                                                             <parameter name='error-code' value='' />
207                                                                             <parameter name='error-message' value='' />
208                                                                         </return>
209                                                                     </block>
210                                                                 </outcome>
211                                                                 <outcome value='success'>
212                                                                     <block>
213                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
214                                                                             <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
215                                                                             <parameter name="regex" value="/"/>
216                                                                             <parameter name="ctx_memory_result_key" value="ip" />
217                                                                         </execute>
218                                                                         <set>
219                                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' 
220         value='`$ip[0]`' />
221                                                                         </set>
222                                                                         <set>
223                                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' 
224         value='SUCCESS' />
225                                                                         </set>
226                                                                     </block>
227                                                                 </outcome>
228                                                             </execute>
229                                                         </block>
230                                                     </outcome>
231                                                     <outcome value='unassign'>
232                                                         <block atomic="true">
233                                                             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
234         key='SELECT * from IPAM_IP_ASSIGNEMENT 
235                 WHERE external_key = $tmp.ss.external-key
236                 AND service_instance_id = $tmp.ss.service-instance-id' >
237                                                                 <outcome value='not-found'>
238                                                                     <block></block>
239                                                                 </outcome>
240                                                                 <outcome value='success'>
241                                                                     <block atomic="true">
242                                                                         <set>
243                                                                             <parameter name='tmp.status' value="PENDING_DELETE" />
244                                                                         </set>
245                                                                         <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
246         key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status 
247                 WHERE external_key = $tmp.ss.external-key
248                 AND service_instance_id = $tmp.ss.service-instance-id" >
249                                                                             <outcome value='failure'>
250                                                                                 <return status='failure'>
251                                                                                     <parameter name='ack-final' value='Y'/>
252                                                                                     <parameter name="error-code" value="500" />
253                                                                                     <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`" />
254                                                                                 </return>
255                                                                             </outcome>
256                                                                         </update>
257                                                                         <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
258                                                                             <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
259                                                                             <parameter name="external_key" value="`$tmp.ss.external-key`" />
260                                                                             <outcome value='failure'>
261                                                                                 <return status='failure'>
262                                                                                     <parameter name='ack-final' value='Y'/>
263                                                                                     <parameter name="error-code" value="500" />
264                                                                                     <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
265                                                                                 </return>
266                                                                             </outcome>
267                                                                             <outcome value='success'>
268                                                                                 <set>
269                                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' 
270         value='DELETED' />
271                                                                                 </set>
272                                                                             </outcome>
273                                                                         </execute>
274                                                                     </block>
275                                                                 </outcome>
276                                                             </get-resource>
277                                                         </block>
278                                                     </outcome>
279                                                 </switch>
280                                             </block>
281                                         </outcome>
282                                     </switch>
283                                 </outcome>
284                             </switch>
285                         </for>
286                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
287                             <parameter name="logger" value="message-log"/>
288                             <parameter name="field1" value="__TIMESTAMP__"/>
289                             <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>
290                         </record>
291                     </block>
292                 </outcome>
293             </switch>
294             <switch test="`$ss.capability-type == 'vf-module'`">
295                 <outcome value='true'>
296                     <block>
297                         <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`">
298                             <set>
299                                 <parameter name='tmp.ss.param.capability-name' 
300         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`' />
301                             </set>
302                             <set>
303                                 <parameter name='tmp.ss.param.name' 
304         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`' />
305                             </set>
306                             <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
307                                 <outcome value='true'>
308                                     <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`'>
309                                         <outcome value='FAILED'>
310                                             <block>
311                                                 <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`">
312                                                     <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`'>
313                                                         <outcome value='service-instance-id'>
314                                                             <set>
315                                                                 <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`' />
316                                                             </set>
317                                                         </outcome>
318                                                         <outcome value='vf-module-id'>
319                                                             <set>
320                                                                 <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`' />
321                                                             </set>
322                                                         </outcome>
323                                                         <outcome value='prefix-id'>
324                                                             <set>
325                                                                 <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`' />
326                                                             </set>
327                                                         </outcome>
328                                                         <outcome value='ip-address-id'>
329                                                             <set>
330                                                                 <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`' />
331                                                             </set>
332                                                         </outcome>
333                                                         <outcome value='external_key'>
334                                                             <set>
335                                                                 <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`' />
336                                                             </set>
337                                                         </outcome>
338                                                     </switch>
339                                                 </for>
340                                                 <switch test='`$ss.capability-action`'>
341                                                     <outcome value='assign'>
342                                                         <block atomic='true'>
343                                                             <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
344                                                                 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
345                                                                 <parameter name="vf_module_id" value="`$tmp.ss.vf-module-id`" />
346                                                                 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
347                                                                 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
348                                                                 <parameter name="external_key" value="`$tmp.ss.external-key`" />
349                                                                 <outcome value='failure'>
350                                                                     <block atomic='true'>
351                                                                         <set>
352                                                                             <parameter name='service-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' />
353                                                                         </set>
354                                                                         <return status='failure'>
355                                                                             <parameter name='error-code' value='' />
356                                                                             <parameter name='error-message' value='' />
357                                                                         </return>
358                                                                     </block>
359                                                                 </outcome>
360                                                                 <outcome value='success'>
361                                                                     <block>
362                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
363                                                                             <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
364                                                                             <parameter name="regex" value="/"/>
365                                                                             <parameter name="ctx_memory_result_key" value="ip" />
366                                                                         </execute>
367                                                                         <set>
368                                                                             <parameter name='service-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' 
369         value='`$ip[0]`' />
370                                                                         </set>
371                                                                         <set>
372                                                                             <parameter name='service-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' 
373         value='SUCCESS' />
374                                                                         </set>
375                                                                     </block>
376                                                                 </outcome>
377                                                             </execute>
378                                                         </block>
379                                                     </outcome>
380                                                     <outcome value='unassign'>
381                                                         <block atomic="true">
382                                                             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
383         key='SELECT * from IPAM_IP_ASSIGNEMENT 
384                 WHERE external_key = $tmp.ss.external-key
385                 AND service_instance_id = $tmp.ss.service-instance-id' >
386                                                                 <outcome value='not-found'>
387                                                                     <block></block>
388                                                                 </outcome>
389                                                                 <outcome value='success'>
390                                                                     <block atomic="true">
391                                                                         <set>
392                                                                             <parameter name='tmp.status' value="PENDING_DELETE" />
393                                                                         </set>
394                                                                         <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
395         key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status 
396                 WHERE external_key = $tmp.ss.external-key
397                 AND service_instance_id = $tmp.ss.service-instance-id" >
398                                                                             <outcome value='failure'>
399                                                                                 <return status='failure'>
400                                                                                     <parameter name='ack-final' value='Y'/>
401                                                                                     <parameter name="error-code" value="500" />
402                                                                                     <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`" />
403                                                                                 </return>
404                                                                             </outcome>
405                                                                         </update>
406                                                                         <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
407                                                                             <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
408                                                                             <parameter name="external_key" value="`$tmp.ss.external-key`" />
409                                                                             <outcome value='failure'>
410                                                                                 <return status='failure'>
411                                                                                     <parameter name='ack-final' value='Y'/>
412                                                                                     <parameter name="error-code" value="500" />
413                                                                                     <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
414                                                                                 </return>
415                                                                             </outcome>
416                                                                             <outcome value='success'>
417                                                                                 <set>
418                                                                                     <parameter name='service-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' 
419         value='DELETED' />
420                                                                                 </set>
421                                                                             </outcome>
422                                                                         </execute>
423                                                                     </block>
424                                                                 </outcome>
425                                                             </get-resource>
426                                                         </block>
427                                                     </outcome>
428                                                 </switch>
429                                             </block>
430                                         </outcome>
431                                         <outcome value='PENDING'>
432                                             <block>
433                                                 <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`">
434                                                     <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`'>
435                                                         <outcome value='service-instance-id'>
436                                                             <set>
437                                                                 <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`' />
438                                                             </set>
439                                                         </outcome>
440                                                         <outcome value='vf-module-id'>
441                                                             <set>
442                                                                 <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`' />
443                                                             </set>
444                                                         </outcome>
445                                                         <outcome value='prefix-id'>
446                                                             <set>
447                                                                 <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`' />
448                                                             </set>
449                                                         </outcome>
450                                                         <outcome value='ip-address-id'>
451                                                             <set>
452                                                                 <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`' />
453                                                             </set>
454                                                         </outcome>
455                                                         <outcome value='external_key'>
456                                                             <set>
457                                                                 <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`' />
458                                                             </set>
459                                                         </outcome>
460                                                     </switch>
461                                                 </for>
462                                                 <switch test='`$ss.capability-action`'>
463                                                     <outcome value='assign'>
464                                                         <block atomic='true'>
465                                                             <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
466                                                                 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
467                                                                 <parameter name="vf_module_id" value="`$tmp.ss.vf-module-id`" />
468                                                                 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
469                                                                 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
470                                                                 <parameter name="external_key" value="`$tmp.ss.external-key`" />
471                                                                 <outcome value='failure'>
472                                                                     <block atomic='true'>
473                                                                         <set>
474                                                                             <parameter name='service-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' />
475                                                                         </set>
476                                                                         <return status='failure'>
477                                                                             <parameter name='error-code' value='' />
478                                                                             <parameter name='error-message' value='' />
479                                                                         </return>
480                                                                     </block>
481                                                                 </outcome>
482                                                                 <outcome value='success'>
483                                                                     <block>
484                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
485                                                                             <parameter name="original_string" value="`$self_serve_netbox_ip_assignement.ip-address`" />
486                                                                             <parameter name="regex" value="/"/>
487                                                                             <parameter name="ctx_memory_result_key" value="ip" />
488                                                                         </execute>
489                                                                         <set>
490                                                                             <parameter name='service-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' 
491         value='`$ip[0]`' />
492                                                                         </set>
493                                                                         <set>
494                                                                             <parameter name='service-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' 
495         value='SUCCESS' />
496                                                                         </set>
497                                                                     </block>
498                                                                 </outcome>
499                                                             </execute>
500                                                         </block>
501                                                     </outcome>
502                                                     <outcome value='unassign'>
503                                                         <block atomic="true">
504                                                             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
505         key='SELECT * from IPAM_IP_ASSIGNEMENT 
506                 WHERE external_key = $tmp.ss.external-key
507                 AND service_instance_id = $tmp.ss.service-instance-id' >
508                                                                 <outcome value='not-found'>
509                                                                     <block></block>
510                                                                 </outcome>
511                                                                 <outcome value='success'>
512                                                                     <block atomic="true">
513                                                                         <set>
514                                                                             <parameter name='tmp.status' value="PENDING_DELETE" />
515                                                                         </set>
516                                                                         <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
517         key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status 
518                 WHERE external_key = $tmp.ss.external-key
519                 AND service_instance_id = $tmp.ss.service-instance-id" >
520                                                                             <outcome value='failure'>
521                                                                                 <return status='failure'>
522                                                                                     <parameter name='ack-final' value='Y'/>
523                                                                                     <parameter name="error-code" value="500" />
524                                                                                     <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`" />
525                                                                                 </return>
526                                                                             </outcome>
527                                                                         </update>
528                                                                         <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
529                                                                             <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
530                                                                             <parameter name="external_key" value="`$tmp.ss.external-key`" />
531                                                                             <outcome value='failure'>
532                                                                                 <return status='failure'>
533                                                                                     <parameter name='ack-final' value='Y'/>
534                                                                                     <parameter name="error-code" value="500" />
535                                                                                     <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
536                                                                                 </return>
537                                                                             </outcome>
538                                                                             <outcome value='success'>
539                                                                                 <set>
540                                                                                     <parameter name='service-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' 
541         value='DELETED' />
542                                                                                 </set>
543                                                                             </outcome>
544                                                                         </execute>
545                                                                     </block>
546                                                                 </outcome>
547                                                             </get-resource>
548                                                         </block>
549                                                     </outcome>
550                                                 </switch>
551                                             </block>
552                                         </outcome>
553                                     </switch>
554                                 </outcome>
555                             </switch>
556                         </for>
557                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
558                             <parameter name="logger" value="message-log"/>
559                             <parameter name="field1" value="__TIMESTAMP__"/>
560                             <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>
561                         </record>
562                     </block>
563                 </outcome>
564             </switch>
565         </block>
566     </method>
567 </service-logic>