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='vf-module-topology-vlan-tagging-ip-addresses' mode='sync'>
\r
5 <block atomic="true">
\r
6 <switch test='`$tmp.vt-ip.type`'>
\r
8 <return status='failure'>
\r
9 <parameter name='error-code' value='500' />
\r
10 <parameter name='error-message' value='type is required' />
\r
14 <switch test='`$tmp.vt-ip.network-instance-group-function`'>
\r
16 <return status='failure'>
\r
17 <parameter name='error-code' value='500' />
\r
18 <parameter name='error-message' value='network-instance-group-function is required for FIXED ip request' />
\r
22 <switch test='`$tmp.vt-ip.ip-version`'>
\r
24 <return status='failure'>
\r
25 <parameter name='error-code' value='500' />
\r
26 <parameter name='error-message' value='ip-version is required' />
\r
29 <outcome value='ipv4'>
\r
31 <parameter name='tmp.address-family' value='4' />
\r
32 <parameter name='tmp.sql.address-family' value='%4' />
\r
35 <outcome value='ipv6'>
\r
37 <parameter name='tmp.address-family' value='6' />
\r
38 <parameter name='tmp.sql.address-family' value='%6' />
\r
43 <parameter name='eipam-ip-block.' value='' />
\r
45 <switch test='`$tmp.vt-ip.type`'>
\r
46 <outcome value='FIXED'>
\r
47 <block atomic='true'>
\r
48 <switch test='`$tmp.vt-ip.vnfc-name`'>
\r
50 <return status='failure'>
\r
51 <parameter name='error-code' value='500' />
\r
52 <parameter name='error-message' value='vnfc-name is required for FIXED ip request' />
\r
56 <switch test='`$tmp.vt-ip.vf-module-id`'>
\r
58 <return status='failure'>
\r
59 <parameter name='error-code' value='500' />
\r
60 <parameter name='error-message' value='vf-module-id is required' />
\r
64 <switch test='`$tmp.vt-ip.sequence-number`'>
\r
66 <return status='failure'>
\r
67 <parameter name='error-code' value='500' />
\r
68 <parameter name='error-message' value='seq-num is required' />
\r
73 <parameter name="tmp.selected-client-key"
\r
74 value="`$tmp.vt-ip.vm-type + '|' +
\r
75 $tmp.vt-ip.vnfc-name + '|' +
\r
76 $tmp.vt-ip.network-instance-group-function + '|' +
\r
77 $tmp.vt-ip.type + '|' +
\r
78 $tmp.address-family + '|' +
\r
79 $tmp.vt-ip.sequence-number`" />
\r
81 fixed-ip client-key:
\r
82 vm-type + VFCname + network-instance-group-function + "FIXED" + [ip-version(4/6)] + seqNo
\r
83 seqNo required for unique, but not required for shared
\r
87 <parameter name="tmp.eipam.info" value="`$tmp.vt-ip.vf-module-id`"/>
\r
91 <outcome value='VIP'>
\r
92 <block atomic='true'>
\r
93 <switch test='`$tmp.vt-ip.nf-role`'>
\r
95 <return status='failure'>
\r
96 <parameter name='error-code' value='500' />
\r
97 <parameter name='error-message' value='nf-role is required for VIP ip request' />
\r
101 <switch test="`$tmp.vt-ip.network-instance-group-id == '' `">
\r
102 <outcome value='true'>
\r
103 <return status='failure'>
\r
104 <parameter name='error-code' value='500' />
\r
105 <parameter name='error-message' value='network-isntance-group-id is required for VIP' />
\r
110 <parameter name="tmp.eipam.info" value="`$tmp.vt-ip.network-instance-group-id`"/>
\r
113 <parameter name='tmp.selected-client-key'
\r
114 value="`$tmp.vt-ip.nf-role + '|' +
\r
115 $tmp.vt-ip.network-instance-group-function + '|' +
\r
116 $tmp.vt-ip.type + '|' +
\r
117 $tmp.vt-ip.ip-version`" />
\r
119 loating-ip client-key:
\r
120 nf-role + network-instance-group-function + "VIP" + [ip-version(4/6)]
\r
126 <switch test="`$tmp.vt-ip.network-id == '' and $tmp.vt-ip.network-instance-group-id == '' `">
\r
127 <outcome value='true'>
\r
128 <return status='failure'>
\r
129 <parameter name='error-code' value='500' />
\r
130 <parameter name='error-message' value='either network-id or network-isntance-group-id is required' />
\r
134 <switch test="`$tmp.vt-ip.network-id != '' `">
\r
135 <outcome value='true'>
\r
136 <block atomic='true'>
\r
138 <parameter name='tmp.sql'
\r
139 value="`'SELECT * from EIPAM_IP_SUBNETS WHERE network_id = ' +
\r
140 '$tmp.vt-ip.network-id AND address_family like $tmp.sql.address-family'`" />
\r
142 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
143 key='`$tmp.sql`' pfx='db.selected-subnet-data[]'>
\r
144 <outcome value='failure'>
\r
145 <return status='failure'>
\r
146 <parameter name='error-code' value='500' />
\r
147 <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNETS table' />
\r
150 <outcome value='not-found'>
\r
151 <return status='failure'>
\r
152 <parameter name='error-code' value='500' />
\r
153 <parameter name='error-message' value = "`'No EIPAM_IP_SUBNETS entry found with network-id = ' + $tmp.vt-ip.network-id + ' and address_family = ' + $tmp.address-family`" />
\r
158 <parameter name="eipam-ip-block.plans[0].requests[0].network-id"
\r
159 value="`$tmp.vt-ip.network-id`"/>
\r
163 <outcome value='false'>
\r
164 <switch test="`$tmp.vt-ip.network-instance-group-id != '' `">
\r
165 <outcome value='true'>
\r
166 <block atomic='true'>
\r
168 <parameter name='tmp.sql'
\r
169 value="`'SELECT * from EIPAM_IP_SUBNETS WHERE network_instance_group_id = '+
\r
170 '$tmp.vt-ip.network-instance-group-id AND address_family like $tmp.sql.address-family'`" />
\r
172 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
173 key='`$tmp.sql`' pfx='db.selected-subnet-data[]'>
\r
174 <outcome value='failure'>
\r
175 <return status='failure'>
\r
176 <parameter name='error-code' value='500' />
\r
177 <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNETS table' />
\r
180 <outcome value='not-found'>
\r
181 <return status='failure'>
\r
182 <parameter name='error-code' value='500' />
\r
183 <parameter name='error-message' value = "`'No EIPAM_IP_SUBNETS entry found with network-instance-group-id = ' + $tmp.vt-ip.network-instance-group-id + ' and address_family = ' + $tmp.address-family`" />
\r
188 <parameter name="eipam-ip-block.plans[0].requests[0].network-instance-group-id"
\r
189 value="`$tmp.vt-ip.network-instance-group-id`"/>
\r
197 <parameter name='tmp.level4-key-found' value='false' />
\r
199 <for index='didx' start='0' end='`$db.selected-subnet-data_length`' >
\r
201 <parameter name='tmp.sql'
\r
202 value="`'SELECT a.entity_id, a.key_name, a.key_value, a.level from EIPAM_IP_SUBNET_KEYS a where level = (SELECT MAX(level) from EIPAM_IP_SUBNET_KEYS b where b.entity_id = a.entity_id and entity_id = ' + ' $db.selected-subnet-data[$didx].entity-id )'`" />
\r
204 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
205 key='`$tmp.sql`' pfx='db.selected-subnet-keys'>
\r
206 <outcome value='failure'>
\r
207 <return status='failure'>
\r
208 <parameter name='error-code' value='500' />
\r
209 <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNET_KEYS table to find MAX level by entity_id' />
\r
212 <outcome value='success'>
\r
213 <switch test="`$db.selected-subnet-keys.level == '4' `">
\r
214 <outcome value='false'>
\r
217 <outcome value='true'>
\r
220 <parameter name='tmp.level4-key-found' value='true' />
\r
223 <parameter name='tmp.selected-entity-id' value='`$db.selected-subnet-keys.entity-id`' />
\r
226 <parameter name='tmp.selected-plan-name' value='`$db.selected-subnet-data[$didx].plan-name`' />
\r
235 <switch test="`$tmp.level4-key-found`">
\r
236 <outcome value='false'>
\r
237 <return status='failure'>
\r
238 <parameter name='error-code' value='500' />
\r
239 <parameter name='error-message' value='No level 4 KeyName found in EIPAM_IP_SUBNET_KEYS' />
\r
243 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
244 key='SELECT * from EIPAM_IP_SUBNET_KEYS
\r
245 where entity_id = $tmp.selected-entity-id order by level'
\r
246 pfx='db.eipam-subnet-keys[]'>
\r
247 <outcome value='failure'>
\r
248 <return status='failure'>
\r
249 <parameter name='error-code' value='500' />
\r
250 <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNET_KEYS table by entity_id' />
\r
254 <for index='key' start='0' end='`$db.eipam-subnet-keys_length`' >
\r
256 <parameter name="eipam-ip-block.plans[0].requests[0].pools[$key].key-name"
\r
257 value="`$db.eipam-subnet-keys[$key].key-name`"/>
\r
258 <parameter name="eipam-ip-block.plans[0].requests[0].pools[$key].key-value"
\r
259 value="`$db.eipam-subnet-keys[$key].key-value`"/>
\r
263 <parameter name='eipam-ip-block.plans[0].plan-name' value='`$tmp.selected-plan-name`' />
\r
264 <parameter name='eipam-ip-block.plans[0].address-family' value="`$tmp.vt-ip.ip-version`" />
\r
265 <parameter name='eipam-ip-block.plans[0].requests[0].client-key'
\r
266 value="`$tmp.selected-client-key`" />
\r
267 <parameter name="eipam-ip-block.plans[0].requests[0].info"
\r
268 value="`$tmp.eipam.info`"/>
\r
269 <parameter name="eipam-ip-block.plans[0].requests[0].pools_length" value="4"/>
\r
270 <parameter name='eipam-ip-block.plans[0].requests_length' value='1' />
\r
271 <parameter name="eipam-ip-block.plans_length" value="1"/>
\r
273 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
\r
274 <parameter name='filename' value='/var/tmp/vlan-tag-ip.log' />
\r
276 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">
\r
277 <outcome value='failure'>
\r
278 <block atomic="true">
\r
279 <return status="failure">
\r
280 <parameter name="ack-final" value="Y" />
\r
281 <parameter name="error-code" value="500"/>
\r
282 <parameter name="error-message" value="`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`" />
\r