ba153ffecf31a1304cce37ab8aa27aed68a34a11
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-generate-name-changeassign.xml
1 <service-logic
2     xmlns='http://www.onap.org/sdnc/svclogic'
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}'>
4     <method rpc='self-serve-generate-name-changeassign' mode='sync'>
5         <block atomic="true">
6             <switch test='`$ss.input.param.index`'>
7                 <outcome value=''>
8                     <return status='failure'>
9                         <parameter name='ack-final' value='Y'/>
10                         <parameter name="error-code" value="500" />
11                         <parameter name="error-message" value="ss.input.param.index is null" />
12                     </return>
13                 </outcome>
14             </switch>
15             <switch test='`$ss.service-data.param.index`'>
16                 <outcome value=''>
17                     <return status='failure'>
18                         <parameter name='ack-final' value='Y'/>
19                         <parameter name="error-code" value="500" />
20                         <parameter name="error-message" value="ss.service-data.param.index is null" />
21                     </return>
22                 </outcome>
23             </switch>
24             <switch test='`$ss.capability-type`'>
25                 <outcome value='vnf'>
26                     <block atomic='true'>
27                         <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.resource-key_length`' >
28                             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.resource-key[$i].name`'>
29                                 <outcome value='external-key'>
30                                     <set>
31                                         <parameter name='tmp.external-key.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.resource-key[$i].value`' />
32                                     </set>
33                                 </outcome>
34                             </switch>
35                         </for>
36                         <switch test='`$tmp.external-key.value`'>
37                             <outcome value=''>
38                                 <return status='failure'>
39                                     <parameter name='ack-final' value='Y'/>
40                                     <parameter name="error-code" value="500" />
41                                     <parameter name="error-message" value="self-service-generate-name-changeassign error : external-key is null for vnf" />
42                                 </return>
43                             </outcome>
44                         </switch>
45                         <set>
46                             <parameter name="tmp.vnf.changeassign.naming-data-payload" value="`'{&quot;elements&quot;:[{' + '&quot;resource-name&quot;:&quot;' + $vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$ss.input.param.index].name + '&quot;,&quot;resource-value&quot;:&quot;' + $vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$ss.input.param.index].value + '&quot;,&quot;external-key&quot;:&quot;' + $tmp.external-key.value + '&quot;}]'`"/>
47                         </set>
48                         <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>
49                             <parameter name='payload' value='`$tmp.vnf.changeassign.naming-data-payload`' />
50                             <parameter name="prifix" value="vnf.changeassign.nameGenResponse" />
51                             <outcome value='failure'>
52                                 <block atomic='true'>
53                                     <set>
54                                         <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
55                                     </set>
56                                     <return status='failure'>
57                                         <parameter name='ack-final' value='Y'/>
58                                         <parameter name="error-code" value="500" />
59                                         <parameter name="error-message" value="`'Error from NameGenerationNode ChangeAssign vnf ' + $error-message`" />
60                                     </return>
61                                 </block>
62                             </outcome>
63                             <outcome value='not-found'>
64                                 <block atomic='true'>
65                                     <set>
66                                         <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
67                                     </set>
68                                     <return status='failure'>
69                                         <parameter name='ack-final' value='Y'/>
70                                         <parameter name="error-code" value="500" />
71                                         <parameter name="error-message" value="`'Error from NameGenerationNode ChangeAssign vnf ' + $error-message`" />
72                                     </return>
73                                 </block>
74                             </outcome>
75                         </execute>
76                         <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
77         resource="generic-vnf"
78                 key="generic-vnf.vnf-id = $ss.param.vnf-id " >
79                             <parameter name="ipv4-loopback0-address" value='`$ss.param.ipv4-loopback0-address`' />
80                             <parameter name="ipv4-oam-address" value='`$ss.param.ipv4-oam-address`' />
81                             <parameter name="as-number" value='`$ss.param.as-number`' />
82                             <parameter name="vlan-id-outer" value='`$ss.param.vlan-id-outer`' />
83                             <outcome value='failure'>
84                                 <block atomic='true'>
85                                     <set>
86                                         <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
87                                     </set>
88                                     <return status='failure'>
89                                         <parameter name='ack-final' value='Y'/>
90                                         <parameter name="error-code" value="500" />
91                                         <parameter name="error-message" value="`'Failed to update generic-vnf.vnf-name to ' + $ss.changeassign.vnf-name + ' in AnAI'`" />
92                                     </return>
93                                 </block>
94                             </outcome>
95                             <outcome value='not-found'>
96                                 <block atomic='true'>
97                                     <set>
98                                         <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
99                                     </set>
100                                     <return status='failure'>
101                                         <parameter name='ack-final' value='Y'/>
102                                         <parameter name="error-code" value="500" />
103                                         <parameter name="error-message" value="`'Failed to update generic-vnf.vnf-name to ' + $ss.changeassign.vnf-name + ' in AnAI'`" />
104                                     </return>
105                                 </block>
106                             </outcome>
107                         </update>
108                         <set>
109                             <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].value`' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$ss.input.param.index].value`'/>
110                             <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.status`' value='SUCCESS' />
111                         </set>
112                     </block>
113                 </outcome>
114                 <outcome value='vf-module'>
115                     <block atomic='true'>
116                         <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.resource-key_length`' >
117                             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.resource-key[$i].name`'>
118                                 <outcome value='external-key'>
119                                     <set>
120                                         <parameter name='tmp.external-key.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.service-data.param.index].resource-resolution-data.resource-key[$i].value`' />
121                                     </set>
122                                 </outcome>
123                             </switch>
124                         </for>
125                         <switch test='`$tmp.external-key.value`'>
126                             <outcome value=''>
127                                 <return status='failure'>
128                                     <parameter name='ack-final' value='Y'/>
129                                     <parameter name="error-code" value="500" />
130                                     <parameter name="error-message" value="self-service-generate-name-changeassign error : external-key is null for vf-module" />
131                                 </return>
132                             </outcome>
133                         </switch>
134                         <set>
135                             <parameter name="tmp.vf-module.changeassign.naming-data-payload" value="`'{&quot;elements&quot;:[{' + '&quot;resource-name&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$ss.input.param.index].name + '&quot;,&quot;resource-value&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$ss.input.param.index].value + '&quot;,&quot;external-key&quot;:&quot;' + $tmp.external-key.value + '&quot;}]'`"/>
136                         </set>
137                         <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>
138                             <parameter name='payload' value='`$tmp.vf-module.changeassign.naming-data-payload`' />
139                             <parameter name="prifix" value="vf-module.changeassign.nameGenResponse" />
140                             <outcome value='failure'>
141                                 <block atomic='true'>
142                                     <set>
143                                         <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[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
144                                     </set>
145                                     <return status='failure'>
146                                         <parameter name='ack-final' value='Y'/>
147                                         <parameter name="error-code" value="500" />
148                                         <parameter name="error-message" value="`'Error from NameGenerationNode ChangeAssign vf-module ' + $error-message`" />
149                                     </return>
150                                 </block>
151                             </outcome>
152                             <outcome value='not-found'>
153                                 <block atomic='true'>
154                                     <set>
155                                         <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[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
156                                     </set>
157                                     <return status='failure'>
158                                         <parameter name='ack-final' value='Y'/>
159                                         <parameter name="error-code" value="500" />
160                                         <parameter name="error-message" value="`'Error from NameGenerationNode ChangeAssign vf-module ' + $error-message`" />
161                                     </return>
162                                 </block>
163                             </outcome>
164                         </execute>
165                         <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
166         resource="vf-module"
167                 key="generic-vnf.vnf-id = $ss.param.vnf-id 
168                         AND vf-module.vf-module-id = $ss.param.vf-module-id " >
169                             <parameter name="vf-module-name" value='`$ss.param.vf-module-name`' />
170                             <outcome value='failure'>
171                                 <block atomic='true'>
172                                     <set>
173                                         <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[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
174                                     </set>
175                                     <return status='failure'>
176                                         <parameter name='ack-final' value='Y'/>
177                                         <parameter name="error-code" value="500" />
178                                         <parameter name="error-message" value="`'Failed to update vf-module.vf-module-name to ' + $ss.changeassign.vf-module-name + ' in AnAI'`" />
179                                     </return>
180                                 </block>
181                             </outcome>
182                             <outcome value='not-found'>
183                                 <block atomic='true'>
184                                     <set>
185                                         <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[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
186                                     </set>
187                                     <return status='failure'>
188                                         <parameter name='ack-final' value='Y'/>
189                                         <parameter name="error-code" value="500" />
190                                         <parameter name="error-message" value="`'Failed to update vf-module.vf-module-name to ' + $ss.changeassign.vf-module-name + ' in AnAI'`" />
191                                     </return>
192                                 </block>
193                             </outcome>
194                         </update>
195                         <set>
196                             <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[$ss.service-data.param.index].value`' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$ss.input.param.index].value`'/>
197                             <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[$ss.service-data.param.index].resource-resolution-data.status`' value='SUCCESS' />
198                         </set>
199                     </block>
200                 </outcome>
201                 <outcome value='Other'>
202                     <return status='failure'>
203                         <parameter name='ack-final' value='Y'/>
204                         <parameter name="error-code" value="500" />
205                         <parameter name="error-message" value="capability-type is not vnf or vf-module" />
206                     </return>
207                 </outcome>
208                 <outcome value=''>
209                     <return status='failure'>
210                         <parameter name='ack-final' value='Y'/>
211                         <parameter name="error-code" value="500" />
212                         <parameter name="error-message" value="capability-type is not vnf or vf-module" />
213                     </return>
214                 </outcome>
215             </switch>
216         </block>
217     </method>
218 </service-logic>