Merge "Added some dependencies and plugin in SDNC-231"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_wan-connection-topology-operation-activate.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <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}">
4   <method rpc="wan-connection-topology-operation-activate" mode="sync"> 
5     <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
6       <parameter name="source" value="`$network-topology-operation-input.network-information.onap-model-information.model-name`"/>  
7       <parameter name="target" value="specification"/>  
8       <outcome value="true"> 
9         <return status="success"> 
10           <parameter name="ack-final-indicator" value="Y"/>  
11           <parameter name="error-code" value="200"/>  
12           <parameter name="error-message" value="`$error-message`"/> 
13         </return>
14       </outcome>
15       <outcome value="false"> 
16         <block atomic="true">
17           <block atomic="true">
18             <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties"> 
19               <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties"/>  
20               <parameter name="contextPrefix" value="prop"/> 
21             </execute>
22             <set> 
23               <parameter name="tmp.found-network-input" value="false"/>
24             </set>
25             <for index="pidx" start="0" end="`$service-data.networks.network_length`"> 
26               <switch test="`$service-data.networks.network[$pidx].network-data.network-information.onap-model-information.model-name == $network-topology-operation-input.network-information.onap-model-information.model-name`"> 
27                 <outcome value="true"> 
28                   <set> 
29                     <parameter name="tmp.pidx" value="`$pidx`"/>  
30                     <parameter name="tmp.network." value="`$service-data.networks.network[$pidx].`"/>  
31                     <parameter name="tmp.network-input-parameters" value="`$service-data.networks.network[$pidx].network-data.network-request-input.network-input-parameters`"/>  
32                     <parameter name="tmp.found-network-input" value="true"/>
33                   </set>
34                 </outcome>
35               </switch>
36             </for>
37           </block>
38           <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
39             <parameter name="source" value="`$network-topology-operation-input.network-information.onap-model-information.model-name`"/>  
40             <parameter name="target" value="FC"/>  
41             <outcome value="true"> 
42               <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
43                 <parameter name="source" value="`$network-topology-operation-input.network-information.onap-model-information.model-name`"/>  
44                 <parameter name="target" value="sotn"/>  
45                 <outcome value="true"> 
46                   <block> 
47                     <block atomic="true">
48                       <set> 
49                         <parameter name="sotnFcPortListLength" value="0"/>
50                       </set>
51                       <for index="sIdx" start="0" end="`$service-data.networks.network_length`"> 
52                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
53                           <parameter name="source" value="`$service-data.networks.network[$sIdx].network-data.network-information.onap-model-information.model-name`"/>  
54                           <parameter name="target" value="sotn"/>  
55                           <outcome value="true"> 
56                             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
57                               <parameter name="source" value="`$service-data.networks.network[$sIdx].network-data.network-information.onap-model-information.model-name`"/>  
58                               <parameter name="target" value="FcPort"/>  
59                               <outcome value="true"> 
60                                 <block atomic="true">
61                                   <set> 
62                                     <parameter name="tmp.sotnFcPortList[`$sotnFcPortListLength`]" value="`$sIdx`"/>
63                                   </set>
64                                   <for index="paramIdx" start="0" end="`$service-data.networks.network[$sIdx].network-data.network-request-input.network-input-parameters.param_length`"> 
65                                     <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
66                                       <parameter name="source" value="`$service-data.networks.network[$sIdx].network-data.network-request-input.network-input-parameters.param[$paramIdx].name`"/>  
67                                       <parameter name="target" value="address"/>  
68                                       <outcome value="true"> 
69                                         <block atomic="true">
70                                           <set> 
71                                             <parameter name="sotnFcPortAddress" value="`$service-data.networks.network[$sIdx].network-data.network-request-input.network-input-parameters.param[$paramIdx].value`"/>
72                                           </set>
73                                           <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest"> 
74                                             <parameter name="restapiUrl" value="`$prop.oss.url + '/oss/inventory?location=' + $sotnFcPortAddress`"/>  
75                                             <parameter name="format" value="json"/>  
76                                             <parameter name="customHttpHeaders" value="X-FromAppId=MSO"/>  
77                                             <parameter name="httpMethod" value="GET"/>  
78                                             <parameter name="responsePrefix" value="temp.oss.accessTPs"/>  
79                                             <outcome value="success"> 
80                                               <switch test="`$temp.oss.accessTPs_length`"> 
81                                                 <outcome value="Other"> 
82                                                   <block atomic="true">
83                                                     <switch test="`$temp.accessTPs_length`"> 
84                                                       <outcome value=""> 
85                                                         <set> 
86                                                           <parameter name="tp_length" value="0"/>
87                                                         </set>
88                                                       </outcome>
89                                                       <outcome value="Other"> 
90                                                         <set> 
91                                                           <parameter name="tp_length" value="`$temp.accessTPs_length`"/>
92                                                         </set>
93                                                       </outcome>
94                                                     </switch>
95                                                     <for index="idx" start="0" end="`$temp.oss.accessTPs_length`"> 
96                                                       <set> 
97                                                         <parameter name="`temp.accessTPs[$idx + $tp_length].`" value="`$temp.oss.accessTPs[$idx].`"/>
98                                                       </set>
99                                                     </for>
100                                                     <set> 
101                                                       <parameter name="temp.accessTPs_length" value="`$temp.accessTPs_length + $temp.oss.accessTPs_length`"/> 
102                                                     </set>
103                                                   </block>
104                                                 </outcome>
105                                               </switch>
106                                             </outcome>
107                                           </execute>
108                                         </block>
109                                       </outcome>
110                                     </execute>
111                                   </for>
112                                 </block>
113                               </outcome>
114                             </execute>
115                           </outcome>
116                         </execute>
117                       </for>
118                     </block>
119                     <switch test="`$temp.accessTPs_length &gt;= 2`"> 
120                       <outcome value="true"> 
121                         <block atomic="true">
122                           <set> 
123                             <parameter name="prop.connection-attachment.access-topology-id" value="`$temp.accessTPs[0].access-topology-id`"/>  
124                             <parameter name="prop.connection-attachment.access-client-id" value="`$temp.accessTPs[0].access-client-id`"/>  
125                             <parameter name="prop.connection-attachment.access-provider-id" value="`$temp.accessTPs[0].access-provider-id`"/>  
126                             <parameter name="prop.connection-attachment.access-node-id" value="`$temp.accessTPs[0].access-node-id`"/>  
127                             <parameter name="prop.connection-attachment.access-ltp-id" value="`$temp.accessTPs[0].access-ltp-id`"/>  
128                             <parameter name="prop.remote.connection-attachment.access-topology-id" value="`$temp.accessTPs[1].access-topology-id`"/>  
129                             <parameter name="prop.remote.connection-attachment.access-client-id" value="`$temp.accessTPs[1].access-client-id`"/>  
130                             <parameter name="prop.remote.connection-attachment.access-provider-id" value="`$temp.accessTPs[1].access-provider-id`"/>  
131                             <parameter name="prop.remote.connection-attachment.access-node-id" value="`$temp.accessTPs[1].access-node-id`"/>  
132                             <parameter name="prop.remote.connection-attachment.access-ltp-id" value="`$temp.accessTPs[1].access-ltp-id`"/>
133                           </set>
134                           <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest"> 
135                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/' + $prop.restapi.oof-getpath.templatefile`"/>  
136                             <parameter name="restapiUrl" value="`$prop.restapi.connection-oof-url`"/>  
137                             <parameter name="restapiUser" value="`$prop.oof.user`"/>  
138                             <parameter name="restapiPassword" value="`$prop.oof.password`"/>  
139                             <parameter name="format" value="json"/>  
140                             <parameter name="httpMethod" value="post"/>  
141                             <parameter name="responsePrefix" value="oof"/>  
142                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>  
143                             <parameter name="trustStorePassword" value="adminadmin"/>  
144                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>  
145                             <parameter name="keyStorePassword" value="adminadmin"/>  
146                             <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`"/>
147                             <outcome value="failure"></outcome>
148                             <outcome value="success"> 
149                               <for index="vidx" start="0" end="`$oof.vpns_length`">
150                                 <block atomic="true">
151                                   <set> 
152                                     <parameter name="oof.vpn." value="`$oof.vpns[$vidx].`"/>
153                                   </set>
154                                   <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf" key="pnf.pnf-name = $oof.vpn.access-node-id    AND depth = '0'" pfx="tmp.aai.pnf" local-only="false"> 
155                                     <outcome value="success"> 
156                                       <set> 
157                                         <parameter name="tmp.thirdparty-sdnc-id" value="`$tmp.aai.pnf.relationship-list.relationship[0].relationship-data[0].relationship-value`"/> 
158                                       </set>
159                                     </outcome>
160                                     <outcome value="not-found"> 
161                                       <return status="failure"> 
162                                         <parameter name="ack-final" value="Y"/>  
163                                         <parameter name="error-code" value="500"/>  
164                                         <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`"/> 
165                                       </return>
166                                     </outcome>
167                                     <outcome value="Other"> 
168                                       <return status="failure"> 
169                                         <parameter name="ack-final" value="Y"/>  
170                                         <parameter name="error-code" value="500"/>  
171                                         <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`"/> 
172                                       </return>
173                                     </outcome>
174                                   </get-resource>
175                                   <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"> 
176                                     <outcome value="success"> 
177                                       <set> 
178                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`"/>  
179                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`"/>  
180                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`"/> 
181                                       </set>
182                                     </outcome>
183                                     <outcome value="not-found"> 
184                                       <return status="failure"> 
185                                         <parameter name="ack-final" value="Y"/>  
186                                         <parameter name="error-code" value="500"/>  
187                                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`"/> 
188                                       </return>
189                                     </outcome>
190                                     <outcome value="Other"> 
191                                       <return status="failure"> 
192                                         <parameter name="ack-final" value="Y"/>  
193                                         <parameter name="error-code" value="500"/>  
194                                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`"/> 
195                                       </return>
196                                     </outcome>
197                                   </get-resource>
198                                   <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest"> 
199                                     <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sotn-api-ConnectivityService.json'`"/>  
200                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ZTE-API-ConnectivityService:create-connectivity-service'`"/>  
201                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>  
202                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>  
203                                     <parameter name="format" value="json"/>  
204                                     <parameter name="httpMethod" value="patch"/>  
205                                     <parameter name="responsePrefix" value="vpn-result"/>  
206                                     <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>  
207                                     <parameter name="trustStorePassword" value="adminadmin"/>  
208                                     <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>  
209                                     <parameter name="keyStorePassword" value="adminadmin"/>  
210                                     <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`"/>
211                                     <outcome value="failure"> 
212                                       <return status="failure"> 
213                                         <parameter name="ack-final" value="Y"/>  
214                                         <parameter name="error-code" value="500"/>  
215                                         <parameter name="error-message" value="Error executing Create vpn rest api"/> 
216                                       </return>
217                                     </outcome>
218                                     <outcome value="success"> 
219                                       <block atomic="true"/>
220                                     </outcome>
221                                   </execute>
222                                 </block>
223                               </for>
224                             </outcome>
225                           </execute>
226                         </block>
227                       </outcome>
228                     </switch>
229                   </block>
230                 </outcome>
231                 <outcome value="false"> 
232                   <block atomic="true">
233                     <switch test="`$found-network-input`"> 
234                       <outcome value="false"> 
235                         <return status="failure"> 
236                           <parameter name="ack-final" value="Y"/>  
237                           <parameter name="error-code" value="404"/>  
238                           <parameter name="error-message" value="Error: Network input parameters not found"/> 
239                         </return>
240                       </outcome>
241                       <outcome value="true"> 
242                         <block atomic="true">
243                           <set> 
244                             <parameter name="tmp.restapiUrl-found" value="false"/>  
245                             <parameter name="tmp.restapiUser-found" value="false"/>  
246                             <parameter name="tmp.restapiPassword-found" value="false"/>  
247                             <parameter name="tmp.templateFileName-found" value="false"/>  
248                             <parameter name="tmp.thirdPartyAdaptorRpc-found" value="false"/>
249                           </set>
250                           <for index="cidx" start="0" end="`$tmp.network.network-data.network-topology.network-parameters.network-parameter_length`"> 
251                             <block> 
252                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'thirdPartySdncId'`"> 
253                                 <outcome value="true"> 
254                                   <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = `$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value` AND         depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false"> 
255                                     <outcome value="success"> 
256                                       <set> 
257                                         <parameter name="prop.thirdpartySdnc-found" value="true"/>  
258                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`"/>  
259                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`"/>  
260                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`"/> 
261                                       </set>
262                                     </outcome>
263                                     <outcome value="not-found"> 
264                                       <set> 
265                                         <parameter name="prop.thirdpartySdnc-found" value="false"/> 
266                                       </set>
267                                     </outcome>
268                                     <outcome value="Other"> 
269                                       <set> 
270                                         <parameter name="prop.thirdpartySdnc-found" value="false"/> 
271                                       </set>
272                                     </outcome>
273                                   </get-resource>
274                                 </outcome>
275                               </switch>
276                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'templateFileName'`"> 
277                                 <outcome value="true"> 
278                                   <set> 
279                                     <parameter name="tmp.templateFileName" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
280                                     <parameter name="tmp.templateFileName-found" value="true"/>
281                                   </set>
282                                 </outcome>
283                               </switch>
284                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'restapiUrl'`"> 
285                                 <outcome value="true"> 
286                                   <set> 
287                                     <parameter name="tmp.restapiUrl" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
288                                     <parameter name="tmp.restapiUrl-found" value="true"/>
289                                   </set>
290                                 </outcome>
291                               </switch>
292                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'thirdPartyAdaptorRpc'`"> 
293                                 <outcome value="true"> 
294                                   <set> 
295                                     <parameter name="tmp.thirdPartyAdaptorRpc" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
296                                     <parameter name="tmp.thirdPartyAdaptorRpc-found" value="true"/>
297                                   </set>
298                                 </outcome>
299                               </switch>
300                             </block>
301                           </for>
302                           <switch test="`$tmp.thirdPartyAdaptorRpc-found == 'true'`"> 
303                             <outcome value="true"> 
304                               <call module="GENERIC-RESOURCE-API" rpc="`$tmp.thirdPartyAdaptorRpc`" mode="sync"> 
305                                 <outcome value="success"> 
306                                   <block></block>
307                                 </outcome>
308                                 <outcome value="failure"> 
309                                   <return status="failure"> 
310                                     <parameter name="ack-final" value="Y"/>  
311                                     <parameter name="error-code" value="500"/>  
312                                     <parameter name="error-message" value="`'Error calling ' + $tmp.thirdPartyAdaptorRpc`"/> 
313                                   </return>
314                                 </outcome>
315                                 <outcome value="not-found"> 
316                                   <return status="failure"> 
317                                     <parameter name="ack-final" value="Y"/>  
318                                     <parameter name="error-code" value="500"/>  
319                                     <parameter name="error-message" value="`'Error calling ' + $tmp.thirdPartyAdaptorRpc`"/> 
320                                   </return>
321                                 </outcome>
322                               </call>
323                             </outcome>
324                             <outcome value="false"> 
325                               <switch test="`$tmp.prop.thirdpartySdnc-found == 'true' and $tmp.templateFileName-found == 'true' and `$tmp.prop.restapiUrl-found == 'true'`"> 
326                                 <outcome value="false"> 
327                                   <return status="failure"> 
328                                     <parameter name="ack-final" value="Y"/>  
329                                     <parameter name="error-code" value="404"/>  
330                                     <parameter name="error-message" value="Error: 3rd party controller restapiUrl not found"/> 
331                                   </return>
332                                 </outcome>
333                                 <outcome value="true"> 
334                                   <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest"> 
335                                     <parameter name="templateFileName" value="`$tmp.templateFileName`"/>  
336                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + $tmp.restapiUrl`"/>  
337                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>  
338                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>  
339                                     <parameter name="format" value="json"/>  
340                                     <parameter name="httpMethod" value="post"/>  
341                                     <parameter name="responsePrefix" value="restApi-result"/>
342                                     <outcome value="success"> 
343                                       <block></block>
344                                     </outcome>
345                                     <outcome value="failure"> 
346                                       <return status="failure"> 
347                                         <parameter name="ack-final" value="Y"/>  
348                                         <parameter name="error-code" value="500"/>  
349                                         <parameter name="error-message" value="`'Error calling ' + $tmp.restapiUrl`"/> 
350                                       </return>
351                                     </outcome>
352                                     <outcome value="not-found"> 
353                                       <return status="failure"> 
354                                         <parameter name="ack-final" value="Y"/>  
355                                         <parameter name="error-code" value="500"/>  
356                                         <parameter name="error-message" value="`'Error calling ' + $tmp.restapiUrl`"/> 
357                                       </return>
358                                     </outcome>
359                                   </execute>
360                                 </outcome>
361                               </switch>
362                             </outcome>
363                           </switch>
364                         </block>
365                       </outcome>
366                     </switch>
367                     <return status="success"> 
368                       <parameter name="ack-final-indicator" value="Y"/>  
369                       <parameter name="error-code" value="200"/>  
370                       <parameter name="error-message" value="`$error-message`"/> 
371                     </return>
372                   </block>
373                 </outcome>
374               </execute>
375             </outcome>
376             <outcome value="false"> 
377               <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
378                 <parameter name="source" value="`$network-topology-operation-input.network-information.onap-model-information.model-name`"/>  
379                 <parameter name="target" value="FD"/>  
380                 <outcome value="true"> 
381                   <block atomic="true">
382                     <switch test="`$found-network-input`"> 
383                       <outcome value="false"> 
384                         <return status="failure"> 
385                           <parameter name="ack-final" value="Y"/>  
386                           <parameter name="error-code" value="404"/>  
387                           <parameter name="error-message" value="Error: Network input parameters not found"/> 
388                         </return>
389                       </outcome>
390                       <outcome value="true"> 
391                         <block atomic="true">
392                           <set> 
393                             <parameter name="tmp.restapiUrl-found" value="false"/>  
394                             <parameter name="tmp.restapiUser-found" value="false"/>  
395                             <parameter name="tmp.restapiPassword-found" value="false"/>  
396                             <parameter name="tmp.templateFileName-found" value="false"/>  
397                             <parameter name="tmp.thirdPartyAdaptorRpc-found" value="false"/>
398                           </set>
399                           <for index="cidx" start="0" end="`$tmp.network.network-data.network-topology.network-parameters.network-parameter_length`"> 
400                             <block> 
401                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'thirdPartySdncId'`"> 
402                                 <outcome value="true"> 
403                                   <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = `$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value` AND         depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false"> 
404                                     <outcome value="success"> 
405                                       <set> 
406                                         <parameter name="prop.thirdpartySdnc-found" value="true"/>  
407                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`"/>  
408                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`"/>  
409                                         <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`"/> 
410                                       </set>
411                                     </outcome>
412                                     <outcome value="not-found"> 
413                                       <set> 
414                                         <parameter name="prop.thirdpartySdnc-found" value="false"/> 
415                                       </set>
416                                     </outcome>
417                                     <outcome value="Other"> 
418                                       <set> 
419                                         <parameter name="prop.thirdpartySdnc-found" value="false"/> 
420                                       </set>
421                                     </outcome>
422                                   </get-resource>
423                                 </outcome>
424                               </switch>
425                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'templateFileName'`"> 
426                                 <outcome value="true"> 
427                                   <set> 
428                                     <parameter name="tmp.templateFileName" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
429                                     <parameter name="tmp.templateFileName-found" value="true"/>
430                                   </set>
431                                 </outcome>
432                               </switch>
433                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'restapiUrl'`"> 
434                                 <outcome value="true"> 
435                                   <set> 
436                                     <parameter name="tmp.restapiUrl" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
437                                     <parameter name="tmp.restapiUrl-found" value="true"/>
438                                   </set>
439                                 </outcome>
440                               </switch>
441                               <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'thirdPartyAdaptorRpc'`"> 
442                                 <outcome value="true"> 
443                                   <set> 
444                                     <parameter name="tmp.thirdPartyAdaptorRpc" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
445                                     <parameter name="tmp.thirdPartyAdaptorRpc-found" value="true"/>
446                                   </set>
447                                 </outcome>
448                               </switch>
449                             </block>
450                           </for>
451                           <switch test="`$tmp.thirdPartyAdaptorRpc-found == 'true'`"> 
452                             <outcome value="true"> 
453                               <call module="GENERIC-RESOURCE-API" rpc="`$tmp.thirdPartyAdaptorRpc`" mode="sync"> 
454                                 <outcome value="success"> 
455                                   <block></block>
456                                 </outcome>
457                                 <outcome value="failure"> 
458                                   <return status="failure"> 
459                                     <parameter name="ack-final" value="Y"/>  
460                                     <parameter name="error-code" value="500"/>  
461                                     <parameter name="error-message" value="`'Error calling ' + $tmp.thirdPartyAdaptorRpc`"/> 
462                                   </return>
463                                 </outcome>
464                                 <outcome value="not-found"> 
465                                   <return status="failure"> 
466                                     <parameter name="ack-final" value="Y"/>  
467                                     <parameter name="error-code" value="500"/>  
468                                     <parameter name="error-message" value="`'Error calling ' + $tmp.thirdPartyAdaptorRpc`"/> 
469                                   </return>
470                                 </outcome>
471                               </call>
472                             </outcome>
473                             <outcome value="false"> 
474                               <switch test="`$tmp.prop.thirdpartySdnc-found == 'true' and $tmp.templateFileName-found == 'true' and `$tmp.prop.restapiUrl-found == 'true'`"> 
475                                 <outcome value="false"> 
476                                   <return status="failure"> 
477                                     <parameter name="ack-final" value="Y"/>  
478                                     <parameter name="error-code" value="404"/>  
479                                     <parameter name="error-message" value="Error: 3rd party controller restapiUrl not found"/> 
480                                   </return>
481                                 </outcome>
482                                 <outcome value="true"> 
483                                   <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest"> 
484                                     <parameter name="templateFileName" value="`$tmp.templateFileName`"/>  
485                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + $tmp.restapiUrl`"/>  
486                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>  
487                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>  
488                                     <parameter name="format" value="json"/>  
489                                     <parameter name="httpMethod" value="post"/>  
490                                     <parameter name="responsePrefix" value="restApi-result"/>
491                                     <outcome value="success"> 
492                                       <block></block>
493                                     </outcome>
494                                     <outcome value="failure"> 
495                                       <return status="failure"> 
496                                         <parameter name="ack-final" value="Y"/>  
497                                         <parameter name="error-code" value="500"/>  
498                                         <parameter name="error-message" value="`'Error calling ' + $tmp.restapiUrl`"/> 
499                                       </return>
500                                     </outcome>
501                                     <outcome value="not-found"> 
502                                       <return status="failure"> 
503                                         <parameter name="ack-final" value="Y"/>  
504                                         <parameter name="error-code" value="500"/>  
505                                         <parameter name="error-message" value="`'Error calling ' + $tmp.restapiUrl`"/> 
506                                       </return>
507                                     </outcome>
508                                   </execute>
509                                 </outcome>
510                               </switch>
511                             </outcome>
512                           </switch>
513                         </block>
514                       </outcome>
515                     </switch>
516                     <return status="success"> 
517                       <parameter name="ack-final-indicator" value="Y"/>  
518                       <parameter name="error-code" value="200"/>  
519                       <parameter name="error-message" value="`$error-message`"/> 
520                     </return>
521                   </block>
522                 </outcome>
523                 <outcome value="false"> 
524                   <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
525                     <parameter name="source" value="`$network-topology-operation-input.network-information.onap-model-information.model-name`"/>  
526                     <parameter name="target" value="FcPort"/>  
527                     <outcome value="true"> 
528                       <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
529                         <parameter name="source" value="`$network-topology-operation-input.network-information.onap-model-information.model-name`"/>  
530                         <parameter name="target" value="sitewan"/>  
531                         <outcome value="true"> 
532                           <block atomic="true">
533                             <switch test="`$found-network-input`"> 
534                               <outcome value="false"> 
535                                 <return status="failure"> 
536                                   <parameter name="ack-final" value="Y"/>  
537                                   <parameter name="error-code" value="404"/>  
538                                   <parameter name="error-message" value="Error: Network input parameters not found"/> 
539                                 </return>
540                               </outcome>
541                               <outcome value="true"> 
542                                 <block atomic="true">
543                                   <set> 
544                                     <parameter name="tmp.restapiUrl-found" value="false"/>  
545                                     <parameter name="tmp.restapiUser-found" value="false"/>  
546                                     <parameter name="tmp.restapiPassword-found" value="false"/>  
547                                     <parameter name="tmp.templateFileName-found" value="false"/>  
548                                     <parameter name="tmp.thirdPartyAdaptorRpc-found" value="false"/>
549                                   </set>
550                                   <for index="cidx" start="0" end="`$tmp.network.network-data.network-topology.network-parameters.network-parameter_length`"> 
551                                     <block> 
552                                       <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'thirdPartySdncId'`"> 
553                                         <outcome value="true"> 
554                                           <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = `$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value` AND         depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false"> 
555                                             <outcome value="success"> 
556                                               <set> 
557                                                 <parameter name="prop.thirdpartySdnc-found" value="true"/>  
558                                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`"/>  
559                                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`"/>  
560                                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`"/> 
561                                               </set>
562                                             </outcome>
563                                             <outcome value="not-found"> 
564                                               <set> 
565                                                 <parameter name="prop.thirdpartySdnc-found" value="false"/> 
566                                               </set>
567                                             </outcome>
568                                             <outcome value="Other"> 
569                                               <set> 
570                                                 <parameter name="prop.thirdpartySdnc-found" value="false"/> 
571                                               </set>
572                                             </outcome>
573                                           </get-resource>
574                                         </outcome>
575                                       </switch>
576                                       <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'templateFileName'`"> 
577                                         <outcome value="true"> 
578                                           <set> 
579                                             <parameter name="tmp.templateFileName" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
580                                             <parameter name="tmp.templateFileName-found" value="true"/>
581                                           </set>
582                                         </outcome>
583                                       </switch>
584                                       <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'restapiUrl'`"> 
585                                         <outcome value="true"> 
586                                           <set> 
587                                             <parameter name="tmp.restapiUrl" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
588                                             <parameter name="tmp.restapiUrl-found" value="true"/>
589                                           </set>
590                                         </outcome>
591                                       </switch>
592                                       <switch test="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-name == 'thirdPartyAdaptorRpc'`"> 
593                                         <outcome value="true"> 
594                                           <set> 
595                                             <parameter name="tmp.thirdPartyAdaptorRpc" value="`$tmp.network.network-data.network-topology.network-parameters.network-parameter[$cxid].network-parameter-value`"/>  
596                                             <parameter name="tmp.thirdPartyAdaptorRpc-found" value="true"/>
597                                           </set>
598                                         </outcome>
599                                       </switch>
600                                     </block>
601                                   </for>
602                                   <switch test="`$tmp.thirdPartyAdaptorRpc-found == 'true'`"> 
603                                     <outcome value="true"> 
604                                       <call module="GENERIC-RESOURCE-API" rpc="`$tmp.thirdPartyAdaptorRpc`" mode="sync"> 
605                                         <outcome value="success"> 
606                                           <block></block>
607                                         </outcome>
608                                         <outcome value="failure"> 
609                                           <return status="failure"> 
610                                             <parameter name="ack-final" value="Y"/>  
611                                             <parameter name="error-code" value="500"/>  
612                                             <parameter name="error-message" value="`'Error calling ' + $tmp.thirdPartyAdaptorRpc`"/> 
613                                           </return>
614                                         </outcome>
615                                         <outcome value="not-found"> 
616                                           <return status="failure"> 
617                                             <parameter name="ack-final" value="Y"/>  
618                                             <parameter name="error-code" value="500"/>  
619                                             <parameter name="error-message" value="`'Error calling ' + $tmp.thirdPartyAdaptorRpc`"/> 
620                                           </return>
621                                         </outcome>
622                                       </call>
623                                     </outcome>
624                                     <outcome value="false"> 
625                                       <switch test="`$tmp.prop.thirdpartySdnc-found == 'true' and $tmp.templateFileName-found == 'true' and `$tmp.prop.restapiUrl-found == 'true'`"> 
626                                         <outcome value="false"> 
627                                           <return status="failure"> 
628                                             <parameter name="ack-final" value="Y"/>  
629                                             <parameter name="error-code" value="404"/>  
630                                             <parameter name="error-message" value="Error: 3rd party controller restapiUrl not found"/> 
631                                           </return>
632                                         </outcome>
633                                         <outcome value="true"> 
634                                           <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest"> 
635                                             <parameter name="templateFileName" value="`$tmp.templateFileName`"/>  
636                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + $tmp.restapiUrl`"/>  
637                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>  
638                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>  
639                                             <parameter name="format" value="json"/>  
640                                             <parameter name="httpMethod" value="post"/>  
641                                             <parameter name="responsePrefix" value="restApi-result"/>
642                                             <outcome value="success"> 
643                                               <block></block>
644                                             </outcome>
645                                             <outcome value="failure"> 
646                                               <return status="failure"> 
647                                                 <parameter name="ack-final" value="Y"/>  
648                                                 <parameter name="error-code" value="500"/>  
649                                                 <parameter name="error-message" value="`'Error calling ' + $tmp.restapiUrl`"/> 
650                                               </return>
651                                             </outcome>
652                                             <outcome value="not-found"> 
653                                               <return status="failure"> 
654                                                 <parameter name="ack-final" value="Y"/>  
655                                                 <parameter name="error-code" value="500"/>  
656                                                 <parameter name="error-message" value="`'Error calling ' + $tmp.restapiUrl`"/> 
657                                               </return>
658                                             </outcome>
659                                           </execute>
660                                         </outcome>
661                                       </switch>
662                                     </outcome>
663                                   </switch>
664                                 </block>
665                               </outcome>
666                             </switch>
667                             <return status="success"> 
668                               <parameter name="ack-final-indicator" value="Y"/>  
669                               <parameter name="error-code" value="200"/>  
670                               <parameter name="error-message" value="`$error-message`"/> 
671                             </return>
672                           </block>
673                         </outcome>
674                         <outcome value="false"> 
675                           <block> 
676                             <return status="success"> 
677                               <parameter name="ack-final-indicator" value="Y"/>  
678                               <parameter name="error-code" value="200"/>  
679                               <parameter name="error-message" value="`$error-message`"/> 
680                             </return>
681                           </block>
682                         </outcome>
683                       </execute>
684                     </outcome>
685                     <outcome value="false"> 
686                       <block> 
687                         <return status="success"> 
688                           <parameter name="ack-final-indicator" value="Y"/>  
689                           <parameter name="error-code" value="200"/>  
690                           <parameter name="error-message" value="`$error-message`"/> 
691                         </return>
692                       </block>
693                     </outcome>
694                   </execute>
695                 </outcome>
696               </execute>
697             </outcome>
698           </execute>
699         </block>
700       </outcome>
701     </execute>
702   </method>
703 </service-logic>