Fix underlay DG testing issue
[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 pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_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 pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_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.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
251                         <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
252                     </set>\r
253                 </outcome>\r
254                 <outcome value="not-found">\r
255                     <return status="failure">\r
256                         <parameter name="ack-final" value="Y" />\r
257                         <parameter name="error-code" value="500" />\r
258                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
259                     </return>\r
260                 </outcome>\r
261                 <outcome value="Other">\r
262                     <return status="failure">\r
263                         <parameter name="ack-final" value="Y" />\r
264                         <parameter name="error-code" value="500" />\r
265                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
266                     </return>\r
267                 </outcome>\r
268             </get-resource>\r
269             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
270                 <parameter name="ctx-destination" value="prop.l3vpn.vpn-policy1-id" />\r
271                 <outcome value="failure">\r
272                     <return status="failure">\r
273                         <parameter name="error-code" value="" />\r
274                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
275                     </return>\r
276                 </outcome>\r
277             </execute>\r
278             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
279                 <parameter name="ctx-destination" value="prop.l3vpn.vpn-policy2-id" />\r
280                 <outcome value="failure">\r
281                     <return status="failure">\r
282                         <parameter name="error-code" value="" />\r
283                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
284                     </return>\r
285                 </outcome>\r
286             </execute>\r
287             <set>\r
288                 <parameter name="prop.l3vpn.entry1-id" value="1" />\r
289                 <parameter name="prop.l3vpn.entry2-id" value="1" />\r
290             </set>\r
291             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
292                 <parameter name="ctx-destination" value="prop.l3vpn.vrf1-id" />\r
293                 <outcome value="failure">\r
294                     <return status="failure">\r
295                         <parameter name="error-code" value="" />\r
296                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
297                     </return>\r
298                 </outcome>\r
299             </execute>\r
300             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
301                 <parameter name="ctx-destination" value="prop.l3vpn.vrf2-id" />\r
302                 <outcome value="failure">\r
303                     <return status="failure">\r
304                         <parameter name="error-code" value="" />\r
305                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
306                     </return>\r
307                 </outcome>\r
308             </execute>\r
309             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
310                 <parameter name="ctx-destination" value="prop.l3vpn.network-id" />\r
311             </execute>\r
312             <switch test="`$service-data.networks.network_length`">\r
313                 <outcome value="">\r
314                     <set>\r
315                         <parameter name="nidx" value="0" />\r
316                     </set>\r
317                 </outcome>\r
318                 <outcome value="Other">\r
319                     <set>\r
320                         <parameter name="nidx" value="`$service-data.networks.network_length`" />\r
321                     </set>\r
322                 </outcome>\r
323             </switch>\r
324             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
325                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />\r
326                 <parameter name="field1" value="__TIMESTAMP__" />\r
327                 <parameter name="field2" value="network-topology-operation-create" />\r
328                 <parameter name="field3" value="L3VPN-Config" />\r
329                 <parameter name="field4" value="`l3vpn.name`" />\r
330                 <parameter name="field5" value="`$prop.l3vpn.name`" />\r
331                 <parameter name="field6" value="`l3vpn.topology`" />\r
332                 <parameter name="field7" value="`$prop.l3vpn.topology`" />\r
333                 <parameter name="field8" value="`l3vpn.site1_name`" />\r
334                 <parameter name="field9" value="`$prop.l3vpn.site1_name`" />\r
335                 <parameter name="field10" value="`l3vpn.vpn-policy1-id`" />\r
336                 <parameter name="field11" value="`$prop.l3vpn.vpn-policy1-id`" />\r
337                 <parameter name="field12" value="`l3vpn.entry1-id`" />\r
338                 <parameter name="field13" value="`$prop.l3vpn.entry1-id`" />\r
339                 <parameter name="field14" value="`l3vpn.sna1_name`" />\r
340                 <parameter name="field15" value="`$prop.l3vpn.sna1_name`" />\r
341                 <parameter name="field16" value="`l3vpn.pe1_id`" />\r
342                 <parameter name="field17" value="`$prop.l3vpn.pe1_id`" />\r
343                 <parameter name="field18" value="`l3vpn.ac1_id`" />\r
344                 <parameter name="field19" value="`$prop.l3vpn.ac1_id`" />\r
345                 <parameter name="field20" value="`l3vpn.sna1_svlan`" />\r
346                 <parameter name="field21" value="`$prop.l3vpn.sna1_svlan`" />\r
347                 <parameter name="field22" value="`l3vpn.ac1-peer-ip`" />\r
348                 <parameter name="field23" value="`$prop.l3vpn.ac1-peer-ip`" />\r
349                 <parameter name="field24" value="`l3vpn.ac1-ip`" />\r
350                 <parameter name="field25" value="`$prop.l3vpn.ac1-ip`" />\r
351                 <parameter name="field26" value="`l3vpn.ac1_protocol`" />\r
352                 <parameter name="field27" value="`$prop.l3vpn.ac1_protocol`" />\r
353                 <parameter name="field28" value="`l3vpn.sna1-route-ip-prefix`" />\r
354                 <parameter name="field29" value="`$prop.l3vpn.sna1-route-ip-prefix`" />\r
355                 <parameter name="field30" value="`l3vpn.sna1-route-next-hop`" />\r
356                 <parameter name="field31" value="`$prop.l3vpn.sna1-route-next-hop`" />\r
357                 <parameter name="field32" value="`l3vpn.peer1-ip`" />\r
358                 <parameter name="field33" value="`$prop.l3vpn.peer1-ip`" />\r
359                 <parameter name="field34" value="`l3vpn.ac1_protocol_bgp_as`" />\r
360                 <parameter name="field35" value="`$prop.l3vpn.ac1_protocol_bgp_as`" />\r
361                 <parameter name="field36" value="`l3vpn.vrf1-id`" />\r
362                 <parameter name="field37" value="`$prop.l3vpn.vrf1-id`" />\r
363                 <parameter name="field38" value="`l3vpn.site2_name`" />\r
364                 <parameter name="field39" value="`$prop.l3vpn.site2_name`" />\r
365                 <parameter name="field40" value="`l3vpn.vpn-policy2-id`" />\r
366                 <parameter name="field41" value="`$prop.l3vpn.vpn-policy2-id`" />\r
367                 <parameter name="field42" value="`l3vpn.entry2-id`" />\r
368                 <parameter name="field43" value="`$prop.l3vpn.entry2-id`" />\r
369                 <parameter name="field44" value="`l3vpn.sna2_name`" />\r
370                 <parameter name="field45" value="`$prop.l3vpn.sna2_name`" />\r
371                 <parameter name="field46" value="`l3vpn.pe2_id`" />\r
372                 <parameter name="field47" value="`$prop.l3vpn.pe2_id`" />\r
373                 <parameter name="field48" value="`l3vpn.ac2_id`" />\r
374                 <parameter name="field49" value="`$prop.l3vpn.ac2_id`" />\r
375                 <parameter name="field50" value="`l3vpn.sna2_svlan`" />\r
376                 <parameter name="field51" value="`$prop.l3vpn.sna2_svlan`" />\r
377                 <parameter name="field52" value="`l3vpn.ac2-peer-ip`" />\r
378                 <parameter name="field53" value="`$prop.l3vpn.ac2-peer-ip`" />\r
379                 <parameter name="field54" value="`l3vpn.ac2-ip`" />\r
380                 <parameter name="field55" value="`$prop.l3vpn.ac2-ip`" />\r
381                 <parameter name="field56" value="`l3vpn.ac2_protocol`" />\r
382                 <parameter name="field57" value="`$prop.l3vpn.ac2_protocol`" />\r
383                 <parameter name="field58" value="`l3vpn.sna2-route-ip-prefix`" />\r
384                 <parameter name="field59" value="`$prop.l3vpn.sna2-route-ip-prefix`" />\r
385                 <parameter name="field60" value="`l3vpn.sna2-route-next-hop`" />\r
386                 <parameter name="field61" value="`$prop.l3vpn.sna2-route-next-hop`" />\r
387                 <parameter name="field62" value="`l3vpn.peer2-ip`" />\r
388                 <parameter name="field63" value="`$prop.l3vpn.peer2-ip`" />\r
389                 <parameter name="field64" value="`l3vpn.ac2_protocol_bgp_as`" />\r
390                 <parameter name="field65" value="`$prop.l3vpn.ac2_protocol_bgp_as`" />\r
391                 <parameter name="field66" value="`l3vpn.vrf2-id`" />\r
392                 <parameter name="field67" value="`$prop.l3vpn.vrf2-id`" />\r
393                 <parameter name="field68" value="`l3vpn.af_type`" />\r
394                 <parameter name="field69" value="`$prop.l3vpn.af_type`" />\r
395             </record>\r
396             <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties">\r
397                 <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties" />\r
398                 <parameter name="contextPrefix" value="prop" />\r
399             </execute>\r
400             <switch test="`$prop.l3vpn.service-type`">\r
401                 <outcome value="l3vpn-ipwan">\r
402                     <block atomic="true">\r
403                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
404                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
405                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
406                             <parameter name="format" value="json" />\r
407                             <parameter name="httpMethod" value="post" />\r
408                             <parameter name="responsePrefix" value="token-result" />\r
409                             <outcome value="success">\r
410                                 <set>\r
411                                     <parameter name="prop.sdncRestApi.token_id" value="$token-result.token_id" />\r
412                                 </set>\r
413                             </outcome>\r
414                             <outcome value="failure">\r
415                                 <return status="failure">\r
416                                     <parameter name="ack-final" value="Y" />\r
417                                     <parameter name="error-code" value="500" />\r
418                                     <parameter name="error-message" value="Error executing get token rest api" />\r
419                                 </return>\r
420                             </outcome>\r
421                         </execute>\r
422                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
423                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/l3smvpntemplate.json'`" />\r
424                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services'`" />\r
425                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
426                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
427                             <parameter name="format" value="json" />\r
428                             <parameter name="httpMethod" value="post" />\r
429                             <parameter name="responsePrefix" value="vpn-result" />\r
430                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
431                             <outcome value="success" />\r
432                             <outcome value="failure">\r
433                                 <return status="failure">\r
434                                     <parameter name="ack-final" value="Y" />\r
435                                     <parameter name="error-code" value="500" />\r
436                                     <parameter name="error-message" value="Error executing 3rd party controller rest api" />\r
437                                 </return>\r
438                             </outcome>\r
439                         </execute>\r
440                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
441                             <parameter name="templateFileName" value="`$prop.restapi.templateDir +'/l3smvrftemplate.json'`" />\r
442                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vrf-attributes'`" />\r
443                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
444                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
445                             <parameter name="format" value="json" />\r
446                             <parameter name="httpMethod" value="post" />\r
447                             <parameter name="responsePrefix" value="vrf-result" />\r
448                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
449                             <outcome value="success" />\r
450                             <outcome value="failure">\r
451                                 <return status="failure">\r
452                                     <parameter name="ack-final" value="Y" />\r
453                                     <parameter name="error-code" value="500" />\r
454                                     <parameter name="error-message" value="Error executing 3rd party controller rest api" />\r
455                                 </return>\r
456                             </outcome>\r
457                         </execute>\r
458                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
459                             <parameter name="templateFileName" value="`$prop.restapi.templateDir +'/l3smsitetemplate.json'`" />\r
460                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites'`" />\r
461                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
462                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
463                             <parameter name="format" value="json" />\r
464                             <parameter name="httpMethod" value="post" />\r
465                             <parameter name="responsePrefix" value="site-result" />\r
466                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
467                             <outcome value="success" />\r
468                             <outcome value="failure">\r
469                                 <return status="failure">\r
470                                     <parameter name="ack-final" value="Y" />\r
471                                     <parameter name="error-code" value="500" />\r
472                                     <parameter name="error-message" value="Error executing 3rd party controller rest api" />\r
473                                 </return>\r
474                             </outcome>\r
475                         </execute>\r
476                     </block>\r
477                 </outcome>\r
478                 <outcome value="l3vpn-sptn">\r
479                     <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
480                         <parameter name="templateFileName" value="$prop.sdncRestApi.templateDir +'/l3smsitetemplate.json'" />\r
481                         <parameter name="restapiUrl" value="$prop.sdncRestApi.thirdpartySdnc.url" />\r
482                         <parameter name="restapiUser" value="$prop.sdncRestApi.thirdpartySdnc.user" />\r
483                         <parameter name="restapiPassword" value="$prop.sdncRestApi.thirdpartySdnc.password" />\r
484                         <parameter name="format" value="json" />\r
485                         <parameter name="httpMethod" value="post" />\r
486                         <parameter name="responsePrefix" value="restapi-result" />\r
487                     </execute>\r
488                 </outcome>\r
489                 <outcome value="Other">\r
490                     <return status="failure">\r
491                         <parameter name="ack-final" value="Y" />\r
492                         <parameter name="error-code" value="500" />\r
493                         <parameter name="error-message" value="Unexpected error retrieving vpn binding" />\r
494                     </return>\r
495                 </outcome>\r
496             </switch>\r
497             <set>\r
498                 <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.l3vpn.network-id`" />\r
499                 <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />\r
500                 <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />\r
501                 <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />\r
502                 <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />\r
503                 <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />\r
504                 <parameter name="service-data.networks.network_length" value="`$nidx+1`" />\r
505             </set>\r
506             <set>\r
507                 <parameter name="networkId" value="`$prop.l3vpn.network-id`" />\r
508                 <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
509             </set>\r
510             <set>\r
511                 <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />\r
512                 <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
513                 <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
514             </set>\r
515             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $prop.l3vpn.network-id">\r
516                 <parameter name="configuration-id" value="`$prop.l3vpn.network-id`" />\r
517                 <parameter name="configuration-type" value="underlay" />\r
518                 <parameter name="configuration-sub-type" value="l3vpn" />\r
519                 <parameter name="orchestration-status" value="Created" />\r
520                 <parameter name="operational-status" value="Created" />\r
521                 <parameter name="model-customization-id" value="`$prop.l3vpn.network-id`" />\r
522                 <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
523             </save>\r
524             <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-instance-id           AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id           AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type" force="true" pfx="tmp.AnAI-data">\r
525                 <parameter name="relationship-list.relationship[0].related-to" value="configuration" />\r
526                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/configurations/configuration/' + $prop.l3vpn.network-id`" />\r
527                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="configuration.configuration-id" />\r
528                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.l3vpn.network-id`" />\r
529                 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="configuration.configuration-type" />\r
530                 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="underlay" />\r
531             </save>\r
532             <return status="success">\r
533                 <parameter name="ack-final-indicator" value="Y" />\r
534                 <parameter name="error-code" value="200" />\r
535                 <parameter name="error-message" value="`$error-message`" />\r
536             </return>\r
537         </block>\r
538     </method>\r
539 </service-logic>\r