Add generic-resource-api DG seed code
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / SUBNET-API_subnet-allocated-notification.xml
1 <service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'><method rpc='subnet-allocated-notification' mode='sync'>\r
2 <block><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
3 <parameter name="logger" value="message-log"/>\r
4 <parameter name="field1" value="__TIMESTAMP__"/>\r
5 <parameter name="field2" value="subnet-allocated-notification"/>\r
6 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
7 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
8 <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>\r
9 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
10 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
11 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
12 <parameter name="field9" value="`$tmp.key-value`"/></record><!--Need to know which ipv version to get the plan name from the network-model.--><switch test="`$eipam-ip-block.ptnii-name`"><!--If there's ptnii-name, then it's Gamma service--><outcome value='Other'><configure adaptor="com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor" key="SNIIR" activate="true">\r
13         <parameter name="input.request-id" value="`$eipam-ip-block.request-id`" />\r
14         <parameter name="input.source" value="SDNC" />\r
15         <parameter name="input.ptnii-name" value="`$eipam-ip-block.ptnii-name`" />\r
16         <parameter name="input.ip-address" value="`$eipam-ip-block.ip-address`" />\r
17         <parameter name="input.mask" value="`$eipam-ip-block.prefix-length`" /><outcome value="success">\r
18 <block><save \r
19         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' \r
20         resource='SQL'\r
21         key="UPDATE EIPAM_IP_SUBNETS\r
22              SET status = 'PENDING-ACTIVE'\r
23              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
24     force='true'\r
25         pfx='pfx.eipam-subnet-row'>\r
26 </save><set>\r
27         <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /></set><save plugin="org.onap.ccsdk.sli.adaptors.sli.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
28         <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /></save> <return status="success">\r
29  \r
30 </return></block></outcome><outcome value="Other"> \r
31 \r
32 <!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool">\r
33 \r
34 <outcome value="success">\r
35 <block><set>\r
36         <parameter name="eipam-ip-block.status" value="DELETED" /></set><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
37 <parameter name="key1" value="IpBlockInstall failure and pool deleted in EIPAM."/>\r
38 </execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
39         <parameter name="operational-state" value="NCS_IP_SUBNET_INSTALL_ERROR" />\r
40         <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
41         <parameter name="prov-status" value="PREPROV" />\r
42 </update>  <return status="failure">\r
43               <parameter name="error-code" value="1000" />\r
44               <parameter name="error-message" value="IpBlockInstall failure and deletePool deleted in EIPAM" />\r
45 </return></block></outcome><outcome value="Other"> \r
46 \r
47 <block><save \r
48         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' \r
49         resource='SQL'\r
50         key="UPDATE EIPAM_IP_SUBNETS\r
51              SET status = 'ERROR'\r
52              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
53     force='true'\r
54         pfx='pfx.eipam-subnet-row'>\r
55 </save><set>\r
56         <parameter name="eipam-ip-block.status" value="ERROR" /></set><save plugin="org.onap.ccsdk.sli.adaptors.sli.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
57         <parameter name="eipam-ip-block.status" value="ERROR" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
58 <parameter name="key1" value="IpBlockInstall failure and pool deletion failed in EIPAM, need to manually delete."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
59         <parameter name="operational-state" value="NCS_IP_SUBNET_INSTALL_ERROR" />\r
60         <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
61         <parameter name="prov-status" value="PREPROV" />\r
62 </update>  <return status="failure">\r
63               <parameter name="error-code" value="1000" />\r
64               <parameter name="error-message" value="IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete" />\r
65 </return></block></outcome></execute></outcome></configure></outcome><!--If no ptnii-name, check if VIPR or SRIOV--><outcome value=''><execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' >\r
66 <parameter name="source" value="`toUpperCase($eipam-ip-block.plan-name)`" />\r
67 <parameter name="target" value="AIC_" />\r
68 \r
69 <outcome value='false'>\r
70   <return status="failure">\r
71               <parameter name="error-code" value="500" />\r
72               <parameter name="error-message" value="Unknown Address Plan - not supported!" />\r
73 </return></outcome><outcome value='true'>\r
74 <block atomic='true'><get-resource\r
75         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
76         resource='SQL'\r
77         key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;"\r
78         pfx='tmp.eipam-pool-row'>\r
79 \r
80 <outcome value='failure'>\r
81 <block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
82 <parameter name="logger" value="message-log"/>\r
83 <parameter name="field1" value="__TIMESTAMP__"/>\r
84 <parameter name="field2" value="subnet-allocated-notification"/>\r
85 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
86 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
87 <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>\r
88 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
89 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
90 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
91 <parameter name="field9" value="Failed to find this record in DB!"/>\r
92 \r
93 </record>  <return status="failure">\r
94         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
95               <parameter name="error-code" value="500" />\r
96               <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />\r
97 </return></block></outcome><outcome value="not-found"><block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
98 <parameter name="logger" value="message-log"/>\r
99 <parameter name="field1" value="__TIMESTAMP__"/>\r
100 <parameter name="field2" value="subnet-allocated-notification"/>\r
101 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
102 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
103 <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>\r
104 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
105 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
106 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
107 <parameter name="field9" value="This record is not found in DB!"/></record>  <return status="failure">\r
108         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
109                 <parameter name="error-code" value="500" />\r
110               <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />\r
111 </return></block></outcome></get-resource><!--initial subnet should exists--><get-resource\r
112         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
113         resource='SQL'\r
114         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; "\r
115         pfx='pfx.eipam-initial-subnet'>\r
116 \r
117 <outcome value='failure'>\r
118 <return status="failure">\r
119         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
120         <parameter name="error-code" value="500"/>\r
121         <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
122         </return></outcome><outcome value="not-found"><return status="failure">\r
123         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
124         <parameter name="error-code" value="500"/>\r
125         <parameter name="error-message" value="Initial subnet not found, cannot auto extend." />\r
126         </return></outcome></get-resource><!--check if new subnet already exists, possibly from previous attempt.--><get-resource\r
127         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
128         resource='SQL'\r
129         key="SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; "\r
130         pfx='pfx.eipam-subnet-with-same-ip'>\r
131 \r
132 <outcome value='failure'>\r
133 <return status="failure">\r
134         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
135         <parameter name="error-code" value="500"/>\r
136         <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
137         </return></outcome><outcome value="not-found"></outcome></get-resource><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
138         resource="l3-network" \r
139                 key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id" \r
140                 local-only="false" \r
141                 pfx="aai.l3-network">\r
142 <outcome value='not-found'>\r
143 <return status='failure'>\r
144         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
145         <parameter name="error-code" value="404" />\r
146         <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'" /></return></outcome><outcome value='failure'>\r
147 <return status='failure'>\r
148         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
149         <parameter name="error-code" value="500" />\r
150         <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'" /></return></outcome></get-resource><set>\r
151 <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
152 </set><save\r
153         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
154         resource='SQL'\r
155         key="INSERT EIPAM_IP_SUBNETS\r
156              SET\r
157              entity_id = $eipam-ip-block.entity-id ,\r
158              service_type = $pfx.eipam-initial-subnet.service-type ,\r
159              ip_address = $eipam-ip-block.ip-prefix ,\r
160              prefix_length = $eipam-ip-block.mask ,\r
161              plan_name = $eipam-ip-block.plan-name ,\r
162              status = 'PENDING_ACTIVE' ,\r
163              pool_id = $pfx.eipam-initial-subnet.pool-id ,\r
164              address_family = $pfx.eipam-initial-subnet.address-family ,\r
165              network_id = $pfx.eipam-initial-subnet.network-id ; "\r
166     force='true'\r
167         pfx='pfx.eipam-new-subnet'>\r
168 <outcome value='failure'><return status="failure">\r
169         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
170         <parameter name="error-code" value="500"/>\r
171         <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNETS failed." />\r
172         </return></outcome><outcome value='success'>\r
173 </outcome></save><save\r
174         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
175         resource='SQL'\r
176         key="INSERT EIPAM_IP_SUBNET_KEYS\r
177              SET\r
178              entity_id = $eipam-ip-block.entity-id ,\r
179              key_name = $tmp.level1-key-name ,\r
180              key_value = $tmp.level1-key-value ,\r
181              level = 1 ; "\r
182     force='true'\r
183         pfx='pfx.eipam-subnet-level1'>\r
184 <outcome value='success'>\r
185 </outcome><outcome value='failure'><return status="failure">\r
186         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
187         <parameter name="error-code" value="500"/>\r
188         <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />\r
189         </return></outcome></save><save\r
190         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
191         resource='SQL'\r
192         key="INSERT EIPAM_IP_SUBNET_KEYS\r
193              SET\r
194              entity_id = $eipam-ip-block.entity-id ,\r
195              key_name = $tmp.level2-key-name ,\r
196              key_value = $tmp.level2-key-value ,\r
197              level = 2 ; "\r
198     force='true'\r
199         pfx='pfx.eipam-subnet-level2'>\r
200 <outcome value='success'>\r
201 </outcome><outcome value='failure'><return status="failure">\r
202         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
203         <parameter name="error-code" value="500"/>\r
204         <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />\r
205         </return></outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
206 <parameter name="logger" value="message-log"/>\r
207 <parameter name="field1" value="__TIMESTAMP__"/>\r
208 <parameter name="field2" value="Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS"/>\r
209 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
210 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
211 <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
212 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
213 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
214 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
215 <parameter name="field9" value="`$tmp.key-value`"/></record><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
216         resource="subnet" \r
217                 key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id\r
218                         AND subnet.subnet-id = $eipam-ip-block.entity-id"\r
219                 local-only="false" \r
220                 pfx="tmp.aai-initial-subnet">\r
221 <outcome value='not-found'>\r
222 <return status='failure'>\r
223         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
224         <parameter name="error-code" value="404" />\r
225         <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'" /></return></outcome><outcome value='failure'>\r
226 <return status='failure'>\r
227         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
228         <parameter name="error-code" value="500" />\r
229         <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' from AnAI'" /></return></outcome></get-resource><switch test='`$aai.l3-network.subnets.subnet_length`'>\r
230 <outcome value=''>\r
231 <return status='failure'>\r
232         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
233         <parameter name="error-code" value="404" />\r
234         <parameter name="error-message" value="'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id" /></return></outcome><outcome value='Other'>\r
235 <set>\r
236 <parameter name='tmp.l3-network.subnet.subnet-name' value="`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`" />\r
237 </set></outcome></switch><execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
238         <parameter name="ipAddress" value="`$eipam-ip-block.ip-prefix`" />\r
239         <parameter name="ipVersion" value="`tmp.version`" />\r
240         <parameter name="subnet" value="`$eipam-ip-block.prefix-length`" />\r
241         <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
242         <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
243         <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
244 \r
245 <outcome value='failure'>\r
246 <return status='failure'>\r
247         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
248         <parameter name='ack-final' value='Y'/>\r
249         <parameter name="error-code" value="500" />\r
250     <parameter name="error-message" value="Failed to generate gateway addresses using IpAddressTools" /></return></outcome></execute><switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'>\r
251 <outcome value='Y'>\r
252 <block atomic="true"><set>\r
253 <parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' />\r
254 <parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
255 <parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
256 \r
257 \r
258 </set></block></outcome><outcome value='N'>\r
259 <block atomic="true"><set>\r
260 <parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' />\r
261 <parameter name='tmp.l3-network.subnet.dhcp-start' value='' />\r
262 <parameter name='tmp.l3-network.subnet.dhcp-end' value='' />\r
263 \r
264 \r
265 </set></block></outcome></switch><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
266         resource="subnet" \r
267                 key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id \r
268                         AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
269 <!-- Create l3-network object -->\r
270 <parameter name="network-id" value="`$pfx.eipam-initial-subnet.network-id`" />\r
271 <parameter name="subnet-id" value="`$eipam-ip-block.entity-id`" />\r
272 <parameter name="subnet-name" value="`$tmp.l3-network.subnet.subnet-name`" />\r
273 <parameter name="gateway-address" value="`$tmp.return.generate.gateway-address`" />\r
274 <parameter name="network-start-address" value="`$eipam-ip-block.ip-prefix`" />\r
275 <parameter name="cidr-mask" value="`$eipam-ip-block.prefix-length`" />\r
276 <parameter name="ip-version" value="`$tmp.version`" />\r
277 <parameter name="dhcp-start" value="`$tmp.l3-network.subnet.dhcp-start`" />\r
278 <parameter name="dhcp-end" value="`$tmp.l3-network.subnet.dhcp-end`" />\r
279 <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet.dhcp-enabled`" />\r
280 <parameter name="orchestration-status" value="PendingCreate" /><outcome value='failure'>\r
281 <return status='failure'>\r
282         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
283         <parameter name="error-code" value="500" />\r
284         <parameter name="error-message" value="'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'" /></return></outcome><outcome value='not-found'>\r
285 </outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
286 <parameter name="logger" value="message-log"/>\r
287 <parameter name="field1" value="__TIMESTAMP__"/>\r
288 <parameter name="field2" value="Added a subnetin AAI"/>\r
289 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
290 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
291 <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
292 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
293 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
294 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
295 <parameter name="field9" value="`$tmp.key-value`"/></record><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
296 <parameter name='api-name' value='subnet' />\r
297 <parameter name='api-action' value='add' />\r
298 <parameter name='resp-prefix' value='contrailResp' />\r
299 <parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\r
300 <parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
301 <parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' />\r
302 <parameter name='dns-server-address' value='0.0.0.0' />\r
303 <parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' />\r
304 <parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' />\r
305 <parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' />\r
306 <parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' />\r
307 <parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' />\r
308 <outcome value='success'>\r
309 <block>\r
310 </block></outcome><outcome value='failure'>\r
311 <block>\r
312 <set>\r
313         <parameter name="eipam-ip-block.status" value="ERROR" /></set><save \r
314         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' \r
315         resource='SQL'\r
316         key="UPDATE EIPAM_IP_SUBNETS\r
317              SET status = 'ERROR'\r
318              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
319     force='true'\r
320         pfx='pfx.eipam-subnet-row'>\r
321 <outcome value='failure'>\r
322 <return status="failure">\r
323         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
324         <parameter name="error-code" value="500"/>\r
325         <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
326         </return></outcome><outcome value="not-found"><return status="failure">\r
327         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
328         <parameter name="error-code" value="500"/>\r
329         <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
330         </return></outcome></save><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
331         resource="subnet" \r
332         key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id\r
333                                 AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete><save plugin="org.onap.ccsdk.sli.adaptors.sli.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
334         <parameter name="eipam-ip-block.status" value="ERROR" /></save><return status='failure'>\r
335         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
336         <parameter name="error-code" value="500" />\r
337     <parameter name="error-message" value="`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
338 </return></block></outcome></execute><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
339 <parameter name="logger" value="message-log"/>\r
340 <parameter name="field1" value="__TIMESTAMP__"/>\r
341 <parameter name="field2" value="Added a subnet in Contrail"/>\r
342 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
343 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
344 <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
345 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
346 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
347 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
348 <parameter name="field9" value="`$tmp.key-value`"/></record><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
349         resource="subnet" \r
350                 key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id \r
351                         AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
352         <parameter name="orchestration-status" value="Created" />\r
353                 <outcome value='not-found'>\r
354 </outcome><outcome value='failure'>\r
355 <block>\r
356 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
357 <parameter name="logger" value="message-log"/>\r
358 <parameter name="field1" value="__TIMESTAMP__"/>\r
359 <parameter name="field2" value="Update status to Created failed in AAI"/>\r
360 <parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
361 <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
362 <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
363 <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
364 <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
365 <parameter name="field8" value="`$eipam-ip-block.status`"/>\r
366 <parameter name="field9" value="`$tmp.key-value`"/></record><save \r
367         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' \r
368         resource='SQL'\r
369         key="UPDATE EIPAM_IP_SUBNETS\r
370              SET status = 'ERROR'\r
371              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
372     force='true'\r
373         pfx='pfx.eipam-subnet-row'>\r
374 <outcome value='failure'>\r
375 <return status="failure">\r
376         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
377         <parameter name="error-code" value="500"/>\r
378         <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
379         </return></outcome><outcome value="not-found"><return status="failure">\r
380         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
381         <parameter name="error-code" value="500"/>\r
382         <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
383         </return></outcome></save><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
384         resource="subnet" \r
385         key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id\r
386                                 AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
387 <parameter name='api-name' value='subnet' />\r
388 <parameter name='api-action' value='delete' />\r
389 <parameter name='resp-prefix' value='contrailResp' />\r
390 <parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\r
391 <parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
392 <outcome value='failure'>\r
393 <return status='failure'>\r
394         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
395         <parameter name="error-code" value="500" />\r
396     <parameter name="error-message" value="`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
397 </return></outcome></execute><set>\r
398         <parameter name="eipam-ip-block.status" value="ERROR" /></set><return status='failure'>\r
399         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
400         <parameter name="error-code" value="500" />\r
401         <parameter name="error-message" value="'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'" /></return></block></outcome></update><save \r
402         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' \r
403         resource='SQL'\r
404         key="UPDATE EIPAM_IP_SUBNETS\r
405              SET status = 'CREATED'\r
406              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
407     force='true'\r
408         pfx='pfx.eipam-subnet-row'>\r
409 <outcome value='failure'>\r
410 <return status="failure">\r
411         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
412         <parameter name="error-code" value="500"/>\r
413         <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />\r
414         </return></outcome><outcome value="not-found"><return status="failure">\r
415         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
416         <parameter name="error-code" value="500"/>\r
417         <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />\r
418         </return></outcome></save><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">\r
419 <outcome value='failure'><return status="failure">\r
420         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
421         <parameter name="error-code" value="500"/>\r
422         <parameter name="error-message" value="An error occured while activating subnet in EIPAM." />\r
423         </return></outcome></execute><save \r
424         plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource' \r
425         resource='SQL'\r
426         key="UPDATE EIPAM_IP_SUBNETS\r
427              SET status = 'ACTIVE'\r
428              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
429     force='true'\r
430         pfx='pfx.eipam-subnet-row'>\r
431 <outcome value='failure'>\r
432 <return status="failure">\r
433         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
434         <parameter name="error-code" value="500"/>\r
435         <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\r
436         </return></outcome><outcome value="not-found"><return status="failure">\r
437         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
438         <parameter name="error-code" value="500"/>\r
439         <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\r
440         </return></outcome><outcome value='success'>\r
441 </outcome></save><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
442         resource="subnet" \r
443                 key="l3-network.network-id = $aai.l3-network.network-id \r
444                         AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
445 <parameter name="orchestration-status" value="Created" />\r
446                 <outcome value='failure'>\r
447 <return status="failure">\r
448         <parameter name="error-code" value="500"/>\r
449         <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\r
450         </return></outcome><outcome value="not-found"><return status="failure">\r
451         <parameter name="error-code" value="500"/>\r
452         <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
453         </return></outcome></update> <return status="success">\r
454         <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
455 </return></block></outcome></execute></outcome></switch></block></method></service-logic>