DG enhancement for El Alto
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.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='self-serve-unresolved-composite-data' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test='`$ss.capability-name`'>\r
7                 <outcome value=''>\r
8                     <return status="failure">\r
9                         <parameter name="ack-final" value="Y" />\r
10                         <parameter name="error-code" value="500"/>\r
11                         <parameter name="error-message" value="ss.capability-name is null" />\r
12                     </return>\r
13                 </outcome>\r
14             </switch>\r
15             <switch test='`$ss.capability-action`'>\r
16                 <outcome value=''>\r
17                     <return status="failure">\r
18                         <parameter name="ack-final" value="Y" />\r
19                         <parameter name="error-code" value="500"/>\r
20                         <parameter name="error-message" value="ss.capability-action is null" />\r
21                     </return>\r
22                 </outcome>\r
23             </switch>\r
24             <switch test='`$ss.capability-type`'>\r
25                 <outcome value=''>\r
26                     <return status="failure">\r
27                         <parameter name="ack-final" value="Y" />\r
28                         <parameter name="error-code" value="500"/>\r
29                         <parameter name="error-message" value="ss.capability-type is null" />\r
30                     </return>\r
31                 </outcome>\r
32                 <outcome value='vnf'>\r
33                     <for silentFailure='true' index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
34                         <set>\r
35                             <parameter name='tmp.ss.param.capability-name' \r
36         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\r
37                         </set>\r
38                         <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
39                             <outcome value='true'>\r
40                                 <block atomic='true'>\r
41                                     <set>\r
42                                         <parameter name='tmp.ss.composite' \r
43         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value`' />\r
44                                     </set>\r
45                                     <switch test="`$tmp.ss.composite == ''`">\r
46                                         <outcome value='false'>\r
47                                             <block atomic='true'>\r
48                                                 <set>\r
49                                                     <parameter name='tmp.ss.final.resolved-value' value="" />\r
50                                                     <parameter name='tmp.ss.final.resolved-value.end' value="" />\r
51                                                 </set>\r
52                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\r
53                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
54                                                     <parameter name="target" value="["/>\r
55                                                     <outcome value='true'>\r
56                                                         <set>\r
57                                                             <parameter name='tmp.ss.final.resolved-value' value="[" />\r
58                                                             <parameter name='tmp.ss.final.resolved-value.end' value="]" />\r
59                                                         </set>\r
60                                                     </outcome>\r
61                                                 </execute>\r
62                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
63                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
64                                                     <parameter name="target" value="["/>\r
65                                                     <parameter name="replacement" value=""/>\r
66                                                     <parameter name="outputPath" value="tmp.ss.composite"/>\r
67                                                 </execute>\r
68                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
69                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
70                                                     <parameter name="target" value="]"/>\r
71                                                     <parameter name="replacement" value=""/>\r
72                                                     <parameter name="outputPath" value="tmp.ss.composite"/>\r
73                                                 </execute>\r
74                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
75                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
76                                                     <parameter name="outputPath" value="tmp.ss.composite"/>\r
77                                                 </execute>\r
78                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
79                                                     <parameter name="logger" value="message-log"/>\r
80                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
81                                                     <parameter name="field2" value="`'SS: tmp.ss.composite: ' + $tmp.ss.composite`"/>\r
82                                                 </record>\r
83                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
84                                                     <parameter name="original_string" value="`$tmp.ss.composite`" />\r
85                                                     <parameter name="regex" value=","/>\r
86                                                     <parameter name="ctx_memory_result_key" value="comma-splits" />\r
87                                                 </execute>\r
88                                                 <for silentFailure='true' index="comma-splits-index" start="0" end="`$comma-splits_length`">\r
89                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
90                                                         <parameter name="source" value="`$comma-splits[$comma-splits-index]`" />\r
91                                                         <parameter name="outputPath" value="tmp.ss.composite.trim"/>\r
92                                                     </execute>\r
93                                                     <set>\r
94                                                         <parameter name='tmp.ss.param-prefix' value='' />\r
95                                                         <parameter name='tmp.ss.param-suffix' value='' />\r
96                                                     </set>\r
97                                                     <block>\r
98                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
99                                                             <parameter name="original_string" value="`$tmp.ss.composite.trim`" />\r
100                                                             <parameter name="regex" value="\$"/>\r
101                                                             <parameter name="ctx_memory_result_key" value="dollar-splits" />\r
102                                                         </execute>\r
103                                                         <set>\r
104                                                             <parameter name='tmp.ss.param-prefix' value='`$dollar-splits[0]`' />\r
105                                                         </set>\r
106                                                         <set>\r
107                                                             <parameter name='tmp.ss.final.composite-resolved-value' value='' />\r
108                                                         </set>\r
109                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
110                                                             <parameter name="source" value="`$tmp.ss.param-prefix`" />\r
111                                                             <parameter name="outputPath" value="tmp.ss.param-prefix"/>\r
112                                                         </execute>\r
113                                                         <switch test='`$dollar-splits_length == 1`'>\r
114                                                             <outcome value='true'>\r
115                                                                 <set>\r
116                                                                     <parameter name='tmp.ss.final.composite-resolved-value' \r
117         value="`$tmp.ss.param-prefix`" />\r
118                                                                 </set>\r
119                                                             </outcome>\r
120                                                         </switch>\r
121                                                         <for silentFailure='true' index="dollar-splits-index" start="1" end="`$dollar-splits_length`">\r
122                                                             <set>\r
123                                                                 <parameter name='tmp.ss.partial.resolved-value' value="`'$' + $dollar-splits[$dollar-splits-index]`" />\r
124                                                             </set>\r
125                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\r
126                                                                 <parameter name="source" value="`$dollar-splits[$dollar-splits-index]`" />\r
127                                                                 <parameter name="target" value="{"/>\r
128                                                                 <outcome value='true'>\r
129                                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
130                                                                         <parameter name="source" value="`$dollar-splits[$dollar-splits-index]`" />\r
131                                                                         <parameter name="target" value="{"/>\r
132                                                                         <parameter name="replacement" value=""/>\r
133                                                                         <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
134                                                                     </execute>\r
135                                                                 </outcome>\r
136                                                                 <outcome value='false'>\r
137                                                                     <set>\r
138                                                                         <parameter name='tmp.ss.partial.composite-value' value='`$dollar-splits[$dollar-splits-index]`' />\r
139                                                                     </set>\r
140                                                                 </outcome>\r
141                                                             </execute>\r
142                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='endsWith' emitsOutcome='true' >\r
143                                                                 <parameter name="source" value="`$tmp.ss.partial.composite-value`" />\r
144                                                                 <parameter name="target" value="}"/>\r
145                                                                 <outcome value='true'>\r
146                                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
147                                                                         <parameter name="source" value="`$tmp.ss.partial.composite-value`" />\r
148                                                                         <parameter name="target" value="}"/>\r
149                                                                         <parameter name="replacement" value=""/>\r
150                                                                         <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
151                                                                     </execute>\r
152                                                                 </outcome>\r
153                                                                 <outcome value='false'>\r
154                                                                     <block>\r
155                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
156                                                                             <parameter name="original_string" value="`$tmp.ss.partial.composite-value`" />\r
157                                                                             <parameter name="regex" value="\}"/>\r
158                                                                             <parameter name="ctx_memory_result_key" value="end-curly-splits" />\r
159                                                                         </execute>\r
160                                                                         <set>\r
161                                                                             <parameter name='tmp.ss.partial.composite-value' value='`$end-curly-splits[0]`' />\r
162                                                                         </set>\r
163                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
164                                                                             <parameter name="source" value="`$tmp.ss.partial.composite-value`" />\r
165                                                                             <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
166                                                                         </execute>\r
167                                                                         <set>\r
168                                                                             <parameter name='tmp.ss.param-suffix' value='`$end-curly-splits[1]`' />\r
169                                                                         </set>\r
170                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
171                                                                             <parameter name="source" value="`$tmp.ss.param-suffix`" />\r
172                                                                             <parameter name="outputPath" value="tmp.ss.param-suffix"/>\r
173                                                                         </execute>\r
174                                                                         <set>\r
175                                                                             <parameter name='tmp.ss.partial.resolved-value' value="`'${' + $tmp.ss.partial.composite-value + '}'`" />\r
176                                                                         </set>\r
177                                                                     </block>\r
178                                                                 </outcome>\r
179                                                             </execute>\r
180                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
181                                                                 <parameter name="logger" value="message-log"/>\r
182                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
183                                                                 <parameter name="field2" value="`'SS: tmp.ss.partial.composite-value: ' + $tmp.ss.partial.composite-value`"/>\r
184                                                             </record>\r
185                                                             <switch test='`$ss.capability-type`'>\r
186                                                                 <outcome value='vnf'>\r
187                                                                     <for silentFailure='true' index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
188                                                                         <set>\r
189                                                                             <parameter name='tmp.ss.param-name' \r
190         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`' />\r
191                                                                         </set>\r
192                                                                         <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
193                                                                             <outcome value='true'>\r
194                                                                                 <block>\r
195                                                                                     <set>\r
196                                                                                         <parameter name='tmp.ss.partial.resolved-value' \r
197         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\r
198                                                                                     </set>\r
199                                                                                     <break/>\r
200                                                                                 </block>\r
201                                                                             </outcome>\r
202                                                                         </switch>\r
203                                                                     </for>\r
204                                                                 </outcome>\r
205                                                                 <outcome value='vf-module'>\r
206                                                                     <for silentFailure='true' index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
207                                                                         <set>\r
208                                                                             <parameter name='tmp.ss.param-name' \r
209         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`' />\r
210                                                                         </set>\r
211                                                                         <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
212                                                                             <outcome value='true'>\r
213                                                                                 <block>\r
214                                                                                     <set>\r
215                                                                                         <parameter name='tmp.ss.partial.resolved-value' \r
216         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\r
217                                                                                     </set>\r
218                                                                                     <break/>\r
219                                                                                 </block>\r
220                                                                             </outcome>\r
221                                                                         </switch>\r
222                                                                     </for>\r
223                                                                 </outcome>\r
224                                                             </switch>\r
225                                                             <set>\r
226                                                                 <parameter name='tmp.ss.partial.resolved-value' \r
227         value="`$tmp.ss.param-prefix + $tmp.ss.partial.resolved-value + $tmp.ss.param-suffix`" />\r
228                                                             </set>\r
229                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
230                                                                 <parameter name="logger" value="message-log"/>\r
231                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
232                                                                 <parameter name="field2" value="`'SS: tmp.ss.partial.resolved-value: ' + $tmp.ss.partial.resolved-value`"/>\r
233                                                             </record>\r
234                                                             <set>\r
235                                                                 <parameter name='tmp.ss.final.composite-resolved-value' \r
236         value="`$tmp.ss.final.composite-resolved-value + $tmp.ss.partial.resolved-value`" />\r
237                                                             </set>\r
238                                                         </for>\r
239                                                     </block>\r
240                                                     <switch test='`$comma-splits-index == 0`'>\r
241                                                         <outcome value='true'>\r
242                                                             <set>\r
243                                                                 <parameter name='tmp.ss.final.resolved-value' \r
244         value="`$tmp.ss.final.resolved-value + $tmp.ss.final.composite-resolved-value`" />\r
245                                                             </set>\r
246                                                         </outcome>\r
247                                                         <outcome value='false'>\r
248                                                             <set>\r
249                                                                 <parameter name='tmp.ss.final.resolved-value' \r
250         value="`$tmp.ss.final.resolved-value + ',' + $tmp.ss.final.composite-resolved-value`" />\r
251                                                             </set>\r
252                                                         </outcome>\r
253                                                     </switch>\r
254                                                 </for>\r
255                                                 <set>\r
256                                                     <parameter name='tmp.ss.final.resolved-value' \r
257         value='`$tmp.ss.final.resolved-value + $tmp.ss.final.resolved-value.end`' />\r
258                                                 </set>\r
259                                                 <switch test='`$ss.capability-type`'>\r
260                                                     <outcome value='vnf'>\r
261                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
262                                                             <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
263                                                             <parameter name="target" value="$"/>\r
264                                                             <outcome value='true'>\r
265                                                                 <block atomic='true'>\r
266                                                                     <set>\r
267                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
268                                                                     </set>\r
269                                                                     <return status='failure'>\r
270                                                                         <parameter name='error-code' value='500' />\r
271                                                                         <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
272                                                                     </return>\r
273                                                                 </block>\r
274                                                             </outcome>\r
275                                                             <outcome value='false'>\r
276                                                                 <set>\r
277                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' \r
278         value='`$tmp.ss.final.resolved-value`' />\r
279                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' \r
280         value='SUCCESS' />\r
281                                                                 </set>\r
282                                                             </outcome>\r
283                                                         </execute>\r
284                                                     </outcome>\r
285                                                     <outcome value='vf-module'>\r
286                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
287                                                             <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
288                                                             <parameter name="target" value="$"/>\r
289                                                             <outcome value='true'>\r
290                                                                 <block atomic='true'>\r
291                                                                     <set>\r
292                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
293                                                                     </set>\r
294                                                                     <return status='failure'>\r
295                                                                         <parameter name='error-code' value='500' />\r
296                                                                         <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
297                                                                     </return>\r
298                                                                 </block>\r
299                                                             </outcome>\r
300                                                             <outcome value='false'>\r
301                                                                 <set>\r
302                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
303         value='`$tmp.ss.final.resolved-value`' />\r
304                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
305         value='SUCCESS' />\r
306                                                                 </set>\r
307                                                             </outcome>\r
308                                                         </execute>\r
309                                                     </outcome>\r
310                                                 </switch>\r
311                                             </block>\r
312                                         </outcome>\r
313                                     </switch>\r
314                                 </block>\r
315                             </outcome>\r
316                         </switch>\r
317                     </for>\r
318                 </outcome>\r
319                 <outcome value='vf-module'>\r
320                     <for silentFailure='true' index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
321                         <set>\r
322                             <parameter name='tmp.ss.param.capability-name' \r
323         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
324                         </set>\r
325                         <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
326                             <outcome value='true'>\r
327                                 <block atomic='true'>\r
328                                     <set>\r
329                                         <parameter name='tmp.ss.composite' \r
330         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\r
331                                     </set>\r
332                                     <switch test="`$tmp.ss.composite == ''`">\r
333                                         <outcome value='false'>\r
334                                             <block atomic='true'>\r
335                                                 <set>\r
336                                                     <parameter name='tmp.ss.final.resolved-value' value="" />\r
337                                                     <parameter name='tmp.ss.final.resolved-value.end' value="" />\r
338                                                 </set>\r
339                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\r
340                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
341                                                     <parameter name="target" value="["/>\r
342                                                     <outcome value='true'>\r
343                                                         <set>\r
344                                                             <parameter name='tmp.ss.final.resolved-value' value="[" />\r
345                                                             <parameter name='tmp.ss.final.resolved-value.end' value="]" />\r
346                                                         </set>\r
347                                                     </outcome>\r
348                                                 </execute>\r
349                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
350                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
351                                                     <parameter name="target" value="["/>\r
352                                                     <parameter name="replacement" value=""/>\r
353                                                     <parameter name="outputPath" value="tmp.ss.composite"/>\r
354                                                 </execute>\r
355                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
356                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
357                                                     <parameter name="target" value="]"/>\r
358                                                     <parameter name="replacement" value=""/>\r
359                                                     <parameter name="outputPath" value="tmp.ss.composite"/>\r
360                                                 </execute>\r
361                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
362                                                     <parameter name="source" value="`$tmp.ss.composite`" />\r
363                                                     <parameter name="outputPath" value="tmp.ss.composite"/>\r
364                                                 </execute>\r
365                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
366                                                     <parameter name="logger" value="message-log"/>\r
367                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
368                                                     <parameter name="field2" value="`'SS: tmp.ss.composite: ' + $tmp.ss.composite`"/>\r
369                                                 </record>\r
370                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
371                                                     <parameter name="original_string" value="`$tmp.ss.composite`" />\r
372                                                     <parameter name="regex" value=","/>\r
373                                                     <parameter name="ctx_memory_result_key" value="comma-splits" />\r
374                                                 </execute>\r
375                                                 <for silentFailure='true' index="comma-splits-index" start="0" end="`$comma-splits_length`">\r
376                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
377                                                         <parameter name="source" value="`$comma-splits[$comma-splits-index]`" />\r
378                                                         <parameter name="outputPath" value="tmp.ss.composite.trim"/>\r
379                                                     </execute>\r
380                                                     <set>\r
381                                                         <parameter name='tmp.ss.param-prefix' value='' />\r
382                                                         <parameter name='tmp.ss.param-suffix' value='' />\r
383                                                     </set>\r
384                                                     <block>\r
385                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
386                                                             <parameter name="original_string" value="`$tmp.ss.composite.trim`" />\r
387                                                             <parameter name="regex" value="\$"/>\r
388                                                             <parameter name="ctx_memory_result_key" value="dollar-splits" />\r
389                                                         </execute>\r
390                                                         <set>\r
391                                                             <parameter name='tmp.ss.param-prefix' value='`$dollar-splits[0]`' />\r
392                                                         </set>\r
393                                                         <set>\r
394                                                             <parameter name='tmp.ss.final.composite-resolved-value' value='' />\r
395                                                         </set>\r
396                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
397                                                             <parameter name="source" value="`$tmp.ss.param-prefix`" />\r
398                                                             <parameter name="outputPath" value="tmp.ss.param-prefix"/>\r
399                                                         </execute>\r
400                                                         <switch test='`$dollar-splits_length == 1`'>\r
401                                                             <outcome value='true'>\r
402                                                                 <set>\r
403                                                                     <parameter name='tmp.ss.final.composite-resolved-value' \r
404         value="`$tmp.ss.param-prefix`" />\r
405                                                                 </set>\r
406                                                             </outcome>\r
407                                                         </switch>\r
408                                                         <for silentFailure='true' index="dollar-splits-index" start="1" end="`$dollar-splits_length`">\r
409                                                             <set>\r
410                                                                 <parameter name='tmp.ss.partial.resolved-value' value="`'$' + $dollar-splits[$dollar-splits-index]`" />\r
411                                                             </set>\r
412                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\r
413                                                                 <parameter name="source" value="`$dollar-splits[$dollar-splits-index]`" />\r
414                                                                 <parameter name="target" value="{"/>\r
415                                                                 <outcome value='true'>\r
416                                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
417                                                                         <parameter name="source" value="`$dollar-splits[$dollar-splits-index]`" />\r
418                                                                         <parameter name="target" value="{"/>\r
419                                                                         <parameter name="replacement" value=""/>\r
420                                                                         <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
421                                                                     </execute>\r
422                                                                 </outcome>\r
423                                                                 <outcome value='false'>\r
424                                                                     <set>\r
425                                                                         <parameter name='tmp.ss.partial.composite-value' value='`$dollar-splits[$dollar-splits-index]`' />\r
426                                                                     </set>\r
427                                                                 </outcome>\r
428                                                             </execute>\r
429                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='endsWith' emitsOutcome='true' >\r
430                                                                 <parameter name="source" value="`$tmp.ss.partial.composite-value`" />\r
431                                                                 <parameter name="target" value="}"/>\r
432                                                                 <outcome value='true'>\r
433                                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
434                                                                         <parameter name="source" value="`$tmp.ss.partial.composite-value`" />\r
435                                                                         <parameter name="target" value="}"/>\r
436                                                                         <parameter name="replacement" value=""/>\r
437                                                                         <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
438                                                                     </execute>\r
439                                                                 </outcome>\r
440                                                                 <outcome value='false'>\r
441                                                                     <block>\r
442                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
443                                                                             <parameter name="original_string" value="`$tmp.ss.partial.composite-value`" />\r
444                                                                             <parameter name="regex" value="\}"/>\r
445                                                                             <parameter name="ctx_memory_result_key" value="end-curly-splits" />\r
446                                                                         </execute>\r
447                                                                         <set>\r
448                                                                             <parameter name='tmp.ss.partial.composite-value' value='`$end-curly-splits[0]`' />\r
449                                                                         </set>\r
450                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
451                                                                             <parameter name="source" value="`$tmp.ss.partial.composite-value`" />\r
452                                                                             <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
453                                                                         </execute>\r
454                                                                         <set>\r
455                                                                             <parameter name='tmp.ss.param-suffix' value='`$end-curly-splits[1]`' />\r
456                                                                         </set>\r
457                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
458                                                                             <parameter name="source" value="`$tmp.ss.param-suffix`" />\r
459                                                                             <parameter name="outputPath" value="tmp.ss.param-suffix"/>\r
460                                                                         </execute>\r
461                                                                         <set>\r
462                                                                             <parameter name='tmp.ss.partial.resolved-value' value="`'${' + $tmp.ss.partial.composite-value + '}'`" />\r
463                                                                         </set>\r
464                                                                     </block>\r
465                                                                 </outcome>\r
466                                                             </execute>\r
467                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
468                                                                 <parameter name="logger" value="message-log"/>\r
469                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
470                                                                 <parameter name="field2" value="`'SS: tmp.ss.partial.composite-value: ' + $tmp.ss.partial.composite-value`"/>\r
471                                                             </record>\r
472                                                             <switch test='`$ss.capability-type`'>\r
473                                                                 <outcome value='vnf'>\r
474                                                                     <for silentFailure='true' index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
475                                                                         <set>\r
476                                                                             <parameter name='tmp.ss.param-name' \r
477         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`' />\r
478                                                                         </set>\r
479                                                                         <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
480                                                                             <outcome value='true'>\r
481                                                                                 <block>\r
482                                                                                     <set>\r
483                                                                                         <parameter name='tmp.ss.partial.resolved-value' \r
484         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\r
485                                                                                     </set>\r
486                                                                                     <break/>\r
487                                                                                 </block>\r
488                                                                             </outcome>\r
489                                                                         </switch>\r
490                                                                     </for>\r
491                                                                 </outcome>\r
492                                                                 <outcome value='vf-module'>\r
493                                                                     <for silentFailure='true' index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
494                                                                         <set>\r
495                                                                             <parameter name='tmp.ss.param-name' \r
496         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`' />\r
497                                                                         </set>\r
498                                                                         <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
499                                                                             <outcome value='true'>\r
500                                                                                 <block>\r
501                                                                                     <set>\r
502                                                                                         <parameter name='tmp.ss.partial.resolved-value' \r
503         value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\r
504                                                                                     </set>\r
505                                                                                     <break/>\r
506                                                                                 </block>\r
507                                                                             </outcome>\r
508                                                                         </switch>\r
509                                                                     </for>\r
510                                                                 </outcome>\r
511                                                             </switch>\r
512                                                             <set>\r
513                                                                 <parameter name='tmp.ss.partial.resolved-value' \r
514         value="`$tmp.ss.param-prefix + $tmp.ss.partial.resolved-value + $tmp.ss.param-suffix`" />\r
515                                                             </set>\r
516                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
517                                                                 <parameter name="logger" value="message-log"/>\r
518                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
519                                                                 <parameter name="field2" value="`'SS: tmp.ss.partial.resolved-value: ' + $tmp.ss.partial.resolved-value`"/>\r
520                                                             </record>\r
521                                                             <set>\r
522                                                                 <parameter name='tmp.ss.final.composite-resolved-value' \r
523         value="`$tmp.ss.final.composite-resolved-value + $tmp.ss.partial.resolved-value`" />\r
524                                                             </set>\r
525                                                         </for>\r
526                                                     </block>\r
527                                                     <switch test='`$comma-splits-index == 0`'>\r
528                                                         <outcome value='true'>\r
529                                                             <set>\r
530                                                                 <parameter name='tmp.ss.final.resolved-value' \r
531         value="`$tmp.ss.final.resolved-value + $tmp.ss.final.composite-resolved-value`" />\r
532                                                             </set>\r
533                                                         </outcome>\r
534                                                         <outcome value='false'>\r
535                                                             <set>\r
536                                                                 <parameter name='tmp.ss.final.resolved-value' \r
537         value="`$tmp.ss.final.resolved-value + ',' + $tmp.ss.final.composite-resolved-value`" />\r
538                                                             </set>\r
539                                                         </outcome>\r
540                                                     </switch>\r
541                                                 </for>\r
542                                                 <set>\r
543                                                     <parameter name='tmp.ss.final.resolved-value' \r
544         value='`$tmp.ss.final.resolved-value + $tmp.ss.final.resolved-value.end`' />\r
545                                                 </set>\r
546                                                 <switch test='`$ss.capability-type`'>\r
547                                                     <outcome value='vnf'>\r
548                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
549                                                             <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
550                                                             <parameter name="target" value="$"/>\r
551                                                             <outcome value='true'>\r
552                                                                 <block atomic='true'>\r
553                                                                     <set>\r
554                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
555                                                                     </set>\r
556                                                                     <return status='failure'>\r
557                                                                         <parameter name='error-code' value='500' />\r
558                                                                         <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
559                                                                     </return>\r
560                                                                 </block>\r
561                                                             </outcome>\r
562                                                             <outcome value='false'>\r
563                                                                 <set>\r
564                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' \r
565         value='`$tmp.ss.final.resolved-value`' />\r
566                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' \r
567         value='SUCCESS' />\r
568                                                                 </set>\r
569                                                             </outcome>\r
570                                                         </execute>\r
571                                                     </outcome>\r
572                                                     <outcome value='vf-module'>\r
573                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
574                                                             <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
575                                                             <parameter name="target" value="$"/>\r
576                                                             <outcome value='true'>\r
577                                                                 <block atomic='true'>\r
578                                                                     <set>\r
579                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
580                                                                     </set>\r
581                                                                     <return status='failure'>\r
582                                                                         <parameter name='error-code' value='500' />\r
583                                                                         <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
584                                                                     </return>\r
585                                                                 </block>\r
586                                                             </outcome>\r
587                                                             <outcome value='false'>\r
588                                                                 <set>\r
589                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
590         value='`$tmp.ss.final.resolved-value`' />\r
591                                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
592         value='SUCCESS' />\r
593                                                                 </set>\r
594                                                             </outcome>\r
595                                                         </execute>\r
596                                                     </outcome>\r
597                                                 </switch>\r
598                                             </block>\r
599                                         </outcome>\r
600                                     </switch>\r
601                                 </block>\r
602                             </outcome>\r
603                         </switch>\r
604                     </for>\r
605                 </outcome>\r
606             </switch>\r
607             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
608                 <parameter name='filename' value='/var/tmp/ss-composite.log' />\r
609             </execute>\r
610         </block>\r
611     </method>\r
612 </service-logic>