Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_getpathsegment-create-simple-path.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='getpathsegment-create-simple-path' mode='sync'>\r
5         <block>\r
6             <set>\r
7                 <parameter name='match-type' value='network-name' />\r
8             </set>\r
9             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
10   key='SELECT * from PATH_SEGMENT WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
11     AND path_name = $db.forwarding-path[$path-index].path-name ORDER BY path_segment_seq'\r
12   pfx='db.path-segment[]'>\r
13                 <outcome value='failure'>\r
14                     <block>\r
15                         <set>\r
16                             <parameter name='error-message' value="`'System error reading PATH_SEGMENT table for uuid '\r
17   + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
18   + ' and path '\r
19   + $db.forwarding-path[$path-index].path-name`" />\r
20                         </set>\r
21                     </block>\r
22                 </outcome>\r
23                 <outcome value='not-found'>\r
24                     <block>\r
25                         <set>\r
26                             <parameter name='error-message' value="`'No entries in PATH_SEGMENT table for uuid '\r
27   + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
28   + ' and path '\r
29   + $db.forwarding-path[$path-index].path-name`" />\r
30                         </set>\r
31                     </block>\r
32                 </outcome>\r
33                 <outcome value='success'>\r
34                     <block>\r
35                         <set>\r
36                             <parameter name='vnf-ids_length' value='0' />\r
37                         </set>\r
38                         <for index='path-segment-index' start='0' end='`$db.path-segment_length`' >\r
39                             <block>\r
40                                 <set>\r
41                                     <parameter name='vnf-ids[$vnf-ids_length]' value='`$db.path-segment[$path-segment-index].source-association-uuid`' />\r
42                                     <parameter name='vnf-ids_length' value='`$vnf-ids_length + 1`' />\r
43                                 </set>\r
44                                 <switch test='`$path-segment-index == ( $db.path-segment_length - 1) `'>\r
45                                     <outcome value='true'>\r
46                                         <set>\r
47                                             <parameter name='vnf-ids[$vnf-ids_length]' value='`$db.path-segment[$path-segment-index].target-association-uuid`' />\r
48                                             <parameter name='vnf-ids_length' value='`$vnf-ids_length + 1`' />\r
49                                         </set>\r
50                                     </outcome>\r
51                                 </switch>\r
52                             </block>\r
53                         </for>\r
54                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
55         resource="custom-query"\r
56         key="format = 'resource'"\r
57         force="true"\r
58         local-only="false"\r
59         pfx="aai.service-instances" >\r
60                             <parameter name="start[0]" value="`'nodes/service-instances?model-invariant-id=' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
61                             <parameter name="start_length" value="1" />\r
62                             <outcome value='not-found'>\r
63                                 <block>\r
64                                     <set>\r
65                                         <parameter name='error-message' value="`'No run-time service instances in AAI for invariant uuid '\r
66   + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
67                                     </set>\r
68                                 </block>\r
69                             </outcome>\r
70                             <outcome value='failure'>\r
71                                 <block>\r
72                                     <set>\r
73                                         <parameter name='error-message' value="`'System error calling AAI to get run-time service instances for invariant uuid '\r
74   + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
75                                     </set>\r
76                                 </block>\r
77                             </outcome>\r
78                             <outcome value='success'>\r
79                                 <block>\r
80                                     <set>\r
81                                         <parameter name='runtime_length' value='0' />\r
82                                     </set>\r
83                                     <for index='runtime-index' start='0' end='`$aai.service-instances.results_length`' >\r
84                                         <switch test='`$aai.service-instances.results[$runtime-index].service-instance.orchestration-status`'>\r
85                                             <outcome value='Active'>\r
86                                                 <block>\r
87                                                     <set>\r
88                                                         <parameter name='runtime-ids[$runtime_length]' value='`$aai.service-instances.results[$runtime-index].service-instance.service-instance-id`' />\r
89                                                     </set>\r
90                                                     <set>\r
91                                                         <parameter name='runtime_length' value='`$runtime_length + 1`' />\r
92                                                     </set>\r
93                                                 </block>\r
94                                             </outcome>\r
95                                         </switch>\r
96                                     </for>\r
97                                     <set>\r
98                                         <parameter name='serv-insts_length' value='0' />\r
99                                     </set>\r
100                                     <for index='runtime-index' start='0' end='`$runtime_length`' >\r
101                                         <block>\r
102                                             <set>\r
103                                                 <parameter name='serv-inst.service-instance-id' value='`$runtime-ids[$runtime-index]`' />\r
104                                             </set>\r
105                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
106       resource="custom-query"\r
107       key="format = 'resource_and_url'"\r
108       force="true"\r
109       local-only="false"\r
110       pfx="tmp.AnAI-data.si">\r
111                                                 <parameter name="start[0]" value="`'nodes/service-instance/' + $serv-inst.service-instance-id `" />\r
112                                                 <parameter name="start_length" value="1" />\r
113                                                 <outcome value='success'>\r
114                                                     <block>\r
115                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
116                                                             <parameter name="original_string" value="`$tmp.AnAI-data.si.results[0].url`" />\r
117                                                             <parameter name="regex" value="/"/>\r
118                                                             <parameter name="limit" value="11" />\r
119                                                             <parameter name="ctx_memory_result_key" value="split" />\r
120                                                         </execute>\r
121                                                         <set>\r
122                                                             <parameter name='output-global-customer-id' value='`$split[6]`' />\r
123                                                             <parameter name='output-service-type' value='`$split[9]`' />\r
124                                                             <parameter name='output-service-role' value='`$tmp.AnAI-data.si.results[0].service-instance.service-role`' />\r
125                                                         </set>\r
126                                                     </block>\r
127                                                 </outcome>\r
128                                             </save>\r
129                                             <set>\r
130                                                 <parameter name='mdsal-service.' value='' />\r
131                                                 <parameter name='serv-inst.api' value='' />\r
132                                             </set>\r
133                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
134                                                 <parameter name="source" value="`$prop.restapi.service`"/>\r
135                                                 <parameter name="outputPath" value="tmp.service-url"/>\r
136                                                 <parameter name="target" value="{service-instance-id}"/>\r
137                                                 <parameter name="replacement" value="`$serv-inst.service-instance-id`"/>\r
138                                             </execute>\r
139                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
140                                                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\r
141                                                 <parameter name='restapiUser' value='`$prop.controller.user`' />\r
142                                                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
143                                                 <parameter name='format' value='json' />\r
144                                                 <parameter name='httpMethod' value='GET' />\r
145                                                 <parameter name="responsePrefix" value="mdsal-service" />\r
146                                                 <outcome value='success'>\r
147                                                     <block>\r
148                                                         <set>\r
149                                                             <parameter name='found-path' value='false' />\r
150                                                         </set>\r
151                                                         <for silentFailure='true' index='fp-index' start='0' end='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`' >\r
152                                                             <switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path[$fp-index].forwarding-path-name\r
153   == $db.path-segment[0].path-name`'>\r
154                                                                 <outcome value='true'>\r
155                                                                     <block>\r
156                                                                         <set>\r
157                                                                             <parameter name='found-path' value='true' />\r
158                                                                         </set>\r
159                                                                         <break/>\r
160                                                                     </block>\r
161                                                                 </outcome>\r
162                                                             </switch>\r
163                                                         </for>\r
164                                                         <switch test='`$found-path`'>\r
165                                                             <outcome value='false'>\r
166                                                                 <block>\r
167                                                                     <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' ></call>\r
168                                                                     <set>\r
169                                                                         <parameter name='serv-insts[$serv-insts_length].' value='`$serv-inst.`' />\r
170                                                                     </set>\r
171                                                                     <set>\r
172                                                                         <parameter name='serv-insts_length' value='`$serv-insts_length + 1`' />\r
173                                                                     </set>\r
174                                                                 </block>\r
175                                                             </outcome>\r
176                                                         </switch>\r
177                                                     </block>\r
178                                                 </outcome>\r
179                                                 <outcome value='failure'>\r
180                                                     <block>\r
181                                                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
182   key='select forwarding_path_service_instance_id\r
183     from SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\r
184     where simple_service_instance_id = $serv-inst.service-instance-id'\r
185   pfx='db.sitcim'>\r
186                                                             <outcome value='not-found'>\r
187                                                                 <block>\r
188                                                                     <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-vnfapi' mode='sync' ></call>\r
189                                                                     <switch test='`$serv-inst.api`'>\r
190                                                                         <outcome value=''>\r
191                                                                             <set>\r
192                                                                                 <parameter name='error-message' value="`'Failure finding service instance ' + $serv-inst.service-instance-id + ' in either GENERIC-REOURCE-API or VNF-API'`" />\r
193                                                                             </set>\r
194                                                                         </outcome>\r
195                                                                         <outcome value='Other'>\r
196                                                                             <block>\r
197                                                                                 <set>\r
198                                                                                     <parameter name='serv-insts[$serv-insts_length].' value='`$serv-inst.`' />\r
199                                                                                 </set>\r
200                                                                                 <set>\r
201                                                                                     <parameter name='serv-insts_length' value='`$serv-insts_length + 1`' />\r
202                                                                                 </set>\r
203                                                                             </block>\r
204                                                                         </outcome>\r
205                                                                     </switch>\r
206                                                                 </block>\r
207                                                             </outcome>\r
208                                                         </get-resource>\r
209                                                     </block>\r
210                                                 </outcome>\r
211                                             </execute>\r
212                                         </block>\r
213                                     </for>\r
214                                     <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-simple-match-pair' mode='sync' ></call>\r
215                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
216                                         <parameter name='filename' value='/var/tmp/gps.log' />\r
217                                     </execute>\r
218                                     <for index='serv-index' start='0' end='`$serv-insts_length`' >\r
219                                         <switch test='`$serv-insts[$serv-index].api`'>\r
220                                             <outcome value='GR'>\r
221                                                 <switch test='`$serv-insts[$serv-index].path-segments_length`'>\r
222                                                     <outcome value=''>\r
223                                                         <block></block>\r
224                                                     </outcome>\r
225                                                     <outcome value='0'>\r
226                                                         <block></block>\r
227                                                     </outcome>\r
228                                                     <outcome value='Other'>\r
229                                                         <block>\r
230                                                             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
231                                                                 <parameter name="ctx-destination" value="forwarding-path.forwarding-path-id" />\r
232                                                             </execute>\r
233                                                             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
234                                                                 <parameter name="ctx-destination" value="forwarding-path.service-paths.service-path[0].service-path-instance-id" />\r
235                                                             </execute>\r
236                                                             <set>\r
237                                                                 <parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\r
238                                                                 <parameter name='forwarding-path.forwarding-path-type' value='VNF' />\r
239                                                                 <parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\r
240                                                                 <parameter name='forwarding-path.service-paths.service-path_length' value='1' />\r
241                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service-path-instance-name'\r
242   value='`$db.path-segment[0].path-name + $forwarding-path.service-paths.service-path[0].service-path-instance-id`' />\r
243                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service_length' value='1' />\r
244                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-instance-id'\r
245   value='`$serv-insts[$serv-index].service-instance-id`' />\r
246                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-path-sequence-id' value='1' />\r
247                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
248   value='`$serv-insts[$serv-index].path-segments_length`' />\r
249                                                             </set>\r
250                                                             <set>\r
251                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-path-sequence-id'\r
252   value='1' />\r
253                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-instance-id'\r
254   value='`$serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
255                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-name'\r
256   value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
257                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-role'\r
258   value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
259                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\r
260   value='`$serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
261                                                             </set>\r
262                                                             <set>\r
263                                                                 <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
264                                                                 <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
265                                                             </set>\r
266                                                             <for index='ps-index' start='1' end='`$serv-insts[$serv-index].path-segments_length`' >\r
267                                                                 <block>\r
268                                                                     <set>\r
269                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-path-sequence-id'\r
270   value='`$ps-index + 1`' />\r
271                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-instance-id'\r
272   value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vnf-instance-id`' />\r
273                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-name'\r
274   value='`$prev-network-name`' />\r
275                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-role'\r
276   value='`$prev-network-role`' />\r
277                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-name'\r
278   value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
279                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-role'\r
280   value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
281                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vf-module-instance.vf-module-id'\r
282   value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vf-module-id`' />\r
283                                                                     </set>\r
284                                                                     <set>\r
285                                                                         <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
286                                                                         <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
287                                                                     </set>\r
288                                                                 </block>\r
289                                                             </for>\r
290                                                             <set>\r
291                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-path-sequence-id'\r
292   value='`$ps-index + 2`' />\r
293                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-instance-id'\r
294   value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vnf-instance-id`' />\r
295                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-name'\r
296   value='`$prev-network-name`' />\r
297                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-role'\r
298   value='`$prev-network-role`' />\r
299                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vf-module-instance.vf-module-id'\r
300   value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vf-module-id`' />\r
301                                                             </set>\r
302                                                             <set>\r
303                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
304   value='`$serv-insts[$serv-index].path-segments_length + 1`' />\r
305                                                             </set>\r
306                                                             <switch test='`$serv-insts[$serv-index].api`'>\r
307                                                                 <outcome value='GR'>\r
308                                                                     <set>\r
309                                                                         <parameter name='tmp.service-instance-id' value='`$serv-insts[$serv-index].service-instance-id`' />\r
310                                                                     </set>\r
311                                                                 </outcome>\r
312                                                                 <outcome value='VNF'>\r
313                                                                     <block>\r
314                                                                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
315                                                                             <parameter name="ctx-destination" value="tmp.service-instance-id" />\r
316                                                                         </execute>\r
317                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
318                                                                             <parameter name="source" value="`$prop.restapi.service`"/>\r
319                                                                             <parameter name="outputPath" value="tmp.service-url"/>\r
320                                                                             <parameter name="target" value="{service-instance-id}"/>\r
321                                                                             <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
322                                                                         </execute>\r
323                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
324                                                                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`" />\r
325                                                                             <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\r
326                                                                             <parameter name='restapiUser' value='`$prop.controller.user`' />\r
327                                                                             <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
328                                                                             <parameter name='format' value='json' />\r
329                                                                             <parameter name='httpMethod' value='PUT' />\r
330                                                                             <parameter name="responsePrefix" value="mdsal-sr" />\r
331                                                                             <outcome value='failure'>\r
332                                                                                 <set>\r
333                                                                                     <parameter name='error-message' value="Failure creating service instance in MD-SAL" />\r
334                                                                                 </set>\r
335                                                                             </outcome>\r
336                                                                         </execute>\r
337                                                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
338         resource="service-instance" \r
339         key="customer.global-customer-id = $output-global-customer-id\r
340           AND service-subscription.service-type = $output-service-type\r
341           AND service-instance.service-instance-id = $tmp.service-instance-id" >\r
342                                                                             <parameter name="service-instance-id" value="`$tmp.service-instance-id`" />\r
343                                                                             <parameter name="global-customer-id" value="`$output-global-customer-id`" />\r
344                                                                             <parameter name="service-type" value="`$output-service-type`" />\r
345                                                                             <parameter name="service-role" value="`$output-service-role`" />\r
346                                                                             <outcome value='failure'>\r
347                                                                                 <set>\r
348                                                                                     <parameter name='error-message' value="Failure creating service instance in AAI" />\r
349                                                                                 </set>\r
350                                                                             </outcome>\r
351                                                                             <outcome value='not-found'>\r
352                                                                                 <set>\r
353                                                                                     <parameter name='error-message' value="Failure creating service instance in AAI" />\r
354                                                                                 </set>\r
355                                                                             </outcome>\r
356                                                                         </save>\r
357                                                                         <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
358 key="INSERT INTO SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\r
359   (simple_service_instance_id, forwarding_path_service_instance_id)\r
360   VALUES ( $serv-insts[$serv-index].service-instance-id , $tmp.service-instance-id )" ></save>\r
361                                                                     </block>\r
362                                                                 </outcome>\r
363                                                             </switch>\r
364                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
365                                                                 <parameter name="source" value="`$prop.restapi.forwarding-path`"/>\r
366                                                                 <parameter name="outputPath" value="tmp.fp-url"/>\r
367                                                                 <parameter name="target" value="{service-instance-id}"/>\r
368                                                                 <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
369                                                             </execute>\r
370                                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
371                                                                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`" />\r
372                                                                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\r
373                                                                 <parameter name='restapiUser' value='`$prop.controller.user`' />\r
374                                                                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
375                                                                 <parameter name='format' value='json' />\r
376                                                                 <parameter name='httpMethod' value='PUT' />\r
377                                                                 <parameter name="responsePrefix" value="mdsal-fp" />\r
378                                                                 <outcome value='failure'>\r
379                                                                     <set>\r
380                                                                         <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
381                                                                     </set>\r
382                                                                 </outcome>\r
383                                                                 <outcome value='not-found'>\r
384                                                                     <set>\r
385                                                                         <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
386                                                                     </set>\r
387                                                                 </outcome>\r
388                                                             </execute>\r
389                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
390         resource="forwarding-path" \r
391         key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id" >\r
392                                                                 <parameter name="forwarding-path-id" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
393                                                                 <parameter name="forwarding-path-name" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-name`" />\r
394                                                                 <parameter name="selflink" value="`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\r
395   + $tmp.service-instance-id\r
396   + '/forwarding-paths/forwarding-path/'\r
397   + $forwarding-path.forwarding-path-id\r
398   + '/services-paths/service-path/'\r
399   + $forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
400                                                                 <outcome value='failure'>\r
401                                                                     <set>\r
402                                                                         <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
403                                                                     </set>\r
404                                                                 </outcome>\r
405                                                                 <outcome value='not-found'>\r
406                                                                     <set>\r
407                                                                         <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
408                                                                     </set>\r
409                                                                 </outcome>\r
410                                                             </save>\r
411                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
412    resource="forwarding-path:relationship-list"\r
413    key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id"\r
414    force="true" pfx="tmp.AnAI-data">\r
415                                                                 <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
416                                                                 <parameter name="relationship-list.relationship[0].related-link"\r
417       value="`'/aai/v$/business/customers/customer/'\r
418         + $output-global-customer-id\r
419         + '/service-subscriptions/service-subscription/'\r
420         + $output-service-type\r
421         + '/service-instances/service-instance/'\r
422         + $tmp.service-instance-id`" />\r
423                                                                 <outcome value='failure'>\r
424                                                                     <set>\r
425                                                                         <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
426                                                                     </set>\r
427                                                                 </outcome>\r
428                                                                 <outcome value='not-found'>\r
429                                                                     <set>\r
430                                                                         <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
431                                                                     </set>\r
432                                                                 </outcome>\r
433                                                             </save>\r
434                                                             <for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length`' >\r
435                                                                 <block>\r
436                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
437         resource="forwarder" \r
438         key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id" >\r
439                                                                         <parameter name="sequence" value="`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id`" />\r
440                                                                         <outcome value='failure'>\r
441                                                                             <set>\r
442                                                                                 <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
443                                                                             </set>\r
444                                                                         </outcome>\r
445                                                                         <outcome value='not-found'>\r
446                                                                             <set>\r
447                                                                                 <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
448                                                                             </set>\r
449                                                                         </outcome>\r
450                                                                     </save>\r
451                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
452    resource="forwarder:relationship-list"\r
453    key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\r
454      AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id"\r
455    force="true" pfx="tmp.AnAI-data">\r
456                                                                         <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
457                                                                         <parameter name="relationship-list.relationship[0].related-link"\r
458       value="`'/aai/v$/network/generic-vnfs/generic-vnf/'\r
459         + $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-instance-id`" />\r
460                                                                         <outcome value='failure'>\r
461                                                                             <set>\r
462                                                                                 <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
463                                                                             </set>\r
464                                                                         </outcome>\r
465                                                                         <outcome value='not-found'>\r
466                                                                             <set>\r
467                                                                                 <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
468                                                                             </set>\r
469                                                                         </outcome>\r
470                                                                     </save>\r
471                                                                 </block>\r
472                                                             </for>\r
473                                                         </block>\r
474                                                     </outcome>\r
475                                                 </switch>\r
476                                             </outcome>\r
477                                             <outcome value='VNF'>\r
478                                                 <switch test='`$serv-insts[$serv-index].path-segments_length`'>\r
479                                                     <outcome value=''>\r
480                                                         <block></block>\r
481                                                     </outcome>\r
482                                                     <outcome value='0'>\r
483                                                         <block></block>\r
484                                                     </outcome>\r
485                                                     <outcome value='Other'>\r
486                                                         <block>\r
487                                                             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
488                                                                 <parameter name="ctx-destination" value="forwarding-path.forwarding-path-id" />\r
489                                                             </execute>\r
490                                                             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
491                                                                 <parameter name="ctx-destination" value="forwarding-path.service-paths.service-path[0].service-path-instance-id" />\r
492                                                             </execute>\r
493                                                             <set>\r
494                                                                 <parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\r
495                                                                 <parameter name='forwarding-path.forwarding-path-type' value='VNF' />\r
496                                                                 <parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\r
497                                                                 <parameter name='forwarding-path.service-paths.service-path_length' value='1' />\r
498                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service-path-instance-name'\r
499   value='`$db.path-segment[0].path-name + $forwarding-path.service-paths.service-path[0].service-path-instance-id`' />\r
500                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service_length' value='1' />\r
501                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-instance-id'\r
502   value='`$serv-insts[$serv-index].service-instance-id`' />\r
503                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-path-sequence-id' value='1' />\r
504                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
505   value='`$serv-insts[$serv-index].path-segments_length`' />\r
506                                                             </set>\r
507                                                             <set>\r
508                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-path-sequence-id'\r
509   value='1' />\r
510                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-instance-id'\r
511   value='`$serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
512                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-name'\r
513   value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
514                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-role'\r
515   value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
516                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\r
517   value='`$serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
518                                                             </set>\r
519                                                             <set>\r
520                                                                 <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
521                                                                 <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
522                                                             </set>\r
523                                                             <for index='ps-index' start='1' end='`$serv-insts[$serv-index].path-segments_length`' >\r
524                                                                 <block>\r
525                                                                     <set>\r
526                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-path-sequence-id'\r
527   value='`$ps-index + 1`' />\r
528                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-instance-id'\r
529   value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vnf-instance-id`' />\r
530                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-name'\r
531   value='`$prev-network-name`' />\r
532                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-role'\r
533   value='`$prev-network-role`' />\r
534                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-name'\r
535   value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
536                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-role'\r
537   value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
538                                                                         <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vf-module-instance.vf-module-id'\r
539   value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vf-module-id`' />\r
540                                                                     </set>\r
541                                                                     <set>\r
542                                                                         <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
543                                                                         <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
544                                                                     </set>\r
545                                                                 </block>\r
546                                                             </for>\r
547                                                             <set>\r
548                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-path-sequence-id'\r
549   value='`$ps-index + 2`' />\r
550                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-instance-id'\r
551   value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vnf-instance-id`' />\r
552                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-name'\r
553   value='`$prev-network-name`' />\r
554                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-role'\r
555   value='`$prev-network-role`' />\r
556                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vf-module-instance.vf-module-id'\r
557   value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vf-module-id`' />\r
558                                                             </set>\r
559                                                             <set>\r
560                                                                 <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
561   value='`$serv-insts[$serv-index].path-segments_length + 1`' />\r
562                                                             </set>\r
563                                                             <switch test='`$serv-insts[$serv-index].api`'>\r
564                                                                 <outcome value='GR'>\r
565                                                                     <set>\r
566                                                                         <parameter name='tmp.service-instance-id' value='`$serv-insts[$serv-index].service-instance-id`' />\r
567                                                                     </set>\r
568                                                                 </outcome>\r
569                                                                 <outcome value='VNF'>\r
570                                                                     <block>\r
571                                                                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
572                                                                             <parameter name="ctx-destination" value="tmp.service-instance-id" />\r
573                                                                         </execute>\r
574                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
575                                                                             <parameter name="source" value="`$prop.restapi.service`"/>\r
576                                                                             <parameter name="outputPath" value="tmp.service-url"/>\r
577                                                                             <parameter name="target" value="{service-instance-id}"/>\r
578                                                                             <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
579                                                                         </execute>\r
580                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
581                                                                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`" />\r
582                                                                             <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\r
583                                                                             <parameter name='restapiUser' value='`$prop.controller.user`' />\r
584                                                                             <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
585                                                                             <parameter name='format' value='json' />\r
586                                                                             <parameter name='httpMethod' value='PUT' />\r
587                                                                             <parameter name="responsePrefix" value="mdsal-sr" />\r
588                                                                             <outcome value='failure'>\r
589                                                                                 <set>\r
590                                                                                     <parameter name='error-message' value="Failure creating service instance in MD-SAL" />\r
591                                                                                 </set>\r
592                                                                             </outcome>\r
593                                                                         </execute>\r
594                                                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
595         resource="service-instance" \r
596         key="customer.global-customer-id = $output-global-customer-id\r
597           AND service-subscription.service-type = $output-service-type\r
598           AND service-instance.service-instance-id = $tmp.service-instance-id" >\r
599                                                                             <parameter name="service-instance-id" value="`$tmp.service-instance-id`" />\r
600                                                                             <parameter name="global-customer-id" value="`$output-global-customer-id`" />\r
601                                                                             <parameter name="service-type" value="`$output-service-type`" />\r
602                                                                             <parameter name="service-role" value="`$output-service-role`" />\r
603                                                                             <outcome value='failure'>\r
604                                                                                 <set>\r
605                                                                                     <parameter name='error-message' value="Failure creating service instance in AAI" />\r
606                                                                                 </set>\r
607                                                                             </outcome>\r
608                                                                             <outcome value='not-found'>\r
609                                                                                 <set>\r
610                                                                                     <parameter name='error-message' value="Failure creating service instance in AAI" />\r
611                                                                                 </set>\r
612                                                                             </outcome>\r
613                                                                         </save>\r
614                                                                         <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
615 key="INSERT INTO SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\r
616   (simple_service_instance_id, forwarding_path_service_instance_id)\r
617   VALUES ( $serv-insts[$serv-index].service-instance-id , $tmp.service-instance-id )" ></save>\r
618                                                                     </block>\r
619                                                                 </outcome>\r
620                                                             </switch>\r
621                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
622                                                                 <parameter name="source" value="`$prop.restapi.forwarding-path`"/>\r
623                                                                 <parameter name="outputPath" value="tmp.fp-url"/>\r
624                                                                 <parameter name="target" value="{service-instance-id}"/>\r
625                                                                 <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
626                                                             </execute>\r
627                                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
628                                                                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`" />\r
629                                                                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\r
630                                                                 <parameter name='restapiUser' value='`$prop.controller.user`' />\r
631                                                                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
632                                                                 <parameter name='format' value='json' />\r
633                                                                 <parameter name='httpMethod' value='PUT' />\r
634                                                                 <parameter name="responsePrefix" value="mdsal-fp" />\r
635                                                                 <outcome value='failure'>\r
636                                                                     <set>\r
637                                                                         <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
638                                                                     </set>\r
639                                                                 </outcome>\r
640                                                                 <outcome value='not-found'>\r
641                                                                     <set>\r
642                                                                         <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
643                                                                     </set>\r
644                                                                 </outcome>\r
645                                                             </execute>\r
646                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
647         resource="forwarding-path" \r
648         key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id" >\r
649                                                                 <parameter name="forwarding-path-id" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
650                                                                 <parameter name="forwarding-path-name" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-name`" />\r
651                                                                 <parameter name="selflink" value="`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\r
652   + $tmp.service-instance-id\r
653   + '/forwarding-paths/forwarding-path/'\r
654   + $forwarding-path.forwarding-path-id\r
655   + '/services-paths/service-path/'\r
656   + $forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
657                                                                 <outcome value='failure'>\r
658                                                                     <set>\r
659                                                                         <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
660                                                                     </set>\r
661                                                                 </outcome>\r
662                                                                 <outcome value='not-found'>\r
663                                                                     <set>\r
664                                                                         <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
665                                                                     </set>\r
666                                                                 </outcome>\r
667                                                             </save>\r
668                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
669    resource="forwarding-path:relationship-list"\r
670    key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id"\r
671    force="true" pfx="tmp.AnAI-data">\r
672                                                                 <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
673                                                                 <parameter name="relationship-list.relationship[0].related-link"\r
674       value="`'/aai/v$/business/customers/customer/'\r
675         + $output-global-customer-id\r
676         + '/service-subscriptions/service-subscription/'\r
677         + $output-service-type\r
678         + '/service-instances/service-instance/'\r
679         + $tmp.service-instance-id`" />\r
680                                                                 <outcome value='failure'>\r
681                                                                     <set>\r
682                                                                         <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
683                                                                     </set>\r
684                                                                 </outcome>\r
685                                                                 <outcome value='not-found'>\r
686                                                                     <set>\r
687                                                                         <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
688                                                                     </set>\r
689                                                                 </outcome>\r
690                                                             </save>\r
691                                                             <for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length`' >\r
692                                                                 <block>\r
693                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
694         resource="forwarder" \r
695         key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id" >\r
696                                                                         <parameter name="sequence" value="`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id`" />\r
697                                                                         <outcome value='failure'>\r
698                                                                             <set>\r
699                                                                                 <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
700                                                                             </set>\r
701                                                                         </outcome>\r
702                                                                         <outcome value='not-found'>\r
703                                                                             <set>\r
704                                                                                 <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
705                                                                             </set>\r
706                                                                         </outcome>\r
707                                                                     </save>\r
708                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
709    resource="forwarder:relationship-list"\r
710    key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\r
711      AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id"\r
712    force="true" pfx="tmp.AnAI-data">\r
713                                                                         <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
714                                                                         <parameter name="relationship-list.relationship[0].related-link"\r
715       value="`'/aai/v$/network/generic-vnfs/generic-vnf/'\r
716         + $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-instance-id`" />\r
717                                                                         <outcome value='failure'>\r
718                                                                             <set>\r
719                                                                                 <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
720                                                                             </set>\r
721                                                                         </outcome>\r
722                                                                         <outcome value='not-found'>\r
723                                                                             <set>\r
724                                                                                 <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
725                                                                             </set>\r
726                                                                         </outcome>\r
727                                                                     </save>\r
728                                                                 </block>\r
729                                                             </for>\r
730                                                         </block>\r
731                                                     </outcome>\r
732                                                 </switch>\r
733                                             </outcome>\r
734                                         </switch>\r
735                                     </for>\r
736                                 </block>\r
737                             </outcome>\r
738                         </save>\r
739                     </block>\r
740                 </outcome>\r
741             </get-resource>\r
742             <return status='success'>\r
743                 <parameter name="ack-final-indicator" value="Y" />\r
744                 <parameter name="error-code" value="200" />\r
745                 <parameter name="error-message" value="`$error-message`" />\r
746             </return>\r
747         </block>\r
748     </method>\r
749 </service-logic>