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
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
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
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
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
51 <parameter name='tmp.gun.list-end' value='10' />
\r
52 </set></outcome><outcome value='2'>
\r
54 <parameter name='tmp.gun.list-end' value='100' />
\r
55 </set></outcome><outcome value='3'>
\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
68 <outcome value='success'>
\r
71 <parameter name='tmp.gun.index-exists' value='true' />
\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
77 <parameter name='tmp.gun.index-exists' value='false' />
\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
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
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 < 10`'>
\r
95 <outcome value='true'>
\r
97 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />
\r
98 </set></outcome><outcome value='false'>
\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 < 10`'>
\r
103 <outcome value='true'>
\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 < 100`'>
\r
108 <outcome value='true'>
\r
110 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />
\r
111 </set></outcome><outcome value='false'>
\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
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
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
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
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
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
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 < 10`'>
\r
186 <outcome value='true'>
\r
188 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />
\r
189 </set></outcome><outcome value='false'>
\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 < 10`'>
\r
194 <outcome value='true'>
\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 < 100`'>
\r
199 <outcome value='true'>
\r
201 <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />
\r
202 </set></outcome><outcome value='false'>
\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
208 <parameter name='tmp.gun.namedb.name' value='' />
\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
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
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
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
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
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>