Merge "Update to use released 1.2.2 parent"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / sdwan / GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
4     <method rpc='sdwan-vf-operation-wanport-activate' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test='`$service-data.vnfs.vnf_length`'>\r
7                 <outcome value=''>\r
8                     <return status='failure'>\r
9                         <parameter name='ack-final' value='Y'/>\r
10                         <parameter name="error-code" value="404" />\r
11                         <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
12                     </return>\r
13                 </outcome>\r
14             </switch>\r
15             <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
16                 <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
17                     <outcome value='true'>\r
18                         <set>\r
19                             <parameter name='vnf-index' value='`$idx`' />\r
20                         </set>\r
21                     </outcome>\r
22                 </switch>\r
23             </for>\r
24             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
25                 <outcome value='0'>\r
26                     <return status='failure'>\r
27                         <parameter name='ack-final' value='Y'/>\r
28                         <parameter name="error-code" value="500" />\r
29                         <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
30                     </return>\r
31                 </outcome>\r
32                 <outcome value=''>\r
33                     <return status='failure'>\r
34                         <parameter name='ack-final' value='Y'/>\r
35                         <parameter name="error-code" value="500" />\r
36                         <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
37                     </return>\r
38                 </outcome>\r
39                 <outcome value='Other'>\r
40                     <block>\r
41                         <set>\r
42                             <parameter name='prop.site.deviceId_length' value='0' />\r
43                         </set>\r
44                         <set>\r
45                             <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
46                         </set>\r
47                         <for index='idx' start='0' end='`$vf-module-length`' >\r
48                             <block atomic="true">\r
49                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
50                                     <outcome value='true'>\r
51                                         <block atomic="true">\r
52                                             <set>\r
53                                                 <parameter name='tmp.vidx' value='`$idx`' />\r
54                                                 <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
55                                             </set>\r
56                                             <set>\r
57                                                 <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
58                                             </set>\r
59                                             <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
60                                         </block>\r
61                                     </outcome>\r
62                                 </switch>\r
63                             </block>\r
64                         </for>\r
65                         <for index='idx' start='0' end='`$vf-module-length`' >\r
66                             <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
67                                 <outcome value='true'>\r
68                                     <block atomic="true">\r
69                                         <for index="didx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
70                                             <block>\r
71                                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name == 'deviceId'`">\r
72                                                     <outcome value='true'>\r
73                                                         <set>\r
74                                                             <parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`' />\r
75                                                             <parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\r
76                                                         </set>\r
77                                                     </outcome>\r
78                                                 </switch>\r
79                                             </block>\r
80                                             <block atomic="true">\r
81                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
82                                                     <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-device-param.log"/>\r
83                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
84                                                     <parameter name="field2" value="'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name'"/>\r
85                                                     <parameter name="field3" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name`'/>\r
86                                                 </record>\r
87                                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name == 'name'`">\r
88                                                     <outcome value='true'>\r
89                                                         <block atomic="true">\r
90                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
91                                                                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-device-name.log"/>\r
92                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
93                                                                 <parameter name="field2" value="'prop.wan.deviceName'"/>\r
94                                                                 <parameter name="field3" value='`$prop.wan.deviceName`'/>\r
95                                                                 <parameter name="field4" value="'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value'"/>\r
96                                                                 <parameter name="field5" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`'/>\r
97                                                             </record>\r
98                                                             <switch test="`$prop.wan.deviceName == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
99                                                                 <outcome value='true'>\r
100                                                                     <block atomic="true">\r
101                                                                         <for index="deviceidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
102                                                                             <block atomic="true">\r
103                                                                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
104                                                                                     <outcome value='true'>\r
105                                                                                         <set>\r
106                                                                                             <parameter name='prop.wan.deviceId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\r
107                                                                                         </set>\r
108                                                                                     </outcome>\r
109                                                                                 </switch>\r
110                                                                             </block>\r
111                                                                         </for>\r
112                                                                         <set>\r
113                                                                             <parameter name='tmp.devicevidx' value='`$idx`' />\r
114                                                                         </set>\r
115                                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
116                                                                             <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-last.log"/>\r
117                                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
118                                                                             <parameter name="field2" value="'tmp.devicevidx'"/>\r
119                                                                             <parameter name="field3" value='`$tmp.devicevidx`'/>\r
120                                                                         </record>\r
121                                                                     </block>\r
122                                                                 </outcome>\r
123                                                             </switch>\r
124                                                         </block>\r
125                                                     </outcome>\r
126                                                 </switch>\r
127                                             </block>\r
128                                         </for>\r
129                                     </block>\r
130                                 </outcome>\r
131                             </switch>\r
132                             <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`">\r
133                                 <outcome value='true'>\r
134                                     <set>\r
135                                         <parameter name='tmp.siteVidx' value='`$idx`' />\r
136                                         <parameter name='ctx.site.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].`' />\r
137                                     </set>\r
138                                 </outcome>\r
139                             </switch>\r
140                         </for>\r
141                     </block>\r
142                 </outcome>\r
143             </switch>\r
144             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
145                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
146                 <parameter name='contextPrefix' value='prop' />\r
147             </execute>\r
148             <for index="sidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.siteVidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
149                 <block atomic="true">\r
150                     <switch test="`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].name == 'siteId'`">\r
151                         <outcome value='true'>\r
152                             <set>\r
153                                 <parameter name='prop.wan.siteId' value='`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].value`' />\r
154                             </set>\r
155                         </outcome>\r
156                     </switch>\r
157                 </block>\r
158             </for>\r
159             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
160                 resource="esr-thirdparty-sdnc" \r
161                 key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
162                      depth = '1'"\r
163         pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
164                 <outcome value='success'>\r
165                     <set>\r
166                         <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
167                         <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
168                         <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
169                     </set>\r
170                 </outcome>\r
171                 <outcome value='not-found'>\r
172                     <return status='failure'>\r
173                         <parameter name='ack-final' value='Y'/>\r
174                         <parameter name="error-code" value="500" />\r
175                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
176                     </return>\r
177                 </outcome>\r
178                 <outcome value='Other'>\r
179                     <return status='failure'>\r
180                         <parameter name='ack-final' value='Y'/>\r
181                         <parameter name="error-code" value="500" />\r
182                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
183                     </return>\r
184                 </outcome>\r
185             </get-resource>\r
186             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
187                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
188                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
189                 <parameter name="format" value="json"/>\r
190                 <parameter name="httpMethod" value="post"/>\r
191                 <parameter name="responsePrefix" value="token-result"/>\r
192                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
193                 <parameter name="trustStorePassword" value="adminadmin"/>\r
194                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
195                 <parameter name="keyStorePassword" value="adminadmin"/>\r
196                 <outcome value='success'>\r
197                     <set>\r
198                         <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
199                     </set>\r
200                 </outcome>\r
201                 <outcome value='failure'>\r
202                     <return status='failure'>\r
203                         <parameter name='ack-final' value='Y'/>\r
204                         <parameter name="error-code" value="500" />\r
205                         <parameter name="error-message" value="Error executing get token rest api" />\r
206                     </return>\r
207                 </outcome>\r
208             </execute>\r
209             <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
210             <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
211                 <block>\r
212                     <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`">\r
213                         <outcome value='true'>\r
214                             <block atomic="true">\r
215                                 <switch test="`GE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`">\r
216                                     <outcome value='true'>\r
217                                         <block atomic="true">\r
218                                             <set>\r
219                                                 <parameter name='prop.wan.linkType' value="Ethernet" />\r
220                                             </set>\r
221                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
222                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-port-ethernet.json'`" />\r
223                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
224                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
225                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
226                                                 <parameter name="format" value="json"/>\r
227                                                 <parameter name="httpMethod" value="post"/>\r
228                                                 <parameter name="responsePrefix" value="portResp"/>\r
229                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
230                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
231                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
232                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
233                                                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
234                                                 <outcome value='failure'>\r
235                                                     <return status='failure'>\r
236                                                         <parameter name='ack-final' value='Y'/>\r
237                                                         <parameter name="error-code" value="500" />\r
238                                                         <parameter name="error-message" value="Error executing Create device port rest api" />\r
239                                                     </return>\r
240                                                 </outcome>\r
241                                                 <outcome value='success'>\r
242                                                     <block atomic="true"></block>\r
243                                                 </outcome>\r
244                                             </execute>\r
245                                         </block>\r
246                                     </outcome>\r
247                                 </switch>\r
248                                 <switch test="`LTE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`">\r
249                                     <outcome value='true'>\r
250                                         <block atomic="true">\r
251                                             <set>\r
252                                                 <parameter name='prop.wan.linkType' value="Cellular" />\r
253                                             </set>\r
254                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
255                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-port-cellular.json'`" />\r
256                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
257                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
258                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
259                                                 <parameter name="format" value="json"/>\r
260                                                 <parameter name="httpMethod" value="post"/>\r
261                                                 <parameter name="responsePrefix" value="portResp"/>\r
262                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
263                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
264                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
265                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
266                                                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
267                                                 <outcome value='failure'>\r
268                                                     <return status='failure'>\r
269                                                         <parameter name='ack-final' value='Y'/>\r
270                                                         <parameter name="error-code" value="500" />\r
271                                                         <parameter name="error-message" value="Error executing Create device port rest api" />\r
272                                                     </return>\r
273                                                 </outcome>\r
274                                                 <outcome value='success'>\r
275                                                     <block atomic="true"></block>\r
276                                                 </outcome>\r
277                                             </execute>\r
278                                         </block>\r
279                                     </outcome>\r
280                                 </switch>\r
281                             </block>\r
282                         </outcome>\r
283                     </switch>\r
284                 </block>\r
285             </for>\r
286             <set>\r
287                 <parameter name='prop.wan.devicePortId' value='`$portResp.success[0].id`' />\r
288             </set>\r
289             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
290                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`" />\r
291                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
292                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
293                 <parameter name="format" value="json"/>\r
294                 <parameter name="httpMethod" value="get"/>\r
295                 <parameter name="responsePrefix" value="transportNetworksResp"/>\r
296                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
297                 <parameter name="trustStorePassword" value="adminadmin"/>\r
298                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
299                 <parameter name="keyStorePassword" value="adminadmin"/>\r
300                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
301                 <outcome value='failure'>\r
302                     <return status='failure'>\r
303                         <parameter name='ack-final' value='Y'/>\r
304                         <parameter name="error-code" value="500" />\r
305                         <parameter name="error-message" value="Error executing Get transport network info rest api" />\r
306                     </return>\r
307                 </outcome>\r
308                 <outcome value='success'>\r
309                     <block atomic="true"></block>\r
310                 </outcome>\r
311             </execute>\r
312             <for index="tidx" start="0" end="`$transportNetworksResp.data.transportNetworks_length`">\r
313                 <block>\r
314                     <switch test="`$transportNetworksResp.data.transportNetworks[$tidx].name == $prop.wan.transportNetworkName`">\r
315                         <outcome value='true'>\r
316                             <set>\r
317                                 <parameter name='prop.wan.transportNetworkId' value='`$transportNetworksResp.data.transportNetworks[$tidx].id`' />\r
318                             </set>\r
319                         </outcome>\r
320                     </switch>\r
321                 </block>\r
322             </for>\r
323             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
324                 <parameter name="original_string" value='`$prop.wan.ipAddress`'/>\r
325                 <parameter name="regex" value="/"/>\r
326                 <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
327                 <outcome value='success'>\r
328                     <set>\r
329                         <parameter name='prop.wan.ip-address' value='`$ipandMask[0]`' />\r
330                         <parameter name='prop.wan.prefixLength' value='`$ipandMask[1]`' />\r
331                     </set>\r
332                 </outcome>\r
333                 <outcome value='failure'>\r
334                     <return status='failure'>\r
335                         <parameter name='error-code' value='' />\r
336                         <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
337                     </return>\r
338                 </outcome>\r
339             </execute>\r
340             <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
341                 <block>\r
342                     <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
343                         <outcome value='true'>\r
344                             <block atomic="true">\r
345                                 <switch test="`Static == $prop.wan.IPMode`">\r
346                                     <outcome value='true'>\r
347                                         <block atomic="true">\r
348                                             <set>\r
349                                                 <parameter name='prop.wan.IpMode' value="static" />\r
350                                                 <parameter name='prop.wan.ipAddress' value='`$prop.wan.ip-address`' />\r
351                                                 <parameter name='prop.route.nextHopType' value="ip-address" />\r
352                                             </set>\r
353                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
354                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port-static.json'`" />\r
355                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />\r
356                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
357                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
358                                                 <parameter name="format" value="json"/>\r
359                                                 <parameter name="httpMethod" value="post"/>\r
360                                                 <parameter name="responsePrefix" value="wanPortResp"/>\r
361                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
362                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
363                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
364                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
365                                                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
366                                                 <outcome value='failure'>\r
367                                                     <block atomic="true"></block>\r
368                                                 </outcome>\r
369                                                 <outcome value='success'>\r
370                                                     <block atomic="true">\r
371                                                         <set>\r
372                                                             <parameter name='prop.wan.wanPortId' value='`$wanPortResp.success[0].id`' />\r
373                                                         </set>\r
374                                                     </block>\r
375                                                 </outcome>\r
376                                             </execute>\r
377                                         </block>\r
378                                     </outcome>\r
379                                 </switch>\r
380                                 <switch test="`DHCP == $prop.wan.IPMode`">\r
381                                     <outcome value='true'>\r
382                                         <block atomic="true">\r
383                                             <set>\r
384                                                 <parameter name='prop.wan.ipAddress' value="" />\r
385                                                 <parameter name='prop.wan.prefixLength' value="" />\r
386                                                 <parameter name='prop.wan.providerIpAddress' value="" />\r
387                                                 <parameter name='prop.wan.IpMode' value="DHCP" />\r
388                                                 <parameter name='prop.route.nextHopType' value="outbound-interface" />\r
389                                             </set>\r
390                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
391                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port-dhcp.json'`" />\r
392                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />\r
393                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
394                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
395                                                 <parameter name="format" value="json"/>\r
396                                                 <parameter name="httpMethod" value="post"/>\r
397                                                 <parameter name="responsePrefix" value="wanPortResp"/>\r
398                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
399                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
400                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
401                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
402                                                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
403                                                 <outcome value='failure'>\r
404                                                     <block atomic="true"></block>\r
405                                                 </outcome>\r
406                                                 <outcome value='success'>\r
407                                                     <block atomic="true">\r
408                                                         <set>\r
409                                                             <parameter name='prop.wan.wanPortId' value='`$wanPortResp.success[0].id`' />\r
410                                                         </set>\r
411                                                     </block>\r
412                                                 </outcome>\r
413                                             </execute>\r
414                                         </block>\r
415                                     </outcome>\r
416                                 </switch>\r
417                             </block>\r
418                         </outcome>\r
419                     </switch>\r
420                 </block>\r
421             </for>\r
422             <set>\r
423                 <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\r
424                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.devicePortId`' />\r
425             </set>\r
426             <set>\r
427                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
428             </set>\r
429             <set>\r
430                 <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='wanPortId' />\r
431                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.wanPortId`' />\r
432             </set>\r
433             <set>\r
434                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
435             </set>\r
436             <set>\r
437                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
438                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
439                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
440                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
441             </set>\r
442             <set>\r
443                 <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
444  + $vf-module-topology-operation-input.service-information.service-instance-id\r
445  + '/service-data/vnfs/vnf/'\r
446  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
447  + '/vnf-data/vf-modules/vf-module/'\r
448  + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
449  + '/vf-module-data/vf-module-topology/'`"/>\r
450                 <parameter name='vnf-object-path'\r
451  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
452  + $vf-module-topology-operation-input.service-information.service-instance-id\r
453  + '/service-data/vnfs/vnf/'\r
454  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
455  + '/vnf-data/vnf-topology/'`"/>\r
456                 <parameter name='service-object-path'\r
457  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
458  + $vf-module-topology-operation-input.service-information.service-instance-id\r
459  + '/service-data/service-topology/'`"/>\r
460             </set>\r
461             <set>\r
462                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
463                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
464                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
465             </set>\r
466             <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \r
467       key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
468                 <parameter name="wan-port-config-id" value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
469                 <parameter name='operational-status' value='Active' />\r
470                 <parameter name='device-port-id' value='`$prop.wan.devicePortId`' />\r
471                 <parameter name='wan-port-id' value='`$prop.wan.wanPortId`' />\r
472             </update>\r
473             <return status='success'>\r
474                 <parameter name="ack-final-indicator" value="Y" />\r
475                 <parameter name="error-code" value="200" />\r
476                 <parameter name="error-message" value="`$error-message`" />\r
477             </return>\r
478         </block>\r
479     </method>\r
480 </service-logic>