Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.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='getpathsegment-populate-from-vnfapi' mode='sync'>\r
5         <block atomic='true'>\r
6             <set>\r
7                 <parameter name="serv-inst.api" value= ""/>\r
8             </set>\r
9             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
10                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
11                 <parameter name='contextPrefix' value='prop' />\r
12                 <outcome value='success'>\r
13                     <block>\r
14                         <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
15                             <parameter name="logger" value="message-log"/>\r
16                             <parameter name="field1" value="__TIMESTAMP__"/>\r
17                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: read properties file."/>\r
18                         </record>\r
19                     </block>\r
20                 </outcome>\r
21                 <outcome value='failure'>\r
22                     <block>\r
23                         <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
24                             <parameter name="logger" value="message-log"/>\r
25                             <parameter name="field1" value="__TIMESTAMP__"/>\r
26                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Could not read properties file."/>\r
27                             <parameter name="field3" value='`$prop.restapi.pm.getpolicy.templatefile`'/>\r
28                         </record>\r
29                         <set>\r
30                             <parameter name="serv-inst.api" value= ""/>\r
31                             <parameter name="error-message" value="Could not read properties file" />\r
32                         </set>\r
33                     </block>\r
34                 </outcome>\r
35             </execute>\r
36             <switch test='`$serv-inst.service-instance-id`'>\r
37                 <outcome value=''>\r
38                     <block>\r
39                         <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
40                             <parameter name="logger" value="message-log"/>\r
41                             <parameter name="field1" value="__TIMESTAMP__"/>\r
42                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input service-instance-id is not set"/>\r
43                         </record>\r
44                         <set>\r
45                             <parameter name="serv-inst.api" value= ""/>\r
46                             <parameter name="error-message" value="serv-inst.service-instance-id is not set" />\r
47                         </set>\r
48                     </block>\r
49                 </outcome>\r
50             </switch>\r
51             <switch test='`$match-type`'>\r
52                 <outcome value=''>\r
53                     <block>\r
54                         <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
55                             <parameter name="logger" value="message-log"/>\r
56                             <parameter name="field1" value="__TIMESTAMP__"/>\r
57                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input match-type is not set"/>\r
58                         </record>\r
59                         <set>\r
60                             <parameter name="serv-inst.api" value= ""/>\r
61                             <parameter name="error-message" value="input match-type is not set" />\r
62                         </set>\r
63                     </block>\r
64                 </outcome>\r
65             </switch>\r
66             <switch test='`$vnf-ids_length`'>\r
67                 <outcome value=''>\r
68                     <block>\r
69                         <set>\r
70                             <parameter name="path-type" value= "COMPOSITE"/>\r
71                         </set>\r
72                         <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
73                             <parameter name="logger" value="message-log"/>\r
74                             <parameter name="field1" value="__TIMESTAMP__"/>\r
75                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input vnf-ids_length is blank, this is a COMPOSITE path"/>\r
76                         </record>\r
77                     </block>\r
78                 </outcome>\r
79                 <outcome value='Other'>\r
80                     <block>\r
81                         <set>\r
82                             <parameter name="path-type" value= "SIMPLE"/>\r
83                         </set>\r
84                         <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
85                             <parameter name="logger" value="message-log"/>\r
86                             <parameter name="field1" value="__TIMESTAMP__"/>\r
87                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input vnf-ids_length is NOT blank, this is a SIMPLE path"/>\r
88                         </record>\r
89                     </block>\r
90                 </outcome>\r
91             </switch>\r
92             <set>\r
93                 <parameter name="vnfListIndex" value= "0"/>\r
94             </set>\r
95             <switch test='`$path-type`'>\r
96                 <outcome value='SIMPLE'>\r
97                     <block>\r
98                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
99                             <parameter name="logger" value="message-log"/>\r
100                             <parameter name="field1" value="__TIMESTAMP__"/>\r
101                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Call AAI custom query vfModule-fromServiceInstance to get vf-module-ids"/>\r
102                         </record>\r
103                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
104       resource="custom-query"\r
105       key="format = 'resource'"\r
106       force="true"\r
107       local-only="false"\r
108       pfx="tmp.AnAI-data.vf-module-ids">\r
109                             <parameter name="start[0]" value="`'/nodes/service-instances/service-instance?service-instance-id=' + $serv-inst.service-instance-id `" />\r
110                             <!--<parameter name="start[0]" value="`'/business/customers/customer/bgb-customer/service-subscriptions/service-subscription/bgb-service-type/service-instances' `" />-->\r
111                             <!--<parameter name="start[0]" value="`'/business/customers/customer/la-customer/service-subscriptions/service-subscription/la-service-type/service-instances' `" />-->\r
112                             <parameter name="start_length" value="1" />\r
113                             <parameter name="query" value="/query/vfModule-fromServiceInstance" />\r
114                             <!--<parameter name="query" value="/query/vnfs-fromServiceInstance" /> -->\r
115                             <outcome value='failure'>\r
116                                 <block>\r
117                                     <set>\r
118                                         <parameter name="error-message" value="Failed call to AAI custom query: vfModule-fromServiceInstance" />\r
119                                         <parameter name="serv-inst.api" value= ""/>\r
120                                         <parameter name='tmp.vf-module-ids_length' value='0' />\r
121                                         <parameter name='tmp.vnf-instances_length' value='0' />\r
122                                     </set>\r
123                                 </block>\r
124                             </outcome>\r
125                             <outcome value='not-found'>\r
126                                 <block>\r
127                                     <set>\r
128                                         <parameter name="error-message" value="No vfModules returned from AAI: vfModule-fromService-instance" />\r
129                                         <parameter name="serv-inst.api" value= ""/>\r
130                                     </set>\r
131                                 </block>\r
132                             </outcome>\r
133                             <outcome value='success'>\r
134                                 <block>\r
135                                     <for index='vfModuleResultIndex' start='0' end='`$tmp.AnAI-data.vf-module-ids.results_length`' >\r
136                                         <set>\r
137                                             <parameter name="`'tmp.vf-module-ids[' + $vfModuleResultIndex + ']'`" value='`$tmp.AnAI-data.vf-module-ids.results[$vfModuleResultIndex].vf-module.vf-module-id`' />\r
138                                         </set>\r
139                                     </for>\r
140                                     <set>\r
141                                         <parameter name='tmp.vf-module-ids_length' value='`$tmp.AnAI-data.vf-module-ids.results_length`' />\r
142                                     </set>\r
143                                 </block>\r
144                             </outcome>\r
145                         </save>\r
146                         <set>\r
147                             <parameter name="tmp.triplet-list_length" value= "0" />\r
148                             <parameter name="tmp.tripletListIndex" value= "0" />\r
149                             <parameter name="tmp.vnf-instances_length" value= "0" />\r
150                             <parameter name="tmp.vnfInstancesIndex" value= "0" />\r
151                             <parameter name="tmp.mdsal-error-encountered" value= "false"/>\r
152                         </set>\r
153                         <for index='vfModuleIndex' start='0' end='`$tmp.vf-module-ids_length`' >\r
154                             <block>\r
155                                 <set>\r
156                                     <parameter name="tmp.vnf-url" value="`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[$vfModuleIndex]`" />\r
157                                 </set>\r
158                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
159                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-url`' />\r
160                                     <parameter name='restapiUser' value='`$prop.controller.user`' />\r
161                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
162                                     <parameter name='format' value='json' />\r
163                                     <parameter name='httpMethod' value='GET' />\r
164                                     <parameter name="responsePrefix" value="vnf-mdsal" />\r
165                                     <outcome value='failure'>\r
166                                         <block>\r
167                                             <set>\r
168                                                 <parameter name="error-message" value="Failed to read vnf info from MD-SAL" />\r
169                                                 <parameter name="serv-inst.api" value= ""/>\r
170                                                 <parameter name="tmp.mdsal-error-encountered" value= "true"/>\r
171                                             </set>\r
172                                         </block>\r
173                                     </outcome>\r
174                                     <outcome value='not-found'>\r
175                                         <block>\r
176                                             <set>\r
177                                                 <parameter name="error-message" value="Cannot find vnf info in MD-SAL" />\r
178                                                 <parameter name="serv-inst.api" value= ""/>\r
179                                                 <parameter name="tmp.mdsal-error-encountered" value= "true"/>\r
180                                             </set>\r
181                                         </block>\r
182                                     </outcome>\r
183                                     <outcome value='success'>\r
184                                         <block>\r
185                                             <set>\r
186                                                 <parameter name="`'tmp.vnf-instances[' + $tmp.vnfInstancesIndex + ']'`." value= '`$vnf-mdsal.vnf-list[0].`' />\r
187                                                 <parameter name="genericVnfIdFound" value= 'false' />\r
188                                             </set>\r
189                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
190                                                 <parameter name="logger" value="message-log"/>\r
191                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
192                                                 <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MDSAL vnf-instances vnf-id|generic-vnf-id: "/>\r
193                                                 <parameter name="field3" value='`$tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.vnf-id`' />\r
194                                                 <parameter name="field4" value='`$tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.generic-vnf-id`' />\r
195                                             </record>\r
196                                             <for index='tmp.tripletListIndex2' start='0' end='`$tmp.triplet-list_length`' >\r
197                                                 <switch test='`$tmp.triplet-list[$tmp.tripletListIndex2].generic-vnf-id == $tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.generic-vnf-id`'>\r
198                                                     <outcome value='false'></outcome>\r
199                                                     <outcome value='true'>\r
200                                                         <set>\r
201                                                             <parameter name="genericVnfIdFound" value= 'true' />\r
202                                                         </set>\r
203                                                     </outcome>\r
204                                                 </switch>\r
205                                             </for>\r
206                                             <switch test='`$genericVnfIdFound`'>\r
207                                                 <outcome value='false'>\r
208                                                     <block>\r
209                                                         <set>\r
210                                                             <parameter name="`'tmp.triplet-list[' + $tmp.tripletListIndex + '].generic-vnf-id'`" value= '`$vnf-mdsal.vnf-list[0].service-data.vnf-request-information.generic-vnf-id`' />\r
211                                                             <parameter name="`'tmp.triplet-list[' + $tmp.tripletListIndex + '].vf-module-id'`" value= '`$tmp.vf-module-ids[$vfModuleIndex]`' />\r
212                                                             <parameter name="tmp.triplet-list_length" value= '`$tmp.triplet-list_length + 1`'/>\r
213                                                             <parameter name="tmp.tripletListIndex" value= '`$tmp.tripletListIndex + 1`'/>\r
214                                                         </set>\r
215                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
216                                                             <parameter name="logger" value="message-log"/>\r
217                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
218                                                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: generic-vnf-id in NOT found in triplet-list, add it"/>\r
219                                                         </record>\r
220                                                     </block>\r
221                                                 </outcome>\r
222                                                 <outcome value='true'>\r
223                                                     <block>\r
224                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
225                                                             <parameter name="logger" value="message-log"/>\r
226                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
227                                                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: generic-vnf-id is already in triplet-list, don't add it"/>\r
228                                                         </record>\r
229                                                     </block>\r
230                                                 </outcome>\r
231                                             </switch>\r
232                                             <set>\r
233                                                 <parameter name="tmp.vnfInstancesIndex" value= '`$tmp.vnfInstancesIndex + 1`'/>\r
234                                                 <parameter name="tmp.vnf-instances_length" value= '`$tmp.vnf-instances_length + 1`'/>\r
235                                             </set>\r
236                                         </block>\r
237                                     </outcome>\r
238                                 </execute>\r
239                             </block>\r
240                         </for>\r
241                         <switch test='`$tmp.mdsal-error-encountered`'>\r
242                             <outcome value='false'>\r
243                                 <block>\r
244                                     <for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\r
245                                         <block>\r
246                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
247                 resource="generic-vnf"\r
248         key="generic-vnf.vnf-id = $tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id"\r
249         pfx='aai.generic-vnf' local-only='false' >\r
250                                                 <outcome value='success'>\r
251                                                     <switch test='`$aai.generic-vnf.model-customization-id`'>\r
252                                                         <outcome value=''>\r
253                                                             <block>\r
254                                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
255                                                                     <parameter name="logger" value="message-log"/>\r
256                                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
257                                                                     <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: model-customization-id is BLANK for vf-module-id|generic-vnf-id: "/>\r
258                                                                     <parameter name="field3" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
259                                                                     <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
260                                                                 </record>\r
261                                                             </block>\r
262                                                         </outcome>\r
263                                                         <outcome value='Other'>\r
264                                                             <block>\r
265                                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
266                                                                     <parameter name="logger" value="message-log"/>\r
267                                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
268                                                                     <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Set model-customization-id for vf-module-id|generic-vnf-id: "/>\r
269                                                                     <parameter name="field3" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
270                                                                     <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
271                                                                     <parameter name="field5" value='`$aai.generic-vnf.model-customization-id`'/>\r
272                                                                 </record>\r
273                                                                 <set>\r
274                                                                     <parameter name="`'tmp.triplet-list[' + $tmp.tripletListIndex + '].model-customization-id'`" value= '`$aai.generic-vnf.model-customization-id`' />\r
275                                                                 </set>\r
276                                                             </block>\r
277                                                         </outcome>\r
278                                                     </switch>\r
279                                                 </outcome>\r
280                                                 <outcome value='not-found'>\r
281                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
282                                                         <parameter name="logger" value="message-log"/>\r
283                                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
284                                                         <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: generic-vnf not found in AAI for generic-vnf-id: "/>\r
285                                                         <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
286                                                     </record>\r
287                                                 </outcome>\r
288                                                 <outcome value='Other'>\r
289                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
290                                                         <parameter name="logger" value="message-log"/>\r
291                                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
292                                                         <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: unable to access AAI for generic-vnf-id: "/>\r
293                                                         <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
294                                                     </record>\r
295                                                 </outcome>\r
296                                             </get-resource>\r
297                                         </block>\r
298                                     </for>\r
299                                 </block>\r
300                             </outcome>\r
301                             <outcome value='true'>\r
302                                 <block></block>\r
303                             </outcome>\r
304                         </switch>\r
305                         <block>\r
306                             <for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\r
307                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
308                                     <parameter name="logger" value="message-log"/>\r
309                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
310                                     <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: PRINT triplet-list | vf-module-id:generic-vnf-id:model-customization-id | "/>\r
311                                     <parameter name="field3" value='`$tmp.tripletListIndex`'/>\r
312                                     <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
313                                     <parameter name="field5" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
314                                     <parameter name="field6" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>\r
315                                 </record>\r
316                             </for>\r
317                         </block>\r
318                         <for index='vnfIdIndex' start='0' end='`$vnf-ids_length`' >\r
319                             <block>\r
320                                 <for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\r
321                                     <block>\r
322                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
323                                             <parameter name="logger" value="message-log"/>\r
324                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
325                                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: vnfIdIndex:id | tripletListIndex:model-customization-id | : "/>\r
326                                             <parameter name="field3" value='`$vnfIdIndex`'/>\r
327                                             <parameter name="field4" value='`$vnf-ids[$vnfIdIndex]`'/>\r
328                                             <parameter name="field5" value='`$tmp.tripletListIndex`'/>\r
329                                             <parameter name="field6" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>\r
330                                         </record>\r
331                                         <switch test='`$vnf-ids[$vnfIdIndex] == $tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'>\r
332                                             <outcome value='true'>\r
333                                                 <block>\r
334                                                     <for index='vnfInstanceIndex' start='0' end='`$tmp.vnf-instances_length`' >\r
335                                                         <block>\r
336                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
337                                                                 <parameter name="logger" value="message-log"/>\r
338                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
339                                                                 <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: vnfIdIndex:id | vnfInstanceIndex:id | : "/>\r
340                                                                 <parameter name="field3" value='`$vnfIdIndex`'/>\r
341                                                                 <parameter name="field4" value='`$vnf-ids[$vnfIdIndex]`'/>\r
342                                                                 <parameter name="field5" value='`$vnfInstanceIndex`'/>\r
343                                                                 <parameter name="field6" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`'/>\r
344                                                             </record>\r
345                                                             <switch test='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id == $tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'>\r
346                                                                 <outcome value='true'>\r
347                                                                     <block>\r
348                                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
349                                                                             <parameter name="logger" value="message-log"/>\r
350                                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
351                                                                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MATCH for vnf-instances.vnf-id and triplet-list.vf-module-id: "/>\r
352                                                                             <parameter name="field3" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
353                                                                         </record>\r
354                                                                         <switch test='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length > 0`'>\r
355                                                                             <outcome value='true'>\r
356                                                                                 <for index='vnfNetworksIndex' start='0' end='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length`' >\r
357                                                                                     <block>\r
358                                                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
359                                                                                             <parameter name="logger" value="message-log"/>\r
360                                                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
361                                                                                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MATCH for vnf-id and vnf-instances for vnf-id: "/>\r
362                                                                                             <parameter name="field3" value='`$vnf-ids[$vnfIdIndex]`'/>\r
363                                                                                             <parameter name="field4" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfnetworksIndex].`'/>\r
364                                                                                         </record>\r
365                                                                                         <set>\r
366                                                                                             <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-name" value= "`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-name`"/>\r
367                                                                                             <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-role" value= "`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-role`"/>\r
368                                                                                             <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].vf-module-id" value= "`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`"/>\r
369                                                                                             <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list_length" value= '`$vnfNetworksIndex + 1`'/>\r
370                                                                                         </set>\r
371                                                                                     </block>\r
372                                                                                 </for>\r
373                                                                             </outcome>\r
374                                                                             <outcome value='false'>\r
375                                                                                 <block>\r
376                                                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
377                                                                                         <parameter name="logger" value="message-log"/>\r
378                                                                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
379                                                                                         <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: No vnf-networks found for vnf-id: "/>\r
380                                                                                         <parameter name="field3" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`' />\r
381                                                                                     </record>\r
382                                                                                     <set>\r
383                                                                                         <parameter name='`tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length' value="0" />\r
384                                                                                     </set>\r
385                                                                                 </block>\r
386                                                                             </outcome>\r
387                                                                         </switch>\r
388                                                                         <set>\r
389                                                                             <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-id" value= "`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`"/>\r
390                                                                         </set>\r
391                                                                         <set>\r
392                                                                             <parameter name="vnfListIndex" value= '`$vnfListIndex + 1`'/>\r
393                                                                         </set>\r
394                                                                     </block>\r
395                                                                 </outcome>\r
396                                                                 <outcome value='false'></outcome>\r
397                                                             </switch>\r
398                                                         </block>\r
399                                                     </for>\r
400                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
401                                                         <parameter name="logger" value="message-log"/>\r
402                                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
403                                                         <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MATCH for input vnf-id and triplet-list.model-customizaiton-id: "/>\r
404                                                         <parameter name="field3" value='`$vnf-ids[$vnfIdIndex]`'/>\r
405                                                     </record>\r
406                                                 </block>\r
407                                             </outcome>\r
408                                             <outcome value='false'></outcome>\r
409                                         </switch>\r
410                                     </block>\r
411                                 </for>\r
412                             </block>\r
413                         </for>\r
414                     </block>\r
415                 </outcome>\r
416                 <outcome value='COMPOSITE'>\r
417                     <block>\r
418                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
419                             <parameter name="logger" value="message-log"/>\r
420                             <parameter name="field1" value="__TIMESTAMP__"/>\r
421                             <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Call AAI custom query vfModule-fromServiceInstance to get vf-module-ids"/>\r
422                         </record>\r
423                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
424       resource="custom-query"\r
425       key="format = 'resource'"\r
426       force="true"\r
427       local-only="false"\r
428       pfx="tmp.AnAI-data.vf-module-ids">\r
429                             <parameter name="start[0]" value="`'/nodes/service-instances/service-instance?service-instance-id=' + $serv-inst.service-instance-id `" />\r
430                             <!--<parameter name="start[0]" value="`'/business/customers/customer/bgb-customer/service-subscriptions/service-subscription/bgb-service-type/service-instances' `" />-->\r
431                             <!--<parameter name="start[0]" value="`'/business/customers/customer/la-customer/service-subscriptions/service-subscription/la-service-type/service-instances' `" />-->\r
432                             <parameter name="start_length" value="1" />\r
433                             <parameter name="query" value="/query/vfModule-fromServiceInstance" />\r
434                             <!--<parameter name="query" value="/query/vnfs-fromServiceInstance" /> -->\r
435                             <outcome value='failure'>\r
436                                 <block>\r
437                                     <set>\r
438                                         <parameter name="error-message" value="Failed call to AAI custom query: vfModule-fromServiceInstance" />\r
439                                         <parameter name="serv-inst.api" value= ""/>\r
440                                         <parameter name='tmp.vf-module-ids_length' value='0' />\r
441                                         <parameter name='tmp.vnf-instances_length' value='0' />\r
442                                     </set>\r
443                                 </block>\r
444                             </outcome>\r
445                             <outcome value='not-found'>\r
446                                 <block>\r
447                                     <set>\r
448                                         <parameter name="error-message" value="No vfModules returned from AAI: vfModule-fromService-instance" />\r
449                                         <parameter name="serv-inst.api" value= ""/>\r
450                                     </set>\r
451                                 </block>\r
452                             </outcome>\r
453                             <outcome value='success'>\r
454                                 <block>\r
455                                     <for index='vfModuleResultIndex' start='0' end='`$tmp.AnAI-data.vf-module-ids.results_length`' >\r
456                                         <set>\r
457                                             <parameter name="`'tmp.vf-module-ids[' + $vfModuleResultIndex + ']'`" value='`$tmp.AnAI-data.vf-module-ids.results[$vfModuleResultIndex].vf-module.vf-module-id`' />\r
458                                         </set>\r
459                                     </for>\r
460                                     <set>\r
461                                         <parameter name='tmp.vf-module-ids_length' value='`$tmp.AnAI-data.vf-module-ids.results_length`' />\r
462                                     </set>\r
463                                 </block>\r
464                             </outcome>\r
465                         </save>\r
466                         <for index='vfModuleIndex' start='0' end='`$tmp.vf-module-ids_length`' >\r
467                             <block>\r
468                                 <set>\r
469                                     <parameter name="tmp.vnf-url" value="`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[$vfModuleIndex]`" />\r
470                                 </set>\r
471                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
472                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-url`' />\r
473                                     <parameter name='restapiUser' value='`$prop.controller.user`' />\r
474                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
475                                     <parameter name='format' value='json' />\r
476                                     <parameter name='httpMethod' value='GET' />\r
477                                     <parameter name="responsePrefix" value="vnf-mdsal" />\r
478                                     <outcome value='failure'>\r
479                                         <block atomic="true">\r
480                                             <set>\r
481                                                 <parameter name="error-message" value="Failed to read vnf info from MD-SAL" />\r
482                                                 <parameter name="serv-inst.api" value= ""/>\r
483                                             </set>\r
484                                         </block>\r
485                                     </outcome>\r
486                                     <outcome value='not-found'>\r
487                                         <block atomic="true">\r
488                                             <set>\r
489                                                 <parameter name="error-message" value="Cannot find vnf info in MD-SAL" />\r
490                                                 <parameter name="serv-inst.api" value= ""/>\r
491                                             </set>\r
492                                         </block>\r
493                                     </outcome>\r
494                                     <outcome value='success'>\r
495                                         <block>\r
496                                             <set>\r
497                                                 <parameter name="`'tmp.vnf-instances[0]'`." value= '`$vnf-mdsal.vnf-list[0].`' />\r
498                                             </set>\r
499                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
500                                                 <parameter name="logger" value="message-log"/>\r
501                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
502                                                 <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MDSAL vnf-instances vnf-id: "/>\r
503                                                 <parameter name="field3" value='`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`' />\r
504                                             </record>\r
505                                         </block>\r
506                                     </outcome>\r
507                                 </execute>\r
508                                 <switch test='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length > 0`'>\r
509                                     <outcome value='true'>\r
510                                         <for index='vnfNetworksIndex' start='0' end='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length`' >\r
511                                             <block>\r
512                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
513                                                     <parameter name="logger" value="message-log"/>\r
514                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
515                                                     <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: copy vnf-instance data to output: "/>\r
516                                                     <parameter name="field3" value='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfnetworksIndex].`'/>\r
517                                                 </record>\r
518                                                 <set>\r
519                                                     <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-name" value= "`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-name`"/>\r
520                                                     <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-role" value= "`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-role`"/>\r
521                                                     <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].vf-module-id" value= "`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`"/>\r
522                                                     <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list_length" value= '`$vnfNetworksIndex + 1`'/>\r
523                                                 </set>\r
524                                             </block>\r
525                                         </for>\r
526                                     </outcome>\r
527                                     <outcome value='false'>\r
528                                         <block>\r
529                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
530                                                 <parameter name="logger" value="message-log"/>\r
531                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
532                                                 <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: No vnf-networks found for vnf-id: "/>\r
533                                                 <parameter name="field3" value='`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`' />\r
534                                             </record>\r
535                                             <set>\r
536                                                 <parameter name='`tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length' value="0" />\r
537                                             </set>\r
538                                         </block>\r
539                                     </outcome>\r
540                                 </switch>\r
541                                 <set>\r
542                                     <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-id" value= "`$vnf-mdsal.vnf-list[0].service-data.vnf-request-information.generic-vnf-id`"/>\r
543                                 </set>\r
544                                 <set>\r
545                                     <parameter name="vnfListIndex" value= '`$vnfListIndex + 1`'/>\r
546                                 </set>\r
547                             </block>\r
548                         </for>\r
549                     </block>\r
550                 </outcome>\r
551             </switch>\r
552             <set>\r
553                 <parameter name="serv-inst.service-instance-id" value= "`$serv-inst.service-instance-id`"/>\r
554                 <parameter name="serv-inst.vnf-list_length" value= "`$vnfListIndex`"/>\r
555             </set>\r
556             <switch test='`$serv-inst.vnf-list_length > 0`'>\r
557                 <outcome value='true'>\r
558                     <set>\r
559                         <parameter name="serv-inst.api" value= "VNF"/>\r
560                     </set>\r
561                 </outcome>\r
562             </switch>\r
563             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
564                 <parameter name='filename' value='/var/tmp/getpathsegment-populate-from-vnfapi-output.log' />\r
565             </execute>\r
566             <return status='success'></return>\r
567         </block>\r
568     </method>\r
569 </service-logic>