Merge "Update overlay DGs for VoLTE use case"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation-create.xml
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <service-logic xmlns="http://www.onap.org/sdnc/svclogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="GENERIC-RESOURCE-API" version="${project.version}">\r
3     <method rpc="network-topology-operation-create" mode="sync">\r
4         <block atomic="true">\r
5             <call module="GENERIC-RESOURCE-API" rpc="validate-network-input-parameters" mode="sync" />\r
6             <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
7                 <block>\r
8                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">\r
9                         <outcome value="true">\r
10                             <set>\r
11                                 <parameter name="prop.l3vpn.name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
12                             </set>\r
13                         </outcome>\r
14                     </switch>\r
15                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'service-type'`">\r
16                         <outcome value="true">\r
17                             <set>\r
18                                 <parameter name="prop.l3vpn.service-type" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
19                             </set>\r
20                         </outcome>\r
21                     </switch>\r
22                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'topology'`">\r
23                         <outcome value="true">\r
24                             <set>\r
25                                 <parameter name="prop.l3vpn.topology" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
26                             </set>\r
27                         </outcome>\r
28                     </switch>\r
29                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'technology'`">\r
30                         <outcome value="true">\r
31                             <set>\r
32                                 <parameter name="prop.l3vpn.technology" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
33                             </set>\r
34                         </outcome>\r
35                     </switch>\r
36                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_name'`">\r
37                         <outcome value="true">\r
38                             <set>\r
39                                 <parameter name="prop.l3vpn.site1_name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
40                             </set>\r
41                         </outcome>\r
42                     </switch>\r
43                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_name'`">\r
44                         <outcome value="true">\r
45                             <set>\r
46                                 <parameter name="prop.l3vpn.site2_name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
47                             </set>\r
48                         </outcome>\r
49                     </switch>\r
50                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna1_name'`">\r
51                         <outcome value="true">\r
52                             <set>\r
53                                 <parameter name="prop.l3vpn.sna1_name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
54                             </set>\r
55                         </outcome>\r
56                     </switch>\r
57                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna2_name'`">\r
58                         <outcome value="true">\r
59                             <set>\r
60                                 <parameter name="prop.l3vpn.sna2_name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
61                             </set>\r
62                         </outcome>\r
63                     </switch>\r
64                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe1_id'`">\r
65                         <outcome value="true">\r
66                             <set>\r
67                                 <parameter name="prop.l3vpn.pe1_id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
68                             </set>\r
69                         </outcome>\r
70                     </switch>\r
71                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe2_id'`">\r
72                         <outcome value="true">\r
73                             <set>\r
74                                 <parameter name="prop.l3vpn.pe2_id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
75                             </set>\r
76                         </outcome>\r
77                     </switch>\r
78                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_id'`">\r
79                         <outcome value="true">\r
80                             <set>\r
81                                 <parameter name="prop.l3vpn.ac1_id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
82                             </set>\r
83                         </outcome>\r
84                     </switch>\r
85                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_id'`">\r
86                         <outcome value="true">\r
87                             <set>\r
88                                 <parameter name="prop.l3vpn.ac2_id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
89                             </set>\r
90                         </outcome>\r
91                     </switch>\r
92                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_ip'`">\r
93                         <outcome value="true">\r
94                             <set>\r
95                                 <parameter name="prop.l3vpn.ac1_ip" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
96                             </set>\r
97                         </outcome>\r
98                     </switch>\r
99                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_ip'`">\r
100                         <outcome value="true">\r
101                             <set>\r
102                                 <parameter name="prop.l3vpn.ac2_ip" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
103                             </set>\r
104                         </outcome>\r
105                     </switch>\r
106                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_peer_ip'`">\r
107                         <outcome value="true">\r
108                             <set>\r
109                                 <parameter name="prop.l3vpn.ac1_peer_ip" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
110                             </set>\r
111                         </outcome>\r
112                     </switch>\r
113                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_peer_ip'`">\r
114                         <outcome value="true">\r
115                             <set>\r
116                                 <parameter name="prop.l3vpn.ac2_peer_ip" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
117                             </set>\r
118                         </outcome>\r
119                     </switch>\r
120                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_svlan'`">\r
121                         <outcome value="true">\r
122                             <set>\r
123                                 <parameter name="prop.l3vpn.ac1_svlan" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
124                             </set>\r
125                         </outcome>\r
126                     </switch>\r
127                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_svlan'`">\r
128                         <outcome value="true">\r
129                             <set>\r
130                                 <parameter name="prop.l3vpn.ac2_svlan" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
131                             </set>\r
132                         </outcome>\r
133                     </switch>\r
134                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol'`">\r
135                         <outcome value="true">\r
136                             <set>\r
137                                 <parameter name="prop.l3vpn.ac1_protocol" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
138                             </set>\r
139                         </outcome>\r
140                     </switch>\r
141                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol'`">\r
142                         <outcome value="true">\r
143                             <set>\r
144                                 <parameter name="prop.l3vpn.ac2_protocol" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
145                             </set>\r
146                         </outcome>\r
147                     </switch>\r
148                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_route'`">\r
149                         <outcome value="true">\r
150                             <block atomic="true">\r
151                                 <set>\r
152                                     <parameter name="prop.l3vpn.ac1_route" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
153                                 </set>\r
154                                 <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">\r
155                                     <parameter name="original_string" value="`$prop.l3vpn.ac1-route`" />\r
156                                     <parameter name="regex" value=" ## " />\r
157                                     <parameter name="ctx_memory_result_key" value="route1" />\r
158                                     <outcome value="success">\r
159                                         <set>\r
160                                             <parameter name="prop.l3vpn.sna1-route.ip-prefix" value="`$route1[0]`" />\r
161                                             <parameter name="prop.l3vpn.sna1-route.next-hop" value="`$route1[1]`" />\r
162                                         </set>\r
163                                     </outcome>\r
164                                     <outcome value="failure">\r
165                                         <return status="failure">\r
166                                             <parameter name="error-code" value="" />\r
167                                             <parameter name="error-message" value="An error occured while splitting sna1_route" />\r
168                                         </return>\r
169                                     </outcome>\r
170                                 </execute>\r
171                             </block>\r
172                         </outcome>\r
173                     </switch>\r
174                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_route'`">\r
175                         <outcome value="true">\r
176                             <block atomic="true">\r
177                                 <set>\r
178                                     <parameter name="prop.l3vpn.ac2_route" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
179                                 </set>\r
180                                 <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">\r
181                                     <parameter name="original_string" value="`$prop.l3vpn.ac2-route`" />\r
182                                     <parameter name="regex" value=" ## " />\r
183                                     <parameter name="ctx_memory_result_key" value="route2" />\r
184                                     <outcome value="success">\r
185                                         <set>\r
186                                             <parameter name="prop.l3vpn.sna2-route.ip-prefix" value="`$route2[0]`" />\r
187                                             <parameter name="prop.l3vpn.sna2-route.next-hop" value="`$route2[1]`" />\r
188                                         </set>\r
189                                     </outcome>\r
190                                     <outcome value="failure">\r
191                                         <return status="failure">\r
192                                             <parameter name="error-code" value="" />\r
193                                             <parameter name="error-message" value="An error occured while splitting sna1_route" />\r
194                                         </return>\r
195                                     </outcome>\r
196                                 </execute>\r
197                             </block>\r
198                         </outcome>\r
199                     </switch>\r
200                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol_bgp_as'`">\r
201                         <outcome value="true">\r
202                             <set>\r
203                                 <parameter name="prop.l3vpn.ac1_protocol_bgp_as" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
204                                 <parameter name="prop.l3vpn.peer1-ip" value="`$prop.l3vpn.ac1_ip`" />\r
205                             </set>\r
206                         </outcome>\r
207                     </switch>\r
208                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol_bgp_as'`">\r
209                         <outcome value="true">\r
210                             <set>\r
211                                 <parameter name="prop.l3vpn.ac2_protocol_bgp_as" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
212                                 <parameter name="prop.l3vpn.peer2-ip" value="`$prop.l3vpn.ac2_ip`" />\r
213                             </set>\r
214                         </outcome>\r
215                     </switch>\r
216                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'af_type'`">\r
217                         <outcome value="true">\r
218                             <set>\r
219                                 <parameter name="prop.l3vpn.af_type" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
220                             </set>\r
221                         </outcome>\r
222                     </switch>\r
223                 </block>\r
224             </for>\r
225             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf" key="pnf.pnf-name = $prop.l3vpn.pe1_id AND         depth = '0'" pfx="tmp.aai.pnf" local-only="false">\r
226                 <outcome value="success">\r
227                     <set>\r
228                         <parameter name="tmp.thirdparty-sdnc-id" value="`$tmp.aai.pnf.relationship-list.relationship[0].relationship-data[0].relationship-value`" />\r
229                     </set>\r
230                 </outcome>\r
231                 <outcome value="not-found">\r
232                     <return status="failure">\r
233                         <parameter name="ack-final" value="Y" />\r
234                         <parameter name="error-code" value="500" />\r
235                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
236                     </return>\r
237                 </outcome>\r
238                 <outcome value="Other">\r
239                     <return status="failure">\r
240                         <parameter name="ack-final" value="Y" />\r
241                         <parameter name="error-code" value="500" />\r
242                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
243                     </return>\r
244                 </outcome>\r
245             </get-resource>\r
246             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $tmp.thirdparty-sdnc-id AND         depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false">\r
247                 <outcome value="success">\r
248                     <set>\r
249                         <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
250                         <parameter name="prop.sdncRestApi.templateDir" value="/opt/onap/sdnc/data" />\r
251                         <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
252                         <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
253                     </set>\r
254                 </outcome>\r
255                 <outcome value="not-found">\r
256                     <return status="failure">\r
257                         <parameter name="ack-final" value="Y" />\r
258                         <parameter name="error-code" value="500" />\r
259                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
260                     </return>\r
261                 </outcome>\r
262                 <outcome value="Other">\r
263                     <return status="failure">\r
264                         <parameter name="ack-final" value="Y" />\r
265                         <parameter name="error-code" value="500" />\r
266                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
267                     </return>\r
268                 </outcome>\r
269             </get-resource>\r
270             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
271                 <parameter name="ctx-destination" value="prop.l3vpn.vpn-policy1-id" />\r
272                 <outcome value="failure">\r
273                     <return status="failure">\r
274                         <parameter name="error-code" value="" />\r
275                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
276                     </return>\r
277                 </outcome>\r
278             </execute>\r
279             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
280                 <parameter name="ctx-destination" value="prop.l3vpn.vpn-policy2-id" />\r
281                 <outcome value="failure">\r
282                     <return status="failure">\r
283                         <parameter name="error-code" value="" />\r
284                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
285                     </return>\r
286                 </outcome>\r
287             </execute>\r
288             <set>\r
289                 <parameter name="prop.l3vpn.entry1-id" value="1" />\r
290                 <parameter name="prop.l3vpn.entry2-id" value="1" />\r
291             </set>\r
292             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
293                 <parameter name="ctx-destination" value="prop.l3vpn.vrf1-id" />\r
294                 <outcome value="failure">\r
295                     <return status="failure">\r
296                         <parameter name="error-code" value="" />\r
297                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
298                     </return>\r
299                 </outcome>\r
300             </execute>\r
301             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
302                 <parameter name="ctx-destination" value="prop.l3vpn.vrf2-id" />\r
303                 <outcome value="failure">\r
304                     <return status="failure">\r
305                         <parameter name="error-code" value="" />\r
306                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
307                     </return>\r
308                 </outcome>\r
309             </execute>\r
310             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
311                 <parameter name="ctx-destination" value="prop.l3vpn.network-id" />\r
312             </execute>\r
313             <switch test="`$service-data.networks.network_length`">\r
314                 <outcome value="">\r
315                     <set>\r
316                         <parameter name="nidx" value="0" />\r
317                     </set>\r
318                 </outcome>\r
319                 <outcome value="Other">\r
320                     <set>\r
321                         <parameter name="nidx" value="`$service-data.networks.network_length`" />\r
322                     </set>\r
323                 </outcome>\r
324             </switch>\r
325             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
326                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />\r
327                 <parameter name="Time" value="__TIMESTAMP__" />\r
328                 <parameter name="Method" value="network-topology-operation-create" />\r
329                 <parameter name="SubMethod" value="L3VPN-Config" />\r
330                 <parameter name="l3vpn_name" value="`$prop.l3vpn.name`" />\r
331                 <parameter name="topology" value="`$prop.l3vpn.topology`" />\r
332                 <parameter name="site1_name" value="`$prop.l3vpn.site1_name`" />\r
333                 <parameter name="vpn-policy1-id" value="`$prop.l3vpn.vpn-policy1-id`" />\r
334                 <parameter name="l3vpn.entry1-id" value="`$prop.l3vpn.entry1-id`" />\r
335                 <parameter name="sna1_name" value="`$prop.l3vpn.sna1_name`" />\r
336                 <parameter name="pe1_id" value="`$prop.l3vpn.pe1_id`" />\r
337                 <parameter name="ac1_id" value="`$prop.l3vpn.ac1_id`" />\r
338                 <parameter name="sna1_svlan" value="`$prop.l3vpn.sna1_svlan`" />\r
339                 <parameter name="ac1-peer-ip" value="`$prop.l3vpn.ac1-peer-ip`" />\r
340                 <parameter name="ac1-ip" value="`$prop.l3vpn.ac1-ip`" />\r
341                 <parameter name="ac1_protocol" value="`$prop.l3vpn.ac1_protocol`" />\r
342                 <parameter name="sna1-route-ip-prefix" value="`$prop.l3vpn.sna1-route-ip-prefix`" />\r
343                 <parameter name="sna1-route-next-hop" value="`$prop.l3vpn.sna1-route-next-hop`" />\r
344                 <parameter name="peer1-ip" value="`$prop.l3vpn.peer1-ip`" />\r
345                 <parameter name="ac1_protocol_bgp_as" value="`$prop.l3vpn.ac1_protocol_bgp_as`" />\r
346                 <parameter name="vrf1-id" value="`$prop.l3vpn.vrf1-id`" />\r
347                 <parameter name="site2_name" value="`$prop.l3vpn.site2_name`" />\r
348                 <parameter name="vpn-policy2-id" value="`$prop.l3vpn.vpn-policy2-id`" />\r
349                 <parameter name="l3vpn.entry2-id" value="`$prop.l3vpn.entry2-id`" />\r
350                 <parameter name="sna2_name" value="`$prop.l3vpn.sna2_name`" />\r
351                 <parameter name="pe2_id" value="`$prop.l3vpn.pe2_id`" />\r
352                 <parameter name="ac2_id" value="`$prop.l3vpn.ac2_id`" />\r
353                 <parameter name="sna2_svlan" value="`$prop.l3vpn.sna2_svlan`" />\r
354                 <parameter name="ac2-peer-ip" value="`$prop.l3vpn.ac2-peer-ip`" />\r
355                 <parameter name="ac2-ip" value="`$prop.l3vpn.ac2-ip`" />\r
356                 <parameter name="ac2_protocol" value="`$prop.l3vpn.ac2_protocol`" />\r
357                 <parameter name="sna2-route-ip-prefix" value="`$prop.l3vpn.sna2-route-ip-prefix`" />\r
358                 <parameter name="sna2-route-next-hop" value="`$prop.l3vpn.sna2-route-next-hop`" />\r
359                 <parameter name="peer2-ip" value="`$prop.l3vpn.peer2-ip`" />\r
360                 <parameter name="ac2_protocol_bgp_as" value="`$prop.l3vpn.ac2_protocol_bgp_as`" />\r
361                 <parameter name="vrf2-id" value="`$prop.l3vpn.vrf2-id`" />\r
362                 <parameter name="af_type" value="`$prop.l3vpn.af_type`" />\r
363             </record>\r
364             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'service-type'`">\r
365                 <outcome value="l3vpn-ipwan">\r
366                     <block atomic="true">\r
367                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
368                             <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir + '/l3smvpntemplate.json'`" />\r
369                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services'`" />\r
370                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
371                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
372                             <parameter name="format" value="json" />\r
373                             <parameter name="httpMethod" value="post" />\r
374                             <parameter name="responsePrefix" value="restapi-result" />\r
375                         </execute>\r
376                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
377                             <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir +'/l3smsitetemplate.json'`" />\r
378                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites'`" />\r
379                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
380                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
381                             <parameter name="format" value="json" />\r
382                             <parameter name="httpMethod" value="post" />\r
383                             <parameter name="responsePrefix" value="restapi-result" />\r
384                         </execute>\r
385                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
386                             <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir +'/l3smvrftemplate.json'`" />\r
387                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vrf-attributes'`" />\r
388                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
389                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
390                             <parameter name="format" value="json" />\r
391                             <parameter name="httpMethod" value="post" />\r
392                             <parameter name="responsePrefix" value="restapi-result" />\r
393                         </execute>\r
394                     </block>\r
395                 </outcome>\r
396                 <outcome value="true">\r
397                     <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
398                         <parameter name="templateFileName" value="$prop.sdncRestApi.tempDir +'/l3smsitetemplate.json'" />\r
399                         <parameter name="restapiUrl" value="$prop.sdncRestApi.thirdpartySdnc.url" />\r
400                         <parameter name="restapiUser" value="$prop.sdncRestApi.thirdpartySdnc.user" />\r
401                         <parameter name="restapiPassword" value="$prop.sdncRestApi.thirdpartySdnc.password" />\r
402                         <parameter name="format" value="json" />\r
403                         <parameter name="httpMethod" value="post" />\r
404                         <parameter name="responsePrefix" value="restapi-result" />\r
405                     </execute>\r
406                 </outcome>\r
407                 <outcome value="Other">\r
408                     <return status="failure">\r
409                         <parameter name="ack-final" value="Y" />\r
410                         <parameter name="error-code" value="500" />\r
411                         <parameter name="error-message" value="Unexpected error retrieving vpn binding" />\r
412                     </return>\r
413                 </outcome>\r
414             </switch>\r
415             <set>\r
416                 <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.l3vpn.network-id`" />\r
417                 <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />\r
418                 <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />\r
419                 <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />\r
420                 <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />\r
421                 <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />\r
422                 <parameter name="service-data.networks.network_length" value="`$nidx+1`" />\r
423             </set>\r
424             <set>\r
425                 <parameter name="networkId" value="`$prop.l3vpn.network-id`" />\r
426                 <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.l3vpn.network-id  + '/network-data/'` " />\r
427             </set>\r
428             <set>\r
429                 <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />\r
430                 <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action" value="`$network-topology-operation-input.sdnc-request-header.svc-action`" />\r
431                 <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action" value="`$network-topology-operation-input.request-information.request-action`" />\r
432             </set>\r
433             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $prop.l3vpn.network-id">\r
434                 <parameter name="configuration-id" value="`$prop.l3vpn.network-id`" />\r
435                 <parameter name="configuration-type" value="underlay" />\r
436                 <parameter name="orchestration-status" value="Created" />\r
437                 <parameter name="configuration-selflink" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.l3vpn.network-id  + '/network-data/'` " />\r
438             </save>\r
439             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="service-instance:relationship-list" key="service-instance.service-instance-id = $service-data.service-information.service-id">\r
440                 <parameter name="relationship-list.relationship[0].related-to" value="configuration" />\r
441                 <parameter name="relationship-list.relationship[0].related-link" value="/network/configurations/configuration" />\r
442                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="configuration.configuration-id" />\r
443                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.l3vpn.network-id`" />\r
444                 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="configuration.configuration-type" />\r
445                 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="underlay" />\r
446             </save>\r
447             <return status="success">\r
448                 <parameter name="ack-final-indicator" value="Y" />\r
449                 <parameter name="error-code" value="200" />\r
450                 <parameter name="error-message" value="`$error-message`" />\r
451             </return>\r
452         </block>\r
453     </method>\r
454 </service-logic>\r