Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-capability-param-resolution.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-capability-param-resolution' mode='sync'>\r
5         <block atomic='true'>\r
6             <switch test="`$ss.capability-type`">\r
7                 <outcome value='vnf'>\r
8                     <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
9                         <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\r
10                             <outcome value='true'>\r
11                                 <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\r
12                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
13                                         <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
14                                         <parameter name="target" value="$"/>\r
15                                         <outcome value='true'>\r
16                                             <block atomic='true'>\r
17                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
18                                                     <parameter name="logger" value="message-log"/>\r
19                                                     <parameter name="field1" value="`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`"/>\r
20                                                 </record>\r
21                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
22                                                     <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
23                                                     <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />\r
24                                                     <parameter name='regex' value='\$\{' />\r
25                                                 </execute>\r
26                                                 <set>\r
27                                                     <parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>\r
28                                                     <parameter name="tmp.resolved.var.value" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>\r
29                                                 </set>\r
30                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
31                                                     <parameter name='ctx_memory_result_key' value='s2' />\r
32                                                     <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
33                                                     <parameter name='regex' value='\}' />\r
34                                                 </execute>\r
35                                                 <switch test='`$s2_length`'>\r
36                                                     <outcome value='1'>\r
37                                                         <set>\r
38                                                             <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
39                                                         </set>\r
40                                                     </outcome>\r
41                                                     <outcome value='2'>\r
42                                                         <block>\r
43                                                             <set>\r
44                                                                 <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
45                                                             </set>\r
46                                                             <set>\r
47                                                                 <parameter name="tmp.s2.s2" value='`$s2[1]`'/>\r
48                                                             </set>\r
49                                                         </block>\r
50                                                     </outcome>\r
51                                                 </switch>\r
52                                                 <for index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
53                                                     <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>\r
54                                                         <outcome value='true'>\r
55                                                             <set>\r
56                                                                 <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].value`'/>\r
57                                                             </set>\r
58                                                         </outcome>\r
59                                                     </switch>\r
60                                                 </for>\r
61                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
62                                                     <parameter name='source' value='`$tmp.s1`' />\r
63                                                     <parameter name='target' value='`$tmp.resolved.var.value`' />\r
64                                                     <parameter name='outputPath' value='tmp.result' />\r
65                                                 </execute>\r
66                                                 <switch test='`$tmp.s2.s2`'>\r
67                                                     <outcome value=''></outcome>\r
68                                                     <outcome value='Other'>\r
69                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
70                                                             <parameter name='source' value='`$tmp.result`' />\r
71                                                             <parameter name='target' value='`$tmp.s2.s2`' />\r
72                                                             <parameter name='outputPath' value='tmp.result' />\r
73                                                         </execute>\r
74                                                     </outcome>\r
75                                                 </switch>\r
76                                                 <set>\r
77                                                     <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\r
78                                                 </set>\r
79                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
80                                                     <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
81                                                     <parameter name="target" value="$"/>\r
82                                                     <outcome value='true'>\r
83                                                         <return status='failure'>\r
84                                                             <parameter name='ack-final' value='Y'/>\r
85                                                             <parameter name="error-code" value="500" />\r
86                                                             <parameter name="error-message" value= "`'Not able to resolve Capability ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + ':' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
87                                                         </return>\r
88                                                     </outcome>\r
89                                                 </execute>\r
90                                             </block>\r
91                                         </outcome>\r
92                                     </execute>\r
93                                 </for>\r
94                             </outcome>\r
95                         </switch>\r
96                     </for>\r
97                 </outcome>\r
98                 <outcome value='vf-module'>\r
99                     <for 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
100                         <switch test='`$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].resource-resolution-data.capability-name == $ss.capability-name`'>\r
101                             <outcome value='true'>\r
102                                 <for index='j' 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[$i].resource-resolution-data.resource-key_length`' >\r
103                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
104                                         <parameter name="source" 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].resource-resolution-data.resource-key[$j].value`" />\r
105                                         <parameter name="target" value="$"/>\r
106                                         <outcome value='true'>\r
107                                             <block atomic='true'>\r
108                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
109                                                     <parameter name="logger" value="message-log"/>\r
110                                                     <parameter name="field1" value="`'SS: param[].value with leading $: ' + $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].resource-resolution-data.resource-key[$j].value`"/>\r
111                                                 </record>\r
112                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
113                                                     <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
114                                                     <parameter name='original_string' 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].resource-resolution-data.resource-key[$j].value`' />\r
115                                                     <parameter name='regex' value='\$\{' />\r
116                                                 </execute>\r
117                                                 <set>\r
118                                                     <parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>\r
119                                                     <parameter name="tmp.resolved.var.value" 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].resource-resolution-data.resource-key[$j].value`'/>\r
120                                                 </set>\r
121                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
122                                                     <parameter name='ctx_memory_result_key' value='s2' />\r
123                                                     <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
124                                                     <parameter name='regex' value='\}' />\r
125                                                 </execute>\r
126                                                 <switch test='`$s2_length`'>\r
127                                                     <outcome value='1'>\r
128                                                         <set>\r
129                                                             <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
130                                                         </set>\r
131                                                     </outcome>\r
132                                                     <outcome value='2'>\r
133                                                         <block>\r
134                                                             <set>\r
135                                                                 <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
136                                                             </set>\r
137                                                             <set>\r
138                                                                 <parameter name="tmp.s2.s2" value='`$s2[1]`'/>\r
139                                                             </set>\r
140                                                         </block>\r
141                                                     </outcome>\r
142                                                 </switch>\r
143                                                 <for index='cn' 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
144                                                     <switch test='`$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[$cn].name == $tmp.s2.s1`'>\r
145                                                         <outcome value='true'>\r
146                                                             <set>\r
147                                                                 <parameter name='tmp.resolved.var.value' 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[$cn].value`'/>\r
148                                                             </set>\r
149                                                         </outcome>\r
150                                                     </switch>\r
151                                                 </for>\r
152                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
153                                                     <parameter name='source' value='`$tmp.s1`' />\r
154                                                     <parameter name='target' value='`$tmp.resolved.var.value`' />\r
155                                                     <parameter name='outputPath' value='tmp.result' />\r
156                                                 </execute>\r
157                                                 <switch test='`$tmp.s2.s2`'>\r
158                                                     <outcome value=''></outcome>\r
159                                                     <outcome value='Other'>\r
160                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
161                                                             <parameter name='source' value='`$tmp.result`' />\r
162                                                             <parameter name='target' value='`$tmp.s2.s2`' />\r
163                                                             <parameter name='outputPath' value='tmp.result' />\r
164                                                         </execute>\r
165                                                     </outcome>\r
166                                                 </switch>\r
167                                                 <set>\r
168                                                     <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[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\r
169                                                 </set>\r
170                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
171                                                     <parameter name="source" 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].resource-resolution-data.resource-key[$j].value`" />\r
172                                                     <parameter name="target" value="$"/>\r
173                                                     <outcome value='true'>\r
174                                                         <return status='failure'>\r
175                                                             <parameter name='ack-final' value='Y'/>\r
176                                                             <parameter name="error-code" value="500" />\r
177                                                             <parameter name="error-message" value= "`'Not able to resolve Capability ' + $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].resource-resolution-data.resource-key[$j].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[$i].resource-resolution-data.resource-key[$j].value`" />\r
178                                                         </return>\r
179                                                     </outcome>\r
180                                                 </execute>\r
181                                             </block>\r
182                                         </outcome>\r
183                                     </execute>\r
184                                 </for>\r
185                             </outcome>\r
186                         </switch>\r
187                     </for>\r
188                 </outcome>\r
189             </switch>\r
190         </block>\r
191     </method>\r
192 </service-logic>