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-assignment' 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-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`" />
34 <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`">
36 <parameter name='tmp.ss.param.capability-name'
37 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`' />
40 <parameter name='tmp.ss.param.name'
41 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`' />
43 <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
44 <outcome value='true'>
45 <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`'>
46 <outcome value='FAILED'>
48 <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`">
49 <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`'>
50 <outcome value='service-instance-id'>
52 <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`' />
55 <outcome value='vf-module-id'>
57 <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`' />
60 <outcome value='prefix-id'>
62 <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`' />
65 <outcome value='ip-address-id'>
67 <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`' />
70 <outcome value='external_key'>
72 <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`' />
77 <switch test='`$ss.capability-action`'>
78 <outcome value='assign'>
80 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
81 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
82 <parameter name="vf_module_id" value="`$tmp.ss.vf-module-id`" />
83 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
84 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
85 <parameter name="external_key" value="`$tmp.ss.external-key`" />
86 <outcome value='failure'>
89 <parameter name='service-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' />
91 <return status='failure'>
92 <parameter name='error-code' value='' />
93 <parameter name='error-message' value='' />
98 <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`">
99 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>
100 <outcome value='`$tmp.ss.param.name`'>
103 <parameter name='service-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'
104 value='`$self_serve_netbox_ip_assignement.ip-address`' />
107 <parameter name='service-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'
116 <outcome value='unassign'>
117 <block atomic="true">
118 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
119 key='SELECT * from IPAM_IP_ASSIGNEMENT
120 WHERE external_key = $tmp.ss.external-key
121 AND service_instance_id = $tmp.ss.service-instance-id' >
122 <outcome value='not-found'>
125 <outcome value='success'>
126 <block atomic="true">
128 <parameter name='tmp.status' value="PENDING_DELETE" />
130 <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
131 key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status
132 WHERE external_key = $tmp.ss.external-key
133 AND service_instance_id = $tmp.ss.service-instance-id" >
134 <outcome value='failure'>
135 <return status='failure'>
136 <parameter name='ack-final' value='Y'/>
137 <parameter name="error-code" value="500" />
138 <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`" />
142 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
143 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
144 <parameter name="external_key" value="`$tmp.ss.external-key`" />
145 <outcome value='failure'>
146 <return status='failure'>
147 <parameter name='ack-final' value='Y'/>
148 <parameter name="error-code" value="500" />
149 <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
156 <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`">
157 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>
158 <outcome value='ip-address'>
160 <parameter name='service-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'
171 <outcome value='PENDING'>
173 <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`">
174 <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`'>
175 <outcome value='service-instance-id'>
177 <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`' />
180 <outcome value='vf-module-id'>
182 <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`' />
185 <outcome value='prefix-id'>
187 <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`' />
190 <outcome value='ip-address-id'>
192 <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`' />
195 <outcome value='external_key'>
197 <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`' />
202 <switch test='`$ss.capability-action`'>
203 <outcome value='assign'>
204 <block atomic='true'>
205 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="assignIpAddress">
206 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
207 <parameter name="vf_module_id" value="`$tmp.ss.vf-module-id`" />
208 <parameter name="prefix_id" value="`$tmp.ss.prefix-id`" />
209 <parameter name="resource_name" value="`$tmp.ss.param.name`" />
210 <parameter name="external_key" value="`$tmp.ss.external-key`" />
211 <outcome value='failure'>
212 <block atomic='true'>
214 <parameter name='service-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' />
216 <return status='failure'>
217 <parameter name='error-code' value='' />
218 <parameter name='error-message' value='' />
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`">
224 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>
225 <outcome value='`$tmp.ss.param.name`'>
228 <parameter name='service-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'
229 value='`$self_serve_netbox_ip_assignement.ip-address`' />
232 <parameter name='service-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'
241 <outcome value='unassign'>
242 <block atomic="true">
243 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
244 key='SELECT * from IPAM_IP_ASSIGNEMENT
245 WHERE external_key = $tmp.ss.external-key
246 AND service_instance_id = $tmp.ss.service-instance-id' >
247 <outcome value='not-found'>
250 <outcome value='success'>
251 <block atomic="true">
253 <parameter name='tmp.status' value="PENDING_DELETE" />
255 <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
256 key="UPDATE IPAM_IP_ASSIGNEMENT set ip_status = $tmp.status
257 WHERE external_key = $tmp.ss.external-key
258 AND service_instance_id = $tmp.ss.service-instance-id" >
259 <outcome value='failure'>
260 <return status='failure'>
261 <parameter name='ack-final' value='Y'/>
262 <parameter name="error-code" value="500" />
263 <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`" />
267 <execute plugin="org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient" method="unassignIpAddress">
268 <parameter name="service_instance_id" value="`$tmp.ss.service-instance-id`" />
269 <parameter name="external_key" value="`$tmp.ss.external-key`" />
270 <outcome value='failure'>
271 <return status='failure'>
272 <parameter name='ack-final' value='Y'/>
273 <parameter name="error-code" value="500" />
274 <parameter name="error-message" value="`'Error in NetboxClient#unassignIPAddress with external-key='+ $tmp.ss.external-key`" />
281 <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`">
282 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>
283 <outcome value='ip-address'>
285 <parameter name='service-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'
300 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
301 <parameter name="logger" value="message-log"/>
302 <parameter name="field1" value="__TIMESTAMP__"/>
303 <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>
306 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
307 <parameter name='filename' value='/var/tmp/ss.eipam.log' />