f74af9617b138a7cb6aca18f7558635d294111b0
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_generate-unique-name.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='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='generate-unique-name' mode='sync'>\r
2 <block atomic="true"><set>\r
3 <parameter name='generate-unique-name-output.error-message' value='' />\r
4 <parameter name='generate-unique-name-output.generated-name' value='' />\r
5 </set><switch test='`$generate-unique-name-input.supplied-name`'>\r
6 <outcome value='Other'>\r
7 <block atomic="true"><switch test='`$generate-unique-name-input.name-table-type`'>\r
8 <outcome value=''><return status='failure'>\r
9 <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
10 </return></outcome></switch><set>\r
11 <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
12 + ' AND name = $generate-unique-name-input.supplied-name'`" />\r
13 </set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
14   key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
15 \r
16 <outcome value='failure'>\r
17 <return status='failure'>\r
18 <parameter name='generate-unique-name-output.error-message' value="`'Error reading the ' + $generate-unique-name-input.name-table-index + ' table'`" />\r
19 \r
20 </return></outcome><outcome value='not-found'>\r
21 <block atomic="true"><set>\r
22 <parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
23 + ' $generate-unique-name-input.name-table-type , $generate-unique-name-input.supplied-name )'`" />\r
24 \r
25 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
26   key="`$tmp.gun.sql`" pfx='pfx'>\r
27 <outcome value='failure'>\r
28 <return status='failure'>\r
29 <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
30 </return></outcome></save></block></outcome><outcome value='Other'>\r
31 <return status='failure'>\r
32 <parameter name='generate-unique-name-output.error-message' value="`'The name ' + $generate-unique-name-input.supplied-name + ' has already been used'`" />\r
33 \r
34 </return></outcome></get-resource></block></outcome><outcome value=''><block atomic="true"><switch test='`$generate-unique-name-input.index-table-name`'>\r
35 <outcome value=''><return status='failure'>\r
36 <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-name not supplied' />\r
37 </return></outcome></switch><switch test='`$generate-unique-name-input.index-table-prefix-column`'>\r
38 <outcome value=''><return status='failure'>\r
39 <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-prefix-column not supplied' />\r
40 </return></outcome></switch><switch test='`$generate-unique-name-input.name-table-type`'>\r
41 <outcome value=''><return status='failure'>\r
42 <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
43 </return></outcome></switch><switch test='`$generate-unique-name-input.prefix`'>\r
44 <outcome value=''><return status='failure'>\r
45 <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\r
46 </return></outcome></switch><switch test='`$generate-unique-name-input.index-length`'>\r
47 <outcome value=''><set>\r
48 <parameter name='tmp.gun.list-end' value='10000' />\r
49 </set></outcome><outcome value='1'>\r
50 <set>\r
51 <parameter name='tmp.gun.list-end' value='10' />\r
52 </set></outcome><outcome value='2'>\r
53 <set>\r
54 <parameter name='tmp.gun.list-end' value='100' />\r
55 </set></outcome><outcome value='3'>\r
56 <set>\r
57 <parameter name='tmp.gun.list-end' value='1000' />\r
58 </set></outcome><outcome value='Other'>\r
59 <return status='failure'>\r
60 <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\r
61 </return></outcome></switch><set>\r
62 <parameter name='tmp.gun.sql' value="`'SELECT * from ' + $generate-unique-name-input.index-table-name\r
63 + ' WHERE ' + $generate-unique-name-input.index-table-prefix-column + ' = '\r
64 + '$generate-unique-name-input.prefix'`" />\r
65 </set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
66   key="`$tmp.gun.sql`" pfx='tmp.gun.prefixdb'>\r
67 \r
68 <outcome value='success'>\r
69 <block>\r
70 <set>\r
71 <parameter name='tmp.gun.index-exists' value='true' />\r
72 </set><set>\r
73 <parameter name='tmp.gun.index-number' value='`$tmp.gun.prefixdb.index-number + 1`' />\r
74 </set></block></outcome><outcome value='not-found'>\r
75 <block>\r
76 <set>\r
77 <parameter name='tmp.gun.index-exists' value='false' />\r
78 </set><set>\r
79 <parameter name='tmp.gun.index-number' value='1' />\r
80 </set></block></outcome><outcome value='failure'>\r
81 <return status='failure'>\r
82     <parameter name="generate-unique-name-output.error-message" value="`'Error reading the ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
83 </return></outcome></get-resource><set>\r
84 <parameter name='tmp.gun.found-flag' value='false' />\r
85 </set><block>\r
86 <for index='tmp.gun.idx' start='`$tmp.gun.index-number`' end='`$tmp.gun.list-end`' >\r
87 <block atomic="true"><switch test='`$generate-unique-name-input.index-length`'>\r
88 <outcome value=''><set>\r
89 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
90 </set></outcome><outcome value='1'>\r
91 <set>\r
92 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
93 </set></outcome><outcome value='2'>\r
94 <switch test='`$tmp.gun.idx &lt; 10`'>\r
95 <outcome value='true'>\r
96 <set>\r
97 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
98 </set></outcome><outcome value='false'>\r
99 <set>\r
100 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
101 </set></outcome></switch></outcome><outcome value='3'>\r
102 <switch test='`$tmp.gun.idx &lt; 10`'>\r
103 <outcome value='true'>\r
104 <set>\r
105 <parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
106 </set></outcome><outcome value='false'>\r
107 <switch test='`$tmp.gun.idx &lt; 100`'>\r
108 <outcome value='true'>\r
109 <set>\r
110 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
111 </set></outcome><outcome value='false'>\r
112 <set>\r
113 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
114 </set></outcome></switch></outcome></switch></outcome></switch><set>\r
115 <parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\r
116 </set><set>\r
117 <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
118 + ' AND name = $tmp.gun.generated-name'`" />\r
119 </set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
120   key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
121 \r
122 <outcome value='failure'>\r
123 <block atomic="true"><set>\r
124 <parameter name='generate-unique-name-output.error-message' value="`'Error reading the GENERIC_RESOURCE_NAME table'`" />\r
125 </set><return status='failure'>\r
126 </return></block></outcome><outcome value='not-found'>\r
127 <block atomic="true"><set>\r
128 <parameter name='tmp.gun.found-flag' value='true' />\r
129 </set><return status='failure'>\r
130 </return></block></outcome></get-resource></block></for><return status='success'>\r
131 \r
132 </return></block><switch test='`$generate-unique-name-output.error-message`'>\r
133 <outcome value=''><block>\r
134 </block></outcome><outcome value='Other'>\r
135 <return status='failure'>\r
136 </return></outcome></switch><switch test='`$tmp.gun.found-flag`'>\r
137 <outcome value='true'><block atomic="true"><set>\r
138 <parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\r
139 </set><switch test='`$tmp.gun.index-exists`'>\r
140 <outcome value='true'>\r
141 <block atomic="true"><set>\r
142 <parameter name='tmp.gun.sql' value="`'update ' + $generate-unique-name-input.index-table-name\r
143 + ' set index_number = ' + $tmp.gun.index-string + ' where '\r
144 + $generate-unique-name-input.index-table-prefix-column\r
145 + ' = $generate-unique-name-input.prefix'`" />\r
146 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
147   key="`$tmp.gun.sql`" pfx='pfx'>\r
148 <outcome value='failure'>\r
149 <return status='failure'>\r
150     <parameter name="generate-unique-name-output.error-message" value="`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
151 </return></outcome></save></block></outcome><outcome value='false'>\r
152 <block atomic="true"><set>\r
153 <parameter name='tmp.gun.sql' value="`'insert into ' + $generate-unique-name-input.index-table-name\r
154 + '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\r
155 + ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`" />\r
156 \r
157 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
158   key="`$tmp.gun.sql`" pfx='pfx'>\r
159 <outcome value='failure'>\r
160 <return status='failure'>\r
161     <parameter name="generate-unique-name-output.error-message" value="`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
162 </return></outcome></save></block></outcome></switch><set>\r
163 <parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
164 + ' $generate-unique-name-input.name-table-type , $tmp.gun.generated-name )'`" />\r
165 \r
166 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
167   key="`$tmp.gun.sql`" pfx='pfx'>\r
168 <outcome value='failure'>\r
169 <return status='failure'>\r
170     <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
171 </return></outcome></save><return status='success'>\r
172 </return></block></outcome><outcome value='false'>\r
173 <block atomic="true"><switch test='`$generate-unique-name-input.index-length`'>\r
174 <outcome value=''><return status='failure'>\r
175     <parameter name="generate-unique-name-output.error-message" value="We have exhausted the naming index count" />\r
176 </return></outcome></switch><block>\r
177 <for index='tmp.gun.idx' start='1' end='`$tmp.gun.index-number`' >\r
178 <block atomic="true"><switch test='`$generate-unique-name-input.index-length`'>\r
179 <outcome value=''><set>\r
180 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
181 </set></outcome><outcome value='1'>\r
182 <set>\r
183 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
184 </set></outcome><outcome value='2'>\r
185 <switch test='`$tmp.gun.idx &lt; 10`'>\r
186 <outcome value='true'>\r
187 <set>\r
188 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
189 </set></outcome><outcome value='false'>\r
190 <set>\r
191 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
192 </set></outcome></switch></outcome><outcome value='3'>\r
193 <switch test='`$tmp.gun.idx &lt; 10`'>\r
194 <outcome value='true'>\r
195 <set>\r
196 <parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
197 </set></outcome><outcome value='false'>\r
198 <switch test='`$tmp.gun.idx &lt; 100`'>\r
199 <outcome value='true'>\r
200 <set>\r
201 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
202 </set></outcome><outcome value='false'>\r
203 <set>\r
204 <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
205 </set></outcome></switch></outcome></switch></outcome></switch><set>\r
206 <parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\r
207 </set><set>\r
208 <parameter name='tmp.gun.namedb.name' value='' />\r
209 </set><set>\r
210 <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
211 + ' AND name = $tmp.gun.generated-name'`" />\r
212 </set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
213   key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
214 \r
215 <outcome value='failure'>\r
216 <block atomic="true"><set>\r
217 <parameter name='generate-unique-name-output.error-message' value="Error reading the GENERIC_RESOURCE_NAME table" />\r
218 </set><return status='failure'>\r
219 </return></block></outcome><outcome value='not-found'>\r
220 <block atomic="true"><set>\r
221 <parameter name='tmp.gun.found-flag' value='true' />\r
222 </set><return status='failure'>\r
223 </return></block></outcome></get-resource></block></for><return status='success'>\r
224 \r
225 </return></block><switch test='`$generate-unique-name-output.error-message`'>\r
226 <outcome value=''><block>\r
227 </block></outcome><outcome value='Other'>\r
228 <return status='failure'>\r
229 </return></outcome></switch><switch test='`$tmp.gun.found-flag`'>\r
230 <outcome value='true'><block atomic="true"><set>\r
231 <parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\r
232 </set><switch test='`$tmp.gun.index-exists`'>\r
233 <outcome value='true'>\r
234 <block atomic="true"><set>\r
235 <parameter name='tmp.gun.sql' value="`'update ' + $generate-unique-name-input.index-table-name\r
236 + ' set index_number = ' + $tmp.gun.index-string + ' where '\r
237 + $generate-unique-name-input.index-table-prefix-column\r
238 + ' = $generate-unique-name-input.prefix'`" />\r
239 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
240   key="`$tmp.gun.sql`" pfx='pfx'>\r
241 <outcome value='failure'>\r
242 <return status='failure'>\r
243     <parameter name="generate-unique-name-output.error-message" value="`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
244 </return></outcome></save></block></outcome><outcome value='false'>\r
245 <block atomic="true"><set>\r
246 <parameter name='tmp.gun.sql' value="`'insert into ' + $generate-unique-name-input.index-table-name\r
247 + '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\r
248 + ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`" />\r
249 \r
250 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
251   key="`$tmp.gun.sql`" pfx='pfx'>\r
252 <outcome value='failure'>\r
253 <return status='failure'>\r
254     <parameter name="generate-unique-name-output.error-message" value="`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
255 </return></outcome></save></block></outcome></switch><set>\r
256 <parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
257 + ' $generate-unique-name-input.name-table-type , $tmp.gun.generated-name )'`" />\r
258 \r
259 </set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
260   key="`$tmp.gun.sql`" pfx='pfx'>\r
261 <outcome value='failure'>\r
262 <return status='failure'>\r
263     <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
264 </return></outcome></save><return status='success'>\r
265 \r
266 </return></block></outcome></switch><return status='failure'>\r
267     <parameter name="generate-unique-name-output.error-message" value="We have exhausted the naming index count" />\r
268 </return></block></outcome></switch></block></outcome></switch></block></method></service-logic>