Update underlay DG for integration issues
[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 == 'serviceType'`">\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.entry1-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             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
288                 <parameter name="ctx-destination" value="prop.l3vpn.vrf1-id" />\r
289                 <outcome value="failure">\r
290                     <return status="failure">\r
291                         <parameter name="error-code" value="" />\r
292                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
293                     </return>\r
294                 </outcome>\r
295             </execute>\r
296             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
297                 <parameter name="ctx-destination" value="prop.l3vpn.vrf2-id" />\r
298                 <outcome value="failure">\r
299                     <return status="failure">\r
300                         <parameter name="error-code" value="" />\r
301                         <parameter name="error-message" value="An error occured while generation vpn policy ID" />\r
302                     </return>\r
303                 </outcome>\r
304             </execute>\r
305             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
306                 <parameter name="ctx-destination" value="prop.l3vpn.network-id" />\r
307             </execute>\r
308             <switch test="`$service-data.networks.network_length`">\r
309                 <outcome value="">\r
310                     <set>\r
311                         <parameter name="nidx" value="0" />\r
312                     </set>\r
313                 </outcome>\r
314                 <outcome value="Other">\r
315                     <set>\r
316                         <parameter name="nidx" value="`$service-data.networks.network_length`" />\r
317                     </set>\r
318                 </outcome>\r
319             </switch>\r
320             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
321                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />\r
322                 <parameter name="field1" value="__TIMESTAMP__" />\r
323                 <parameter name="field2" value="network-topology-operation-create" />\r
324                 <parameter name="field3" value="L3VPN-Config" />\r
325                 <parameter name="field4" value="`l3vpn.name`" />\r
326                 <parameter name="field5" value="`$prop.l3vpn.name`" />\r
327                 <parameter name="field6" value="`l3vpn.topology`" />\r
328                 <parameter name="field7" value="`$prop.l3vpn.topology`" />\r
329                 <parameter name="field8" value="`l3vpn.site1_name`" />\r
330                 <parameter name="field9" value="`$prop.l3vpn.site1_name`" />\r
331                 <parameter name="field10" value="`l3vpn.vpn-policy1-id`" />\r
332                 <parameter name="field11" value="`$prop.l3vpn.vpn-policy1-id`" />\r
333                 <parameter name="field12" value="`l3vpn.entry1-id`" />\r
334                 <parameter name="field13" value="`$prop.l3vpn.entry1-id`" />\r
335                 <parameter name="field14" value="`l3vpn.sna1_name`" />\r
336                 <parameter name="field15" value="`$prop.l3vpn.sna1_name`" />\r
337                 <parameter name="field16" value="`l3vpn.pe1_id`" />\r
338                 <parameter name="field17" value="`$prop.l3vpn.pe1_id`" />\r
339                 <parameter name="field18" value="`l3vpn.ac1_id`" />\r
340                 <parameter name="field19" value="`$prop.l3vpn.ac1_id`" />\r
341                 <parameter name="field20" value="`l3vpn.ac1_svlan`" />\r
342                 <parameter name="field21" value="`$prop.l3vpn.ac1_svlan`" />\r
343                 <parameter name="field22" value="`l3vpn.ac1_peer_ip`" />\r
344                 <parameter name="field23" value="`$prop.l3vpn.ac1_peer_ip`" />\r
345                 <parameter name="field24" value="`l3vpn.ac1_ip`" />\r
346                 <parameter name="field25" value="`$prop.l3vpn.ac1_ip`" />\r
347                 <parameter name="field26" value="`l3vpn.ac1_protocol`" />\r
348                 <parameter name="field27" value="`$prop.l3vpn.ac1_protocol`" />\r
349                 <parameter name="field28" value="`l3vpn.sna1-route-ip-prefix`" />\r
350                 <parameter name="field29" value="`$prop.l3vpn.sna1-route-ip-prefix`" />\r
351                 <parameter name="field30" value="`l3vpn.sna1-route-next-hop`" />\r
352                 <parameter name="field31" value="`$prop.l3vpn.sna1-route-next-hop`" />\r
353                 <parameter name="field32" value="`l3vpn.peer1_ip`" />\r
354                 <parameter name="field33" value="`$prop.l3vpn.peer1_ip`" />\r
355                 <parameter name="field34" value="`l3vpn.ac1_protocol_bgp_as`" />\r
356                 <parameter name="field35" value="`$prop.l3vpn.ac1_protocol_bgp_as`" />\r
357                 <parameter name="field36" value="`l3vpn.vrf1-id`" />\r
358                 <parameter name="field37" value="`$prop.l3vpn.vrf1-id`" />\r
359                 <parameter name="field38" value="`l3vpn.site2_name`" />\r
360                 <parameter name="field39" value="`$prop.l3vpn.site2_name`" />\r
361                 <parameter name="field40" value="`l3vpn.vpn-policy2-id`" />\r
362                 <parameter name="field41" value="`$prop.l3vpn.vpn-policy2-id`" />\r
363                 <parameter name="field42" value="`l3vpn.entry2-id`" />\r
364                 <parameter name="field43" value="`$prop.l3vpn.entry2-id`" />\r
365                 <parameter name="field44" value="`l3vpn.sna2_name`" />\r
366                 <parameter name="field45" value="`$prop.l3vpn.sna2_name`" />\r
367                 <parameter name="field46" value="`l3vpn.pe2_id`" />\r
368                 <parameter name="field47" value="`$prop.l3vpn.pe2_id`" />\r
369                 <parameter name="field48" value="`l3vpn.ac2_id`" />\r
370                 <parameter name="field49" value="`$prop.l3vpn.ac2_id`" />\r
371                 <parameter name="field50" value="`l3vpn.ac2_svlan`" />\r
372                 <parameter name="field51" value="`$prop.l3vpn.ac2_svlan`" />\r
373                 <parameter name="field52" value="`l3vpn.ac2_peer_ip`" />\r
374                 <parameter name="field53" value="`$prop.l3vpn.ac2_peer_ip`" />\r
375                 <parameter name="field54" value="`l3vpn.ac2_ip`" />\r
376                 <parameter name="field55" value="`$prop.l3vpn.ac2_ip`" />\r
377                 <parameter name="field56" value="`l3vpn.ac2_protocol`" />\r
378                 <parameter name="field57" value="`$prop.l3vpn.ac2_protocol`" />\r
379                 <parameter name="field58" value="`l3vpn.sna2-route-ip-prefix`" />\r
380                 <parameter name="field59" value="`$prop.l3vpn.sna2-route-ip-prefix`" />\r
381                 <parameter name="field60" value="`l3vpn.sna2-route-next-hop`" />\r
382                 <parameter name="field61" value="`$prop.l3vpn.sna2-route-next-hop`" />\r
383                 <parameter name="field62" value="`l3vpn.peer2_ip`" />\r
384                 <parameter name="field63" value="`$prop.l3vpn.peer2_ip`" />\r
385                 <parameter name="field64" value="`l3vpn.ac2_protocol_bgp_as`" />\r
386                 <parameter name="field65" value="`$prop.l3vpn.ac2_protocol_bgp_as`" />\r
387                 <parameter name="field66" value="`l3vpn.vrf2-id`" />\r
388                 <parameter name="field67" value="`$prop.l3vpn.vrf2-id`" />\r
389                 <parameter name="field68" value="`l3vpn.af_type`" />\r
390                 <parameter name="field69" value="`$prop.l3vpn.af_type`" />\r
391             </record>\r
392             <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties">\r
393                 <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties" />\r
394                 <parameter name="contextPrefix" value="prop" />\r
395             </execute>\r
396             <switch test="`$prop.l3vpn.service-type`">\r
397                 <outcome value="l3vpn-ipwan">\r
398                     <block atomic="true">\r
399                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
400                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
401                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
402                             <parameter name="format" value="json" />\r
403                             <parameter name="httpMethod" value="post" />\r
404                             <parameter name="responsePrefix" value="token-result" />\r
405                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks" />\r
406                             <parameter name="trustStorePassword" value="adminadmin" />\r
407                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12" />\r
408                             <parameter name="keyStorePassword" value="adminadmin" />\r
409                             <outcome value="success">\r
410                                 <set>\r
411                                     <parameter name="prop.sdncRestApi.token_id" value="`$token-result.data.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="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks" />\r
431                             <parameter name="trustStorePassword" value="adminadmin" />\r
432                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12" />\r
433                             <parameter name="keyStorePassword" value="adminadmin" />\r
434                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
435                             <outcome value="failure">\r
436                                 <return status="failure">\r
437                                     <parameter name="ack-final" value="Y" />\r
438                                     <parameter name="error-code" value="500" />\r
439                                     <parameter name="error-message" value="Error executing Create vpn rest api" />\r
440                                 </return>\r
441                             </outcome>\r
442                             <outcome value="success">\r
443                                 <block atomic="true" />\r
444                             </outcome>\r
445                         </execute>\r
446                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
447                             <parameter name="templateFileName" value="`$prop.restapi.templateDir +'/l3smvrftemplate.json'`" />\r
448                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/huawei-ac-net-l3vpn-svc-vfi:vrf-attributes'`" />\r
449                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
450                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
451                             <parameter name="format" value="json" />\r
452                             <parameter name="httpMethod" value="put" />\r
453                             <parameter name="responsePrefix" value="vrf-result" />\r
454                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks" />\r
455                             <parameter name="trustStorePassword" value="adminadmin" />\r
456                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12" />\r
457                             <parameter name="keyStorePassword" value="adminadmin" />\r
458                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
459                             <outcome value="success">\r
460                                 <block atomic="true" />\r
461                             </outcome>\r
462                             <outcome value="failure">\r
463                                 <return status="failure">\r
464                                     <parameter name="ack-final" value="Y" />\r
465                                     <parameter name="error-code" value="500" />\r
466                                     <parameter name="error-message" value="Error executing Create vrf rest api" />\r
467                                 </return>\r
468                             </outcome>\r
469                         </execute>\r
470                         <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
471                             <parameter name="templateFileName" value="`$prop.restapi.templateDir +'/l3smsitetemplate.json'`" />\r
472                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites'`" />\r
473                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
474                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
475                             <parameter name="format" value="json" />\r
476                             <parameter name="httpMethod" value="post" />\r
477                             <parameter name="responsePrefix" value="site-result" />\r
478                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks" />\r
479                             <parameter name="trustStorePassword" value="adminadmin" />\r
480                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12" />\r
481                             <parameter name="keyStorePassword" value="adminadmin" />\r
482                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
483                             <outcome value="success">\r
484                                 <block atomic="true" />\r
485                             </outcome>\r
486                             <outcome value="failure">\r
487                                 <return status="failure">\r
488                                     <parameter name="ack-final" value="Y" />\r
489                                     <parameter name="error-code" value="500" />\r
490                                     <parameter name="error-message" value="Error executing Create site rest api" />\r
491                                 </return>\r
492                             </outcome>\r
493                         </execute>\r
494                     </block>\r
495                 </outcome>\r
496                 <outcome value="l3vpn-sptn">\r
497                     <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
498                         <parameter name="templateFileName" value="`$prop.restapi.templateDir +'/sptn-l3vpn-template.xml'`" />\r
499                         <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/sptn-service-l3vpn:service/snc-l3vpns'`" />\r
500                         <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
501                         <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
502                         <parameter name="format" value="xml" />\r
503                         <parameter name="httpMethod" value="post" />\r
504                         <parameter name="responsePrefix" value="restapi-result" />\r
505                     </execute>\r
506                 </outcome>\r
507                 <outcome value="Other">\r
508                     <return status="failure">\r
509                         <parameter name="ack-final" value="Y" />\r
510                         <parameter name="error-code" value="500" />\r
511                         <parameter name="error-message" value="Unexpected error retrieving vpn binding" />\r
512                     </return>\r
513                 </outcome>\r
514             </switch>\r
515             <set>\r
516                 <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.l3vpn.network-id`" />\r
517                 <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />\r
518                 <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />\r
519                 <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />\r
520                 <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />\r
521                 <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />\r
522                 <parameter name="service-data.networks.network_length" value="`$nidx+1`" />\r
523             </set>\r
524             <set>\r
525                 <parameter name="networkId" value="`$prop.l3vpn.network-id`" />\r
526                 <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
527             </set>\r
528             <set>\r
529                 <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />\r
530                 <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
531                 <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
532             </set>\r
533             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $prop.l3vpn.network-id">\r
534                 <parameter name="configuration-id" value="`$prop.l3vpn.network-id`" />\r
535                 <parameter name="configuration-type" value="underlay" />\r
536                 <parameter name="configuration-sub-type" value="l3vpn" />\r
537                 <parameter name="orchestration-status" value="Created" />\r
538                 <parameter name="operational-status" value="Created" />\r
539                 <parameter name="model-customization-id" value="`$prop.l3vpn.network-id`" />\r
540                 <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
541             </save>\r
542             <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
543                 <parameter name="relationship-list.relationship[0].related-to" value="configuration" />\r
544                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/configurations/configuration/' + $prop.l3vpn.network-id`" />\r
545                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="configuration.configuration-id" />\r
546                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.l3vpn.network-id`" />\r
547             </save>\r
548             <return status="success">\r
549                 <parameter name="ack-final-indicator" value="Y" />\r
550                 <parameter name="error-code" value="200" />\r
551                 <parameter name="error-message" value="`$error-message`" />\r
552             </return>\r
553         </block>\r
554     </method>\r
555 </service-logic>\r