d36c40665a5dc70e3e8f70b26c4edd46acefc6e4
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_rollback-generated-names.xml
1 <service-logic\r
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='rollback-generated-names' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test='`$rollback-generated-names-input.context-id`'>\r
7                 <outcome value=''>\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="rollback-generated-names-input.context-id can not be null" />\r
12                     </return>\r
13                 </outcome>\r
14             </switch>\r
15             <switch test='`$rollback-generated-names-input.naming-type`'>\r
16                 <outcome value=''>\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="rollback-generated-names-input.naming-type can not be null" />\r
21                     </return>\r
22                 </outcome>\r
23                 <outcome value='VM_INSTANCE'>\r
24                     <set>\r
25                         <parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VM_NAME_INDEX' />\r
26                         <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vm_name_prefix' />\r
27                     </set>\r
28                 </outcome>\r
29                 <outcome value='VNFC_INSTANCE'>\r
30                     <set>\r
31                         <parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VNFC_NAME_INDEX' />\r
32                         <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnfc_name_prefix' />\r
33                     </set>\r
34                 </outcome>\r
35                 <outcome value='CLIENT_KEY'>\r
36                     <set>\r
37                         <parameter name='rollback-generated-names.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\r
38                         <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnf_name_prefix' />\r
39                     </set>\r
40                 </outcome>\r
41                 <outcome value='NETWORK_INSTANCE'>\r
42                     <set>\r
43                         <parameter name='rollback-generated-names.index-table-name' \r
44         value='NETWORK_INSTANCE_NAME_INDEX' />\r
45                         <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
46         value='network_instance_name_prefix' />\r
47                     </set>\r
48                 </outcome>\r
49                 <outcome value='SERVICE_INSTANCE'>\r
50                     <set>\r
51                         <parameter name='rollback-generated-names.index-table-name' \r
52         value='SERVICE_INSTANCE_NAME_INDEX' />\r
53                         <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
54         value='service_instance_name_prefix' />\r
55                     </set>\r
56                 </outcome>\r
57                 <outcome value='VNF_INSTANCE'>\r
58                     <set>\r
59                         <parameter name='rollback-generated-names.index-table-name' value='VNF_NAME_INDEX' />\r
60                         <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
61         value='vnf_name_prefix' />\r
62                     </set>\r
63                 </outcome>\r
64                 <outcome value='Other'>\r
65                     <return status='failure'>\r
66                         <parameter name='ack-final' value='Y'/>\r
67                         <parameter name="error-code" value="500" />\r
68                         <parameter name="error-message" value="`'Unknown rollbck-generated-name-input.naming-type: ' + $rollback-generated-names-input.naming-type`" />\r
69                     </return>\r
70                 </outcome>\r
71             </switch>\r
72             <set>\r
73                 <parameter name='db.grn.' value='' />\r
74             </set>\r
75             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
76         key='SELECT distinct prefix from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type  \r
77                 AND context_id = $rollback-generated-names-input.context-id'\r
78   pfx='db.grn.distinct-prefix[]'>\r
79                 <outcome value='failure'>\r
80                     <return status='failure'>\r
81                         <parameter name='error-code' value='500'/>\r
82                         <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table to retrieve distinct prefix"/>\r
83                     </return>\r
84                 </outcome>\r
85                 <outcome value='not-found'>\r
86                     <set>\r
87                         <parameter name='db.grn.distinct-prefix_length' value='0' />\r
88                     </set>\r
89                 </outcome>\r
90             </get-resource>\r
91             <for index='prefix-index' start='0' end='`$db.grn.distinct-prefix_length`' >\r
92                 <block atomic='true'>\r
93                     <set>\r
94                         <parameter name='db.grn.subset.' value='' />\r
95                     </set>\r
96                     <set>\r
97                         <parameter name='tmp.rb.' value='' />\r
98                     </set>\r
99                     <set>\r
100                         <parameter name='tmp.rb.grn.prefix' value='`$db.grn.distinct-prefix[$prefix-index].prefix`' />\r
101                     </set>\r
102                     <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
103         key='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type   \r
104                 AND context_id = $rollback-generated-names-input.context-id \r
105                 AND prefix = $tmp.rb.grn.prefix order by name_index'\r
106   pfx='db.grn.subset[]'>\r
107                         <outcome value='failure'>\r
108                             <return status='failure'>\r
109                                 <parameter name='error-code' value='500'/>\r
110                                 <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table"/>\r
111                             </return>\r
112                         </outcome>\r
113                         <outcome value='not-found'>\r
114                             <return status='failure'>\r
115                                 <parameter name='error-code' value='500'/>\r
116                                 <parameter name='error-message' value="`'No entry found in GENERIC_RESOURCE_NAME where context_id = ' + $rollback-generated-names-input.context-id + ' and type = ' + $rollback-generated-names-input.naming-type + ' and prefix = ' + $db.grn.distinct-prefix[$prefix-index].prefix`"/>\r
117                             </return>\r
118                         </outcome>\r
119                     </get-resource>\r
120                     <block atomic='true'>\r
121                         <set>\r
122                             <parameter name='tmp.rb.sql' \r
123         value="`'SELECT * from ' + $rollback-generated-names.index-table-name \r
124                 + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
125                 + ' = $tmp.rb.grn.prefix'`" />\r
126                         </set>\r
127                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
128   key="`$tmp.rb.sql`" pfx='db.grn.index-table'>\r
129                             <outcome value='failure'>\r
130                                 <return status='failure'>\r
131                                     <parameter name='error-message' value="`'Error reading the '\r
132         + $rollback-generated-names.index-table-name \r
133         + ' table with ' + $rollback-generated-names.name-prefix-column\r
134         + ' = ' + $tmp.rb.grn.prefix \r
135         + '. MANUAL clean up is required!'`" />\r
136                                 </return>\r
137                             </outcome>\r
138                             <outcome value='not-found'>\r
139                                 <return status='failure'>\r
140                                     <parameter name='error-message' value="`'No entries found in ' \r
141         + $rollback-generated-names.index-table-name \r
142         + ' with ' \r
143         + $rollback-generated-names.name-prefix-column \r
144         + ' = ' \r
145         + $tmp.rb.grn.prefix `" />\r
146                                 </return>\r
147                             </outcome>\r
148                         </get-resource>\r
149                     </block>\r
150                     <set>\r
151                         <parameter name='tmp.rb.grn.max-index' \r
152         value='`$db.grn.subset[$db.grn.subset_length - 1].name-index`' />\r
153                     </set>\r
154                     <set>\r
155                         <parameter name='tmp.rb.delta-index' \r
156         value='`$db.grn.index-table.index-number - $tmp.rb.grn.max-index`' />\r
157                     </set>\r
158                     <set>\r
159                         <parameter name='tmp.rb.net-index' \r
160         value='`$db.grn.index-table.index-number - $db.grn.subset_length`' />\r
161                     </set>\r
162                     <switch test="`$tmp.rb.delta-index == 0`">\r
163                         <outcome value='true'>\r
164                             <switch test="`$tmp.rb.net-index == 0`">\r
165                                 <outcome value='true'>\r
166                                     <block atomic='true'>\r
167                                         <set>\r
168                                             <parameter name='tmp.rb.sql' \r
169         value="`'DELETE from ' + $rollback-generated-names.index-table-name \r
170                 + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
171                 + ' = $tmp.rb.grn.prefix'`" />\r
172                                             <!--\r
173 + ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`" />\r
174 -->\r
175                                         </set>\r
176                                         <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
177   key="`$tmp.rb.sql`">\r
178                                             <outcome value='failure'>\r
179                                                 <return status='failure'>\r
180                                                     <parameter name='error-message' value="`'Error deleting '\r
181         + $rollback-generated-names.index-table-name \r
182         + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
183         + ' = ' + $tmp.rb.grn.prefix \r
184         + ' AND index_number = ' + $db.index-table.index-number\r
185         + '. MANUAL clean up is required!'`" />\r
186                                                 </return>\r
187                                             </outcome>\r
188                                             <outcome value='not-found'>\r
189                                                 <block></block>\r
190                                             </outcome>\r
191                                         </update>\r
192                                     </block>\r
193                                 </outcome>\r
194                                 <outcome value='false'>\r
195                                     <block atomic='true'>\r
196                                         <set>\r
197                                             <parameter name='tmp.rb.sql' \r
198         value="`'UPDATE ' + $rollback-generated-names.index-table-name \r
199                 + ' set index_number = ' + $tmp.rb.net-index\r
200                 + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
201                 + ' = $tmp.rb.grn.prefix'`" />\r
202                                         </set>\r
203                                         <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
204   key="`$tmp.rb.sql`">\r
205                                             <outcome value='failure'>\r
206                                                 <return status='failure'>\r
207                                                     <parameter name='error-message' value="`'Error updating  '\r
208         + $rollback-generated-names.index-table-name + '.index_number = ' \r
209         + $tmp.rb.net-index\r
210         + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
211         + ' = ' + $tmp.rb.grn.prefix\r
212         + '. MANUAL clean up is required!'`" />\r
213                                                 </return>\r
214                                             </outcome>\r
215                                             <outcome value='not-found'>\r
216                                                 <return status='failure'>\r
217                                                     <parameter name='error-message' value="`'Error updating  '\r
218         + $rollback-generated-names.index-table-name + '.index_number = ' \r
219         + $tmp.rb.net-index\r
220         + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
221         + ' = ' + $tmp.rb.grn.prefix\r
222         + '. MANUAL clean up is required!'`" />\r
223                                                 </return>\r
224                                             </outcome>\r
225                                         </update>\r
226                                     </block>\r
227                                 </outcome>\r
228                             </switch>\r
229                         </outcome>\r
230                         <outcome value='false'>\r
231                             <block></block>\r
232                         </outcome>\r
233                     </switch>\r
234                     <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
235         key='DELETE from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type  \r
236                 AND context_id = $rollback-generated-names-input.context-id \r
237                 AND prefix = $tmp.rb.grn.prefix'>\r
238                         <outcome value='failure'>\r
239                             <return status='failure'>\r
240                                 <parameter name='error-message' value="`'Error deleting GENERIC_RESOURCE_NAME WHERE type = '\r
241         + $rollback-generated-names-input.naming-type  \r
242         + ' AND context_id = ' + $rollback-generated-names-input.context-id \r
243         + ' AND prefix = '+ $tmp.rb.grn.prefix\r
244         + '. MANUAL clean up is required!'`" />\r
245                             </return>\r
246                         </outcome>\r
247                         <outcome value='not-found'>\r
248                             <block></block>\r
249                         </outcome>\r
250                     </delete>\r
251                     <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
252         key='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type    \r
253                 AND prefix = $tmp.rb.grn.prefix order by name_index'\r
254   pfx='db.grn.prefix[]'>\r
255                         <outcome value='failure'>\r
256                             <return status='failure'>\r
257                                 <parameter name='error-code' value='500'/>\r
258                                 <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table"/>\r
259                             </return>\r
260                         </outcome>\r
261                         <outcome value='not-found'>\r
262                             <block>\r
263                                 <set>\r
264                                     <parameter name='tmp.rb.sql' \r
265         value="`'DELETE from ' + $rollback-generated-names.index-table-name \r
266                 + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
267                 + ' = $tmp.rb.grn.prefix'`" />\r
268                                     <!--\r
269 + ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`" />\r
270 -->\r
271                                 </set>\r
272                                 <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
273   key="`$tmp.rb.sql`">\r
274                                     <outcome value='failure'>\r
275                                         <return status='failure'>\r
276                                             <parameter name='error-message' value="`'Error deleting '\r
277         + $rollback-generated-names.index-table-name \r
278         + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
279         + ' = ' + $tmp.rb.grn.prefix \r
280         + ' AND index_number = ' + $db.index-table.index-number`" />\r
281                                         </return>\r
282                                     </outcome>\r
283                                     <outcome value='not-found'>\r
284                                         <block></block>\r
285                                     </outcome>\r
286                                 </update>\r
287                             </block>\r
288                         </outcome>\r
289                         <outcome value='success'>\r
290                             <block>\r
291                                 <set>\r
292                                     <parameter name='tmp.rb.grn.last-max-index' \r
293         value='`$db.grn.prefix[$db.grn.prefix_length - 1].name-index`' />\r
294                                 </set>\r
295                                 <switch test="`$tmp.rb.net-index > $tmp.rb.grn.last-max-index`">\r
296                                     <outcome value='true'>\r
297                                         <block>\r
298                                             <set>\r
299                                                 <parameter name='tmp.rb.sql' \r
300         value="`'UPDATE ' + $rollback-generated-names.index-table-name \r
301                 + ' set index_number = ' + $tmp.rb.grn.last-max-index\r
302                 + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
303                 + ' = $tmp.rb.grn.prefix'`" />\r
304                                             </set>\r
305                                             <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
306   key="`$tmp.rb.sql`">\r
307                                                 <outcome value='failure'>\r
308                                                     <return status='failure'>\r
309                                                         <parameter name='error-message' value="`'Error updating  '\r
310         + $rollback-generated-names.index-table-name + '.index_number = ' \r
311         + $tmp.rb.grn.last-max-index\r
312         + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
313         + ' = ' + $tmp.rb.grn.prefix`" />\r
314                                                     </return>\r
315                                                 </outcome>\r
316                                                 <outcome value='not-found'>\r
317                                                     <return status='failure'>\r
318                                                         <parameter name='error-message' value="`'Error updating  '\r
319         + $rollback-generated-names.index-table-name + '.index_number = ' \r
320         + $tmp.rb.grn.last-max-index\r
321         + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
322         + ' = ' + $tmp.rb.grn.prefix`" />\r
323                                                     </return>\r
324                                                 </outcome>\r
325                                             </update>\r
326                                         </block>\r
327                                     </outcome>\r
328                                 </switch>\r
329                             </block>\r
330                         </outcome>\r
331                     </get-resource>\r
332                 </block>\r
333             </for>\r
334         </block>\r
335     </method>\r
336 </service-logic>