Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation-unassign.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='network-topology-operation-unassign' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\r
7                 <outcome value='true'>\r
8                     <block atomic="true">\r
9                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
10         resource="l3-network" \r
11                 key="l3-network.network-id = $network-topology-operation-input.network-information.network-id" \r
12                 local-only="false" \r
13                 pfx="aai.l3-network">\r
14                             <outcome value='success'>\r
15                                 <block atomic="true">\r
16                                     <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
17         resource="l3-network" \r
18         key="l3-network.network-id = $network-topology-operation-input.network-information.network-id">\r
19                                         <outcome value='failure'>\r
20                                             <return status="failure">\r
21                                                 <parameter name="error-code" value="500"/>\r
22                                                 <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
23                                             </return>\r
24                                         </outcome>\r
25                                     </delete>\r
26                                 </block>\r
27                             </outcome>\r
28                             <outcome value='not-found'></outcome>\r
29                             <outcome value='failure'>\r
30                                 <return status='failure'>\r
31                                     <parameter name="error-code" value="500" />\r
32                                     <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" />\r
33                                 </return>\r
34                             </outcome>\r
35                         </get-resource>\r
36                     </block>\r
37                 </outcome>\r
38                 <outcome value='Other'>\r
39                     <switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\r
40                         <outcome value=''>\r
41                             <block atomic="true">\r
42                                 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
43   key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $service-data.networks.network[$nidx].network-data.network-information.onap-model-information.model-customization-uuid\r
44   and service_uuid = $service-data.networks.network[$nidx].network-data.service-information.onap-model-information.model-uuid'\r
45   pfx='network-model'></get-resource>\r
46                                 <set>\r
47                                     <parameter name="tmp.level1-key-value" value=""/>\r
48                                     <parameter name="tmp.level1inuse" value="false" />\r
49                                     <parameter name="pidx" value="0" />\r
50                                     <parameter name="pidx-len" value="0" />\r
51                                 </set>\r
52                                 <get-resource\r
53         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
54         resource='SQL'\r
55         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.network_id = $network-topology-operation-input.network-information.network-id and s.entity_id = k.entity_id ; "\r
56         pfx='tmp.eipam-subnet-row[]'>\r
57                                     <outcome value='failure'>\r
58                                         <return status="failure">\r
59                                             <parameter name="tmp.eipam-error" value="true" />\r
60                                             <parameter name="error-code" value="500"/>\r
61                                             <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
62                                         </return>\r
63                                     </outcome>\r
64                                     <outcome value='success'>\r
65                                         <block atomic='true'>\r
66                                             <for silentFailure='true' index='esidx' start='0' end='`$tmp.eipam-subnet-row_length`' >\r
67                                                 <block atomic="true">\r
68                                                     <switch test='`$tmp.eipam-subnet-row[$esidx].level`'>\r
69                                                         <outcome value='1'>\r
70                                                             <block atomic="true">\r
71                                                                 <set>\r
72                                                                     <parameter name="tmp.level1-key-value[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].key-value`"/>\r
73                                                                 </set>\r
74                                                                 <set>\r
75                                                                     <parameter name="tmp.plan-name[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].plan-name`"/>\r
76                                                                 </set>\r
77                                                                 <set>\r
78                                                                     <parameter name="pidx" value="`$pidx + 1`"/>\r
79                                                                 </set>\r
80                                                                 <set>\r
81                                                                     <parameter name="pidx-len" value="`$pidx`"/>\r
82                                                                 </set>\r
83                                                             </block>\r
84                                                         </outcome>\r
85                                                         <outcome value='Other'>\r
86                                                             <block atomic="true"></block>\r
87                                                         </outcome>\r
88                                                     </switch>\r
89                                                 </block>\r
90                                             </for>\r
91                                         </block>\r
92                                     </outcome>\r
93                                     <outcome value="not-found">\r
94                                         <block atomic='true'></block>\r
95                                     </outcome>\r
96                                 </get-resource>\r
97                                 <set>\r
98                                     <parameter name="eipam-ip-block.network-id" value="`$network-topology-operation-input.network-information.network-id`" />\r
99                                     <parameter name="eipam-ip-block.level" value='2' />\r
100                                     <parameter name="eipam-ip-block.entity-id" value='' />\r
101                                 </set>\r
102                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
103                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateAllSubnets">\r
104                                     <outcome value='failure'>\r
105                                         <return status="failure">\r
106                                             <parameter name="tmp.eipam-error" value="true" />\r
107                                             <parameter name="error-code" value="500"/>\r
108                                             <parameter name="error-message" value="An error occured while deallocating subnets in EIPAM." />\r
109                                         </return>\r
110                                     </outcome>\r
111                                 </execute>\r
112                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
113                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
114                                     <outcome value='failure'>\r
115                                         <return status="failure">\r
116                                             <parameter name="tmp.eipam-error" value="true" />\r
117                                             <parameter name="error-code" value="500"/>\r
118                                             <parameter name="error-message" value="An error occured while deleting level 2 plans in EIPAM." />\r
119                                         </return>\r
120                                     </outcome>\r
121                                 </execute>\r
122                                 <for silentFailure='true' index='npidx' start='0' end='`$pidx-len`' >\r
123                                     <block atomic="true">\r
124                                         <set>\r
125                                             <parameter name="tmp.level1-key-value" value="`$tmp.level1-key-value[$npidx]`" />\r
126                                             <parameter name="tmp.plan-name" value="`$tmp.plan-name[$npidx]`" />\r
127                                         </set>\r
128                                         <switch test='`$tmp.level1-key-value`'>\r
129                                             <outcome value=''>\r
130                                                 <block atomic='true'></block>\r
131                                             </outcome>\r
132                                             <outcome value='Other'>\r
133                                                 <block atomic='true'>\r
134                                                     <switch test='`$network-model`'>\r
135                                                         <outcome value=''></outcome>\r
136                                                         <outcome value='Other'>\r
137                                                             <block atomic='true'>\r
138                                                                 <switch test="`$network-model.use-ipv4`">\r
139                                                                     <outcome value='Y'>\r
140                                                                         <block atomic="true">\r
141                                                                             <set>\r
142                                                                                 <parameter name='tmp.plan-name' value='`$network-model.eipam-v4-address-plan`' />\r
143                                                                             </set>\r
144                                                                             <get-resource\r
145         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
146         resource='SQL'\r
147         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
148         WHERE p.level = 2 \r
149         and p.plan_name = $tmp.plan-name\r
150         and k.level = 1 \r
151         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
152         and k.key_value = $tmp.level1-key-value  ; "\r
153         pfx='tmp.level2pool[]'>\r
154                                                                                 <outcome value='failure'>\r
155                                                                                     <return status="failure">\r
156                                                                                         <parameter name="tmp.eipam-error" value="true" />\r
157                                                                                         <parameter name="error-code" value="500"/>\r
158                                                                                         <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
159                                                                                     </return>\r
160                                                                                 </outcome>\r
161                                                                                 <outcome value='success'>\r
162                                                                                     <block atomic='true'>\r
163                                                                                         <set>\r
164                                                                                             <parameter name="tmp.level1inuse" value="true" />\r
165                                                                                         </set>\r
166                                                                                     </block>\r
167                                                                                 </outcome>\r
168                                                                                 <outcome value="not-found">\r
169                                                                                     <block atomic='true'>\r
170                                                                                         <get-resource\r
171         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
172         resource='SQL'\r
173         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
174         WHERE p.level = 1 \r
175         and p.plan_name = $tmp.plan-name\r
176         and k.level = 1 \r
177         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
178         and k.key_value = $tmp.level1-key-value  ; "\r
179         pfx='tmp.level1pool[]'>\r
180                                                                                             <outcome value='failure'>\r
181                                                                                                 <return status="failure">\r
182                                                                                                     <parameter name="tmp.eipam-error" value="true" />\r
183                                                                                                     <parameter name="error-code" value="500"/>\r
184                                                                                                     <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
185                                                                                                 </return>\r
186                                                                                             </outcome>\r
187                                                                                             <outcome value='success'>\r
188                                                                                                 <block atomic='true'>\r
189                                                                                                     <for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\r
190                                                                                                         <block atomic='true'>\r
191                                                                                                             <set>\r
192                                                                                                                 <parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\r
193                                                                                                                 <parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\r
194                                                                                                                 <parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\r
195                                                                                                                 <parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />\r
196                                                                                                                 <parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />\r
197                                                                                                                 <parameter name="eipam-ip-block.level" value='1' />\r
198                                                                                                             </set>\r
199                                                                                                             <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
200                                                                                                             <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
201                                                                                                                 <outcome value='failure'>\r
202                                                                                                                     <return status="failure">\r
203                                                                                                                         <parameter name="tmp.eipam-error" value="true" />\r
204                                                                                                                         <parameter name="error-code" value="500"/>\r
205                                                                                                                         <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />\r
206                                                                                                                     </return>\r
207                                                                                                                 </outcome>\r
208                                                                                                             </execute>\r
209                                                                                                             <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
210                                                                                                             <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">\r
211                                                                                                                 <outcome value='failure'>\r
212                                                                                                                     <return status="failure">\r
213                                                                                                                         <parameter name="tmp.eipam-error" value="true" />\r
214                                                                                                                         <parameter name="error-code" value="500"/>\r
215                                                                                                                         <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />\r
216                                                                                                                     </return>\r
217                                                                                                                 </outcome>\r
218                                                                                                             </execute>\r
219                                                                                                         </block>\r
220                                                                                                     </for>\r
221                                                                                                 </block>\r
222                                                                                             </outcome>\r
223                                                                                             <outcome value="not-found">\r
224                                                                                                 <block atomic='true'></block>\r
225                                                                                             </outcome>\r
226                                                                                         </get-resource>\r
227                                                                                     </block>\r
228                                                                                 </outcome>\r
229                                                                             </get-resource>\r
230                                                                         </block>\r
231                                                                     </outcome>\r
232                                                                 </switch>\r
233                                                                 <switch test="`$network-model.use-ipv6`">\r
234                                                                     <outcome value='Y'>\r
235                                                                         <block atomic="true">\r
236                                                                             <set>\r
237                                                                                 <parameter name='tmp.plan-name' value='`$network-model.eipam-v6-address-plan`' />\r
238                                                                             </set>\r
239                                                                             <get-resource\r
240         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
241         resource='SQL'\r
242         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
243         WHERE p.level = 2 \r
244         and p.plan_name = $tmp.plan-name\r
245         and k.level = 1 \r
246         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
247         and k.key_value = $tmp.level1-key-value  ; "\r
248         pfx='tmp.level2pool[]'>\r
249                                                                                 <outcome value='failure'>\r
250                                                                                     <return status="failure">\r
251                                                                                         <parameter name="tmp.eipam-error" value="true" />\r
252                                                                                         <parameter name="error-code" value="500"/>\r
253                                                                                         <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
254                                                                                     </return>\r
255                                                                                 </outcome>\r
256                                                                                 <outcome value='success'>\r
257                                                                                     <block atomic='true'>\r
258                                                                                         <set>\r
259                                                                                             <parameter name="tmp.level1inuse" value="true" />\r
260                                                                                         </set>\r
261                                                                                     </block>\r
262                                                                                 </outcome>\r
263                                                                                 <outcome value="not-found">\r
264                                                                                     <block atomic='true'>\r
265                                                                                         <get-resource\r
266         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
267         resource='SQL'\r
268         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
269         WHERE p.level = 1 \r
270         and p.plan_name = $tmp.plan-name\r
271         and k.level = 1 \r
272         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
273         and k.key_value = $tmp.level1-key-value  ; "\r
274         pfx='tmp.level1pool[]'>\r
275                                                                                             <outcome value='failure'>\r
276                                                                                                 <return status="failure">\r
277                                                                                                     <parameter name="tmp.eipam-error" value="true" />\r
278                                                                                                     <parameter name="error-code" value="500"/>\r
279                                                                                                     <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
280                                                                                                 </return>\r
281                                                                                             </outcome>\r
282                                                                                             <outcome value='success'>\r
283                                                                                                 <block atomic='true'>\r
284                                                                                                     <for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\r
285                                                                                                         <block atomic='true'>\r
286                                                                                                             <set>\r
287                                                                                                                 <parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\r
288                                                                                                                 <parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\r
289                                                                                                                 <parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\r
290                                                                                                                 <parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />\r
291                                                                                                                 <parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />\r
292                                                                                                                 <parameter name="eipam-ip-block.level" value='1' />\r
293                                                                                                             </set>\r
294                                                                                                             <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
295                                                                                                             <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
296                                                                                                                 <outcome value='failure'>\r
297                                                                                                                     <return status="failure">\r
298                                                                                                                         <parameter name="tmp.eipam-error" value="true" />\r
299                                                                                                                         <parameter name="error-code" value="500"/>\r
300                                                                                                                         <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />\r
301                                                                                                                     </return>\r
302                                                                                                                 </outcome>\r
303                                                                                                             </execute>\r
304                                                                                                             <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
305                                                                                                             <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">\r
306                                                                                                                 <outcome value='failure'>\r
307                                                                                                                     <return status="failure">\r
308                                                                                                                         <parameter name="tmp.eipam-error" value="true" />\r
309                                                                                                                         <parameter name="error-code" value="500"/>\r
310                                                                                                                         <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />\r
311                                                                                                                     </return>\r
312                                                                                                                 </outcome>\r
313                                                                                                             </execute>\r
314                                                                                                         </block>\r
315                                                                                                     </for>\r
316                                                                                                 </block>\r
317                                                                                             </outcome>\r
318                                                                                             <outcome value="not-found">\r
319                                                                                                 <block atomic='true'></block>\r
320                                                                                             </outcome>\r
321                                                                                         </get-resource>\r
322                                                                                     </block>\r
323                                                                                 </outcome>\r
324                                                                             </get-resource>\r
325                                                                         </block>\r
326                                                                     </outcome>\r
327                                                                 </switch>\r
328                                                             </block>\r
329                                                         </outcome>\r
330                                                     </switch>\r
331                                                 </block>\r
332                                             </outcome>\r
333                                         </switch>\r
334                                     </block>\r
335                                 </for>\r
336                                 <switch test='`$service-data.networks.network_length`'>\r
337                                     <outcome value='1'>\r
338                                         <block atomic="true">\r
339                                             <set>\r
340                                                 <parameter name="service-data.networks." value=""/>\r
341                                             </set>\r
342                                             <set>\r
343                                                 <parameter name="service-data.networks.network_length" value="0"/>\r
344                                             </set>\r
345                                         </block>\r
346                                     </outcome>\r
347                                     <outcome value='Other'>\r
348                                         <block atomic="true">\r
349                                             <set>\r
350                                                 <parameter name="tmp.new_length" value="`$service-data.networks.network_length - 1`"/>\r
351                                             </set>\r
352                                             <for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\r
353                                                 <block atomic="true">\r
354                                                     <set>\r
355                                                         <parameter name="tmp.newidx" value="`$snidx - 1`"/>\r
356                                                     </set>\r
357                                                     <set>\r
358                                                         <parameter name="service-data.networks.network[$tmp.newidx]." value="$service-data.networks.network[$snidx]." />\r
359                                                     </set>\r
360                                                 </block>\r
361                                             </for>\r
362                                             <set>\r
363                                                 <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`"/>\r
364                                             </set>\r
365                                             <set>\r
366                                                 <parameter name="service-data.networks.network[$tmp.new_length]." value=""/>\r
367                                             </set>\r
368                                         </block>\r
369                                     </outcome>\r
370                                 </switch>\r
371                                 <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
372         resource="l3-network" \r
373         key="l3-network.network-id = $network-topology-operation-input.network-information.network-id">\r
374                                     <outcome value='failure'>\r
375                                         <return status="failure">\r
376                                             <parameter name="error-code" value="500"/>\r
377                                             <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
378                                         </return>\r
379                                     </outcome>\r
380                                 </delete>\r
381                                 <set>\r
382                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$network-topology-operation-input.network-information.network-id`' />\r
383                                     <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
384                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
385                                 </set>\r
386                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
387                             </block>\r
388                         </outcome>\r
389                         <outcome value='Other'>\r
390                             <block atomic="true">\r
391                                 <return status='failure'>\r
392                                     <parameter name='ack-final' value='Y'/>\r
393                                     <parameter name="error-code" value="500" />\r
394                                     <parameter name="error-message" value="network collection activate failed" />\r
395                                 </return>\r
396                             </block>\r
397                         </outcome>\r
398                     </switch>\r
399                 </outcome>\r
400             </switch>\r
401             <switch test='`$service-data.networks.network_length`'>\r
402                 <outcome value='1'>\r
403                     <block atomic="true">\r
404                         <set>\r
405                             <parameter name="service-data.networks." value=""/>\r
406                         </set>\r
407                         <set>\r
408                             <parameter name="service-data.networks.network_length" value="0"/>\r
409                         </set>\r
410                     </block>\r
411                 </outcome>\r
412                 <outcome value='Other'>\r
413                     <block atomic="true">\r
414                         <set>\r
415                             <parameter name="tmp.new_length" value="`$service-data.networks.network_length - 1`"/>\r
416                         </set>\r
417                         <for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\r
418                             <block atomic="true">\r
419                                 <set>\r
420                                     <parameter name="tmp.newidx" value="`$snidx - 1`"/>\r
421                                 </set>\r
422                                 <set>\r
423                                     <parameter name="service-data.networks.network[$tmp.newidx]." value="$service-data.networks.network[$snidx]." />\r
424                                 </set>\r
425                             </block>\r
426                         </for>\r
427                         <set>\r
428                             <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`"/>\r
429                         </set>\r
430                         <set>\r
431                             <parameter name="service-data.networks.network[$tmp.new_length]." value=""/>\r
432                         </set>\r
433                     </block>\r
434                 </outcome>\r
435             </switch>\r
436             <return status='success'>\r
437                 <parameter name="ack-final-indicator" value="Y" />\r
438                 <parameter name="error-code" value="200" />\r
439                 <parameter name="error-message" value="`$error-message`" />\r
440             </return>\r
441         </block>\r
442     </method>\r
443 </service-logic>