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='self-serve-eipam-ip-assignment' mode='sync'>
\r
5 <block atomic="true">
\r
6 <switch test='`$ss.capability-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="ss.capability-name is null" />
\r
15 <switch test='`$ss.capability-action`'>
\r
17 <return status="failure">
\r
18 <parameter name="ack-final" value="Y" />
\r
19 <parameter name="error-code" value="500"/>
\r
20 <parameter name="error-message" value="ss.capability-action is null" />
\r
23 <outcome value='assign'>
\r
24 <block atomic="true">
\r
25 <call module='GENERIC-RESOURCE-API' rpc='self-service-capability-param-resolution' mode='sync' >
\r
26 <outcome value='failure'>
\r
27 <return status="failure">
\r
28 <parameter name="ack-final" value="Y" />
\r
29 <parameter name="error-code" value="500"/>
\r
30 <parameter name="error-message" value="`'Not all assignments are resolved' + $error-message`" />
\r
35 <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`">
\r
37 <parameter name='tmp.ss.param.capability-name'
\r
38 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`' />
\r
40 <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
\r
41 <outcome value='true'>
\r
46 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
\r
47 <parameter name="logger" value="message-log"/>
\r
48 <parameter name="field1" value="__TIMESTAMP__"/>
\r
49 <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>
\r
51 <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`">
\r
52 <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`'>
\r
53 <outcome value='group-flag'>
\r
55 <parameter name='tmp.ss.group-flag' 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`' />
\r
58 <outcome value='plan-name'>
\r
60 <parameter name='tmp.ss.plan-name' 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`' />
\r
63 <outcome value='address-family'>
\r
65 <parameter name='tmp.ss.address-family' 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`' />
\r
68 <outcome value='client-key'>
\r
70 <parameter name='tmp.ss.client-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`' />
\r
76 <call module='GENERIC-RESOURCE-API' rpc='self-serve-generate-FQPN' mode='sync' >
\r
77 <outcome value='failure'>
\r
78 <return status="failure">
\r
79 <parameter name="ack-final" value="Y" />
\r
80 <parameter name="error-code" value="500"/>
\r
81 <parameter name="error-message" value="`'Not all assignments are resolved' + $error-message`" />
\r
86 <parameter name='eipam-ip-block.plans[0].requests[0].'
\r
87 value='self-serve-generate-FQPN-output.' />
\r
90 <parameter name='eipam-ip-block.group-flag'
\r
91 value='`$tmp.ss.group-flag`' />
\r
92 <parameter name='eipam-ip-block.plans[0].plan-name'
\r
93 value='`$tmp.ss.plan-name`' />
\r
94 <parameter name='eipam-ip-block.plans[0].address-family'
\r
95 value="`$tmp.ss.address-family`" />
\r
96 <parameter name='eipam-ip-block.plans[0].requests[0].client-key'
\r
97 value="`$tmp.ss.client-key`" />
\r
100 <parameter name='eipam-ip-block.plans[0].requests_length' value='1' />
\r
102 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">
\r
103 <outcome value='failure'>
\r
104 <block atomic="true">
\r
106 <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' />
\r
108 <return status="failure">
\r
109 <parameter name="ack-final" value="Y" />
\r
110 <parameter name="error-code" value="500"/>
\r
111 <parameter name="error-message" value="`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`" />
\r
116 <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`">
\r
117 <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`'>
\r
118 <outcome value='vmxvre_oam_ip_0'>
\r
121 <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'
\r
122 value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />
\r
125 <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'
\r
130 <outcome value='vmxvre_oam_ip_prefix_0'>
\r
133 <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'
\r
134 value='`$eipam-ip-block.plans[0].requests[0].ip-prefix-length`' />
\r
137 <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'
\r
142 <outcome value='vmxvre_oam_gateway'>
\r
145 <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'
\r
146 value='`$eipam-ip-block.plans[0].requests[0].ReservedAssignments[0].ReservedAssignment[3].ReservedKeyIPAddress`' />
\r
149 <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'
\r
158 <outcome value='unassign'>
\r
159 <block atomic="true">
\r
161 <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`">
\r
163 <parameter name='tmp.ss.param.capability-name'
\r
164 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`' />
\r
166 <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>
\r
167 <outcome value='true'>
\r
172 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
\r
173 <parameter name="logger" value="message-log"/>
\r
174 <parameter name="field1" value="__TIMESTAMP__"/>
\r
175 <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>
\r
177 <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`">
\r
178 <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`'>
\r
179 <outcome value='group-flag'>
\r
181 <parameter name='tmp.ss.group-flag' 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`' />
\r
184 <outcome value='plan-name'>
\r
186 <parameter name='tmp.ss.plan-name' 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`' />
\r
189 <outcome value='address-family'>
\r
191 <parameter name='tmp.ss.address-family' 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`' />
\r
194 <outcome value='client-key'>
\r
196 <parameter name='tmp.ss.client-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`' />
\r
202 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
203 key='SELECT * from EIPAM_IP_ASSIGNMENTS
\r
204 WHERE service_instance_id = $tmp.ss.service-instance-id
\r
205 AND client_key = $tmp.ss.client-key'>
\r
206 <outcome value='not-found'>
\r
209 <outcome value='success'>
\r
210 <block atomic="true">
\r
212 <parameter name='tmp.status' value="PENDING_DELETE" />
\r
214 <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
\r
215 key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status
\r
216 WHERE service_instance_id = $tmp.ss.service-instance-id
\r
217 AND client_key = $tmp.ss.client-key" >
\r
218 <outcome value='failure'>
\r
219 <return status='failure'>
\r
220 <parameter name='ack-final' value='Y'/>
\r
221 <parameter name="error-code" value="500" />
\r
222 <parameter name="error-message" value="`'Error updating EIPAM_IP_ASSIGNMENTS table to unassign ip with client_key=' + $tmp.ss.client-key + ' and service_instance_id=' + $tmp.ss.service-instance-id`" />
\r
226 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
\r
227 <parameter name="deleteEIPAM_status" value="`$tmp.status`" />
\r
228 <outcome value='failure'>
\r
229 <return status='failure'>
\r
230 <parameter name='ack-final' value='Y'/>
\r
231 <parameter name="error-code" value="500" />
\r
232 <parameter name="error-message" value="`'Error in EIPAMPlugin.unassignIPAddress with client-key='+ $tmp.ss.client-key`" />
\r
239 <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`">
\r
240 <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`'>
\r
241 <outcome value='vmxvre_oam_ip_0'>
\r
243 <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'
\r
247 <outcome value='vmxvre_oam_ip_prefix_0'>
\r
249 <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'
\r
253 <outcome value='vmxvre_oam_gateway'>
\r
255 <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'
\r
264 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
\r
265 <parameter name='filename' value='/var/tmp/ss.eipam.log' />
\r