self-serve dg patch
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.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-mS-vlan-tag-assign' 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                 <outcome value='assign'>\r
24                     <block atomic="true">\r
25                         <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\r
26                             <outcome value='failure'>\r
27                                 <return status="failure">\r
28                                     <parameter name="ack-final" value="Y" />\r
29                                     <parameter name="error-code" value="500"/>\r
30                                     <parameter name="error-message" value="`'Not all assignments are resolved' + $error-message`" />\r
31                                 </return>\r
32                             </outcome>\r
33                         </call>\r
34                         <set>\r
35                             <parameter name='qidx' value='0' />\r
36                             <parameter name='ss.vt.' value='' />\r
37                         </set>\r
38                         <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
39                             <set>\r
40                                 <parameter name='tmp.ss.param.capability-name' \r
41         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
42                             </set>\r
43                             <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
44                                 <outcome value='true'>\r
45                                     <block>\r
46                                         <set>\r
47                                             <parameter name='ss.vt.param[$qidx].index' value='`$pidx`' />\r
48                                         </set>\r
49                                         <for silentFailure='true' index="kidx" 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[$pidx].resource-resolution-data.resource-key_length`">\r
50                                             <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[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\r
51                                                 <outcome value='policy-instance-name'>\r
52                                                     <set>\r
53                                                         <parameter name='vt.request[$qidx].policy-instance-name' 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.resource-key[$kidx].value`' />\r
54                                                     </set>\r
55                                                 </outcome>\r
56                                                 <outcome value='resource-name'>\r
57                                                     <set>\r
58                                                         <parameter name='vt.request[$qidx].resource-name' 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.resource-key[$kidx].value`' />\r
59                                                     </set>\r
60                                                 </outcome>\r
61                                                 <outcome value='scope-id'>\r
62                                                     <set>\r
63                                                         <parameter name='vt.request[$qidx].scope-id' 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.resource-key[$kidx].value`' />\r
64                                                     </set>\r
65                                                 </outcome>\r
66                                                 <outcome value='vlan-tag-key'>\r
67                                                     <set>\r
68                                                         <parameter name='vt.request[$qidx].vlan-tag-key' 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.resource-key[$kidx].value`' />\r
69                                                     </set>\r
70                                                 </outcome>\r
71                                                 <outcome value='vlan-type'>\r
72                                                     <set>\r
73                                                         <parameter name='vt.request[$qidx].vlan-type' 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.resource-key[$kidx].value`' />\r
74                                                     </set>\r
75                                                 </outcome>\r
76                                                 <outcome value='resource-value'>\r
77                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\r
78                                                         <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[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
79                                                         <parameter name='target' value='$' />\r
80                                                         <outcome value='false'>\r
81                                                             <set>\r
82                                                                 <parameter name='vt.request[$qidx].resource-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[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
83                                                             </set>\r
84                                                         </outcome>\r
85                                                         <outcome value='true'>\r
86                                                             <set>\r
87                                                                 <parameter name='vt.request[$qidx].resource-value' value='' />\r
88                                                             </set>\r
89                                                         </outcome>\r
90                                                     </execute>\r
91                                                 </outcome>\r
92                                             </switch>\r
93                                         </for>\r
94                                         <set>\r
95                                             <parameter name='qidx' value='`$qidx + 1`' />\r
96                                         </set>\r
97                                         <set>\r
98                                             <parameter name='vt.request_length' value='`$qidx`' />\r
99                                         </set>\r
100                                         <set>\r
101                                             <parameter name='ss.vt.param_length' value='`$qidx`' />\r
102                                         </set>\r
103                                     </block>\r
104                                 </outcome>\r
105                             </switch>\r
106                         </for>\r
107                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
108                             <parameter name="source" value="`$prop.restapi.ss-mS-vlan-tag-assign`"/>\r
109                             <parameter name="outputPath" value="tmp.ss-vlan-tag-url"/>\r
110                             <parameter name="target" value="{action}"/>\r
111                             <parameter name="replacement" value="`$ss.capability-action`"/>\r
112                         </execute>\r
113                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
114                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.assign.templatefile`" />\r
115                             <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />\r
116                             <parameter name='restapiUser' value='`$prop.vt.mS.user`' />\r
117                             <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />\r
118                             <parameter name='format' value='json' />\r
119                             <parameter name='httpMethod' value='POST' />\r
120                             <parameter name="responsePrefix" value="vtResp" />\r
121                             <outcome value='failure'>\r
122                                 <block atomic="true">\r
123                                     <for index="i" start="0" end="`$ss.vt.param_length`">\r
124                                         <set>\r
125                                             <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\r
126                                         </set>\r
127                                         <set>\r
128                                             <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[$vt-index].resource-resolution-data.status' \r
129         value='FAILED' />\r
130                                         </set>\r
131                                     </for>\r
132                                     <return status='failure'>\r
133                                         <parameter name='error-code' value='500' />\r
134                                         <parameter name='error-message' value="Failed to get vlan-tag assisgnment from mS" />\r
135                                     </return>\r
136                                 </block>\r
137                             </outcome>\r
138                             <outcome value='not-found'>\r
139                                 <block atomic="true">\r
140                                     <for index="i" start="0" end="`$ss.vt.param_length`">\r
141                                         <set>\r
142                                             <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\r
143                                         </set>\r
144                                         <set>\r
145                                             <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[$vt-index].resource-resolution-data.status' \r
146         value='FAILED' />\r
147                                         </set>\r
148                                     </for>\r
149                                     <return status='failure'>\r
150                                         <parameter name='error-code' value='500' />\r
151                                         <parameter name='error-message' value="Failed to get vlan-tag assisgnment from mS" />\r
152                                     </return>\r
153                                 </block>\r
154                             </outcome>\r
155                             <outcome value='success'>\r
156                                 <switch test='`$vtResp.error-code`'>\r
157                                     <outcome value='500'>\r
158                                         <block atomic='true'>\r
159                                             <set>\r
160                                                 <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[$vt-index].resource-resolution-data.status' \r
161         value='FAILED' />\r
162                                             </set>\r
163                                             <return status='failure'>\r
164                                                 <parameter name='error-code' value='500'/>\r
165                                                 <parameter name='error-message' value="`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`" />\r
166                                             </return>\r
167                                         </block>\r
168                                     </outcome>\r
169                                     <outcome value='200'>\r
170                                         <block atomic='true'>\r
171                                             <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
172                                                 <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[$pidx].name`'>\r
173                                                     <outcome value='nfc-function'>\r
174                                                         <set>\r
175                                                             <parameter name='ss.param.nfc-function' 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
176                                                             <parameter name='ss.param.nfc-function-index' value='`$pidx`' />\r
177                                                         </set>\r
178                                                     </outcome>\r
179                                                     <outcome value='nfc-naming-code'>\r
180                                                         <set>\r
181                                                             <parameter name='ss.param.nfc-naming-code' 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
182                                                             <parameter name='ss.param.nfc-naming-code-index' value='`$pidx`' />\r
183                                                         </set>\r
184                                                     </outcome>\r
185                                                     <outcome value='vnfc-model-customization-uuid'>\r
186                                                         <set>\r
187                                                             <parameter name='ss.param.vnfc-model-customization-uuid' 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
188                                                             <parameter name='ss.param.vnfc-model-customization-uuid-index' value='`$pidx`' />\r
189                                                         </set>\r
190                                                     </outcome>\r
191                                                     <outcome value='vnfc-model-invariant-uuid'>\r
192                                                         <set>\r
193                                                             <parameter name='ss.param.vnfc-model-invariant-uuid' 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
194                                                             <parameter name='ss.param.vnfc-model-invariant-uuid-index' value='`$pidx`' />\r
195                                                         </set>\r
196                                                     </outcome>\r
197                                                     <outcome value='vnfc-model-version'>\r
198                                                         <set>\r
199                                                             <parameter name='ss.param.vnfc-model-version' 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
200                                                             <parameter name='ss.param.vnfc-model-version-index' value='`$pidx`' />\r
201                                                         </set>\r
202                                                     </outcome>\r
203                                                     <outcome value='vm-type'>\r
204                                                         <set>\r
205                                                             <parameter name='ss.param.vm-type' 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
206                                                             <parameter name='ss.param.vm-type-index' value='`$pidx`' />\r
207                                                         </set>\r
208                                                     </outcome>\r
209                                                     <outcome value='vnfc-name'>\r
210                                                         <block atomic='true'>\r
211                                                             <set>\r
212                                                                 <parameter name='ss.param.vnfc-name-unresolved-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[$pidx].value`' />\r
213                                                             </set>\r
214                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
215                                                                 <parameter name="source" value="`$ss.param.vnfc-name-unresolved-value`" />\r
216                                                                 <parameter name="target" value="${"/>\r
217                                                                 <parameter name="replacement" value=""/>\r
218                                                                 <parameter name="outputPath" value="ss.param.vnfc-name-unresolved-value"/>\r
219                                                             </execute>\r
220                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
221                                                                 <parameter name="source" value="`$ss.param.vnfc-name-unresolved-value`" />\r
222                                                                 <parameter name="target" value="}"/>\r
223                                                                 <parameter name="replacement" value=""/>\r
224                                                                 <parameter name="outputPath" value="ss.param.vnfc-name-unresolved-value"/>\r
225                                                             </execute>\r
226                                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
227                                                                 <parameter name="logger" value="message-log"/>\r
228                                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
229                                                                 <parameter name="field2" value="`'ss.param.vnfc-name-unresolved-value = ' + $ss.param.vnfc-name-unresolved-value`"/>\r
230                                                             </record>\r
231                                                             <block>\r
232                                                                 <for silentFailure='true' index="x" 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
233                                                                     <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[$x].name == $ss.param.vnfc-name-unresolved-value`'>\r
234                                                                         <outcome value='true'>\r
235                                                                             <block atomic='true'>\r
236                                                                                 <set>\r
237                                                                                     <parameter name='ss.param.vnfc-name' 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[$x].value`' />\r
238                                                                                     <parameter name='ss.param.vnfc-name-index' value='`$x`' />\r
239                                                                                 </set>\r
240                                                                                 <return status='failure'></return>\r
241                                                                             </block>\r
242                                                                         </outcome>\r
243                                                                     </switch>\r
244                                                                 </for>\r
245                                                                 <return status='success'></return>\r
246                                                             </block>\r
247                                                             <switch test='`$ss.param.vnfc-name`'>\r
248                                                                 <outcome value=''>\r
249                                                                     <return status='failure'>\r
250                                                                         <parameter name='error-code' value='500' />\r
251                                                                         <parameter name='error-message' value='Unable to resolve vnfc-name' />\r
252                                                                     </return>\r
253                                                                 </outcome>\r
254                                                             </switch>\r
255                                                         </block>\r
256                                                     </outcome>\r
257                                                 </switch>\r
258                                             </for>\r
259                                             <set>\r
260                                                 <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-assignments.vms.vm[0].vm-type' value = '`$ss.param.vm-type`' />\r
261                                                 <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-assignments.vms.vm[0].onap-model-information.model-invariant-uuid' value = '`$ss.param.vnfc-model-invariant-uuid`' />\r
262                                                 <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-assignments.vms.vm[0].onap-model-information.model-customization-uuid' value = '`$ss.param.vnfc-model-customization-uuid`' />\r
263                                                 <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-assignments.vms.vm[0].onap-model-information.model-version' value = '`$ss.param.vnfc-model-version`' />\r
264                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-name' value = '`$ss.param.vnfc-name`' />\r
265                                             </set>\r
266                                             <set>\r
267                                                 <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-assignments.vms.vm_length' value = '1' />\r
268                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names_length' value = '1' />\r
269                                             </set>\r
270                                             <for silentFailure='true' index="oidx" start="0" end="`$vtResp.output_length`">\r
271                                                 <for silentFailure='true' index="vtidx" start="0" end="`$ss.vt.param_length`">\r
272                                                     <set>\r
273                                                         <parameter name='vt-index' value='`$ss.vt.param[$vtidx].index`' />\r
274                                                     </set>\r
275                                                     <switch test='`$vtResp.output[$oidx].resource-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[$vt-index].name`'>\r
276                                                         <outcome value='true'>\r
277                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\r
278                                                                 <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[$vt-index].value`' />\r
279                                                                 <parameter name='target' value='$' />\r
280                                                                 <outcome value='true'>\r
281                                                                     <block atomic='true'>\r
282                                                                         <set>\r
283                                                                             <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[$vt-index].value' \r
284         value='`$vtResp.output[$oidx].resource-value`' />\r
285                                                                         </set>\r
286                                                                         <set>\r
287                                                                             <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[$vt-index].resource-resolution-data.status' \r
288         value='SUCCESS' />\r
289                                                                         </set>\r
290                                                                         <for silentFailure='true' index="kidx" 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[$vt-index].resource-resolution-data.resource-key_length`">\r
291                                                                             <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[$vt-index].resource-resolution-data.resource-key[$kidx].name`'>\r
292                                                                                 <outcome value='vnfc-network-role'>\r
293                                                                                     <block atomic='true'>\r
294                                                                                         <set>\r
295                                                                                             <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].vnfc-network-role' \r
296         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[$vt-index].resource-resolution-data.resource-key[$kidx].value`' />\r
297                                                                                         </set>\r
298                                                                                         <call module="GENERIC-RESOURCE-API" rpc="generate-cp-instance-id" mode="sync" >\r
299                                                                                             <outcome value='failure'>\r
300                                                                                                 <return status='failure'>\r
301                                                                                                     <parameter name='error-code' value='500'/>\r
302                                                                                                     <parameter name='error-message' value="`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id`" />\r
303                                                                                                 </return>\r
304                                                                                             </outcome>\r
305                                                                                         </call>\r
306                                                                                         <for silentFailure='true' index="sidx" start="0" end="`$vtResp.output[$oidx].stored-elements_length`">\r
307                                                                                             <set>\r
308                                                                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.connection-point-id' \r
309         value='`$tmp.return.generate-cp-instance-id.id`' />\r
310                                                                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-uuid' \r
311         value='`$vtResp.output[$oidx].stored-elements[$sidx].vlan-uuid`' />\r
312                                                                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-id' \r
313         value='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-value`' />\r
314                                                                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-description' \r
315         value='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-name`' />\r
316                                                                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-role' \r
317         value='`$vtResp.output[$oidx].stored-elements[$sidx].element-vlan-role`' />\r
318                                                                                             </set>\r
319                                                                                         </for>\r
320                                                                                     </block>\r
321                                                                                 </outcome>\r
322                                                                             </switch>\r
323                                                                         </for>\r
324                                                                     </block>\r
325                                                                 </outcome>\r
326                                                                 <outcome value='false'>\r
327                                                                     <block atomic='true'>\r
328                                                                         <block atomic='true'>\r
329                                                                             <set>\r
330                                                                                 <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[$vt-index].value' \r
331         value='`$vtResp.output[$oidx].resource-value`' />\r
332                                                                             </set>\r
333                                                                             <set>\r
334                                                                                 <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[$vt-index].resource-resolution-data.status' \r
335         value='SUCCESS' />\r
336                                                                             </set>\r
337                                                                             <for silentFailure='true' index="kidx" 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[$vt-index].resource-resolution-data.resource-key_length`">\r
338                                                                                 <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[$vt-index].resource-resolution-data.resource-key[$kidx].name`'>\r
339                                                                                     <outcome value='vnfc-network-role'>\r
340                                                                                         <block atomic='true'>\r
341                                                                                             <set>\r
342                                                                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].vnfc-network-role' \r
343         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[$vt-index].resource-resolution-data.resource-key[$kidx].value`' />\r
344                                                                                             </set>\r
345                                                                                             <call module="GENERIC-RESOURCE-API" rpc="generate-cp-instance-id" mode="sync" >\r
346                                                                                                 <outcome value='failure'>\r
347                                                                                                     <return status='failure'>\r
348                                                                                                         <parameter name='error-code' value='500'/>\r
349                                                                                                         <parameter name='error-message' value="`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id`" />\r
350                                                                                                     </return>\r
351                                                                                                 </outcome>\r
352                                                                                             </call>\r
353                                                                                             <for silentFailure='true' index="sidx" start="0" end="`$vtResp.output[$oidx].stored-elements_length`">\r
354                                                                                                 <set>\r
355                                                                                                     <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.connection-point-id' \r
356         value='`$tmp.return.generate-cp-instance-id.id`' />\r
357                                                                                                     <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-uuid' \r
358         value='`$vtResp.output[$oidx].stored-elements[$sidx].vlan-uuid`' />\r
359                                                                                                     <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-id' \r
360         value='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-value`' />\r
361                                                                                                     <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-description' \r
362         value='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-name`' />\r
363                                                                                                     <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-role' \r
364         value='`$vtResp.output[$oidx].stored-elements[$sidx].element-vlan-role`' />\r
365                                                                                                 </set>\r
366                                                                                             </for>\r
367                                                                                         </block>\r
368                                                                                     </outcome>\r
369                                                                                 </switch>\r
370                                                                             </for>\r
371                                                                         </block>\r
372                                                                         <set>\r
373                                                                             <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[$vt-index].resource-resolution-data.capability-name' \r
374         value='INPUT' />\r
375                                                                         </set>\r
376                                                                     </block>\r
377                                                                 </outcome>\r
378                                                             </execute>\r
379                                                         </outcome>\r
380                                                     </switch>\r
381                                                 </for>\r
382                                             </for>\r
383                                             <set>\r
384                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length' \r
385         value='`$ss.vt.param_length`' />\r
386                                             </set>\r
387                                             <set>\r
388                                                 <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-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data_length' \r
389         value='`$vtResp.output[$oidx].stored-elements_length`' />\r
390                                             </set>\r
391                                         </block>\r
392                                     </outcome>\r
393                                 </switch>\r
394                             </outcome>\r
395                         </execute>\r
396                     </block>\r
397                 </outcome>\r
398                 <outcome value='unassign'>\r
399                     <block atomic="true">\r
400                         <set>\r
401                             <parameter name='qidx' value='0' />\r
402                             <parameter name='ss.vt.' value='' />\r
403                         </set>\r
404                         <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
405                             <set>\r
406                                 <parameter name='tmp.ss.param.capability-name' \r
407         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
408                             </set>\r
409                             <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
410                                 <outcome value='true'>\r
411                                     <block>\r
412                                         <set>\r
413                                             <parameter name='ss.vt.param[$qidx].index' value='`$pidx`' />\r
414                                         </set>\r
415                                         <for silentFailure='true' index="kidx" 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[$pidx].resource-resolution-data.resource-key_length`">\r
416                                             <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[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\r
417                                                 <outcome value='policy-instance-name'>\r
418                                                     <set>\r
419                                                         <parameter name='vt.request[$qidx].policy-instance-name' 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.resource-key[$kidx].value`' />\r
420                                                     </set>\r
421                                                 </outcome>\r
422                                                 <outcome value='vlan-type'>\r
423                                                     <set>\r
424                                                         <parameter name='vt.request[$qidx].vlan-type' 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.resource-key[$kidx].value`' />\r
425                                                     </set>\r
426                                                 </outcome>\r
427                                                 <outcome value='vlan-tag-key'>\r
428                                                     <set>\r
429                                                         <parameter name='vt.request[$qidx].vlan-tag-key' 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.resource-key[$kidx].value`' />\r
430                                                     </set>\r
431                                                 </outcome>\r
432                                             </switch>\r
433                                         </for>\r
434                                         <set>\r
435                                             <parameter name='qidx' value='`$qidx + 1`' />\r
436                                         </set>\r
437                                         <set>\r
438                                             <parameter name='vt.request_length' value='`$qidx`' />\r
439                                         </set>\r
440                                         <set>\r
441                                             <parameter name='ss.vt.param_length' value='`$qidx`' />\r
442                                         </set>\r
443                                     </block>\r
444                                 </outcome>\r
445                             </switch>\r
446                         </for>\r
447                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
448                             <parameter name="source" value="`$prop.restapi.ss-mS-vlan-tag-assign`"/>\r
449                             <parameter name="outputPath" value="tmp.ss-vlan-tag-url"/>\r
450                             <parameter name="target" value="{action}"/>\r
451                             <parameter name="replacement" value="`$ss.capability-action`"/>\r
452                         </execute>\r
453                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
454                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`" />\r
455                             <parameter name='restapiUrl' value='`$prop.controller.url + $prop.restapi.ss-mS-vlan-tag-assign`' />\r
456                             <parameter name='restapiUser' value='`$prop.controller.user`' />\r
457                             <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
458                             <parameter name='format' value='json' />\r
459                             <parameter name='httpMethod' value='POST' />\r
460                             <parameter name="responsePrefix" value="vtResp" />\r
461                             <outcome value='failure'>\r
462                                 <block atomic="true">\r
463                                     <for index="i" start="0" end="`$ss.vt.param_length`">\r
464                                         <set>\r
465                                             <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\r
466                                         </set>\r
467                                         <set>\r
468                                             <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[$vt-index].resource-resolution-data.status' \r
469         value='FAILED' />\r
470                                         </set>\r
471                                     </for>\r
472                                     <return status='failure'>\r
473                                         <parameter name='error-code' value='500' />\r
474                                         <parameter name='error-message' value="Failed to get vlan-tag assisgnment from mS" />\r
475                                     </return>\r
476                                 </block>\r
477                             </outcome>\r
478                             <outcome value='not-found'>\r
479                                 <block atomic="true">\r
480                                     <for index="i" start="0" end="`$ss.vt.param_length`">\r
481                                         <set>\r
482                                             <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\r
483                                         </set>\r
484                                         <set>\r
485                                             <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[$vt-index].resource-resolution-data.status' \r
486         value='FAILED' />\r
487                                         </set>\r
488                                     </for>\r
489                                     <return status='failure'>\r
490                                         <parameter name='error-code' value='500' />\r
491                                         <parameter name='error-message' value="Failed to get vlan-tag assisgnment from mS" />\r
492                                     </return>\r
493                                 </block>\r
494                             </outcome>\r
495                             <outcome value='success'>\r
496                                 <switch test='`$vtResp.error-code`'>\r
497                                     <outcome value='500'>\r
498                                         <block atomic="true">\r
499                                             <set>\r
500                                                 <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[$vt-index].resource-resolution-data.status' \r
501         value='FAILED' />\r
502                                             </set>\r
503                                             <return status='failure'>\r
504                                                 <parameter name='error-code' value='500'/>\r
505                                                 <parameter name='error-message' value="`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`" />\r
506                                             </return>\r
507                                         </block>\r
508                                     </outcome>\r
509                                     <outcome value='200'>\r
510                                         <for silentFailure='true' index="oidx" start="0" end="`$vtResp.output_length`">\r
511                                             <for silentFailure='true' index="i" start="0" end="`$ss.vt.param_length`">\r
512                                                 <set>\r
513                                                     <parameter name='vt-index' value='`$ss.vt.param[$i]-index`' />\r
514                                                 </set>\r
515                                                 <set>\r
516                                                     <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[$vt-index].resource-resolution-data.status' \r
517         value='DELETED' />\r
518                                                 </set>\r
519                                             </for>\r
520                                         </for>\r
521                                     </outcome>\r
522                                 </switch>\r
523                             </outcome>\r
524                         </execute>\r
525                     </block>\r
526                 </outcome>\r
527             </switch>\r
528             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
529                 <parameter name='filename' value='/var/tmp/ss.ms-vlan-tag.log' />\r
530             </execute>\r
531         </block>\r
532     </method>\r
533 </service-logic>