6456f73b999e454fea3d846fb0e2b08ac86d51ff
[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 =  $service-data.vnfs.vnf[$vnf-index].vnf-id " >
79                             <parameter name="vnf-name" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$ss.input.param.index].value`' />
80                             <outcome value='failure'>
81                                 <block atomic='true'>
82                                     <set>
83                                         <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' />
84                                     </set>
85                                     <return status='failure'>
86                                         <parameter name='ack-final' value='Y'/>
87                                         <parameter name="error-code" value="500" />
88                                         <parameter name="error-message" value="`'Failed to update generic-vnf.vnf-name to ' + $ss.changeassign.vnf-name + ' in AnAI'`" />
89                                     </return>
90                                 </block>
91                             </outcome>
92                             <outcome value='not-found'>
93                                 <block atomic='true'>
94                                     <set>
95                                         <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' />
96                                     </set>
97                                     <return status='failure'>
98                                         <parameter name='ack-final' value='Y'/>
99                                         <parameter name="error-code" value="500" />
100                                         <parameter name="error-message" value="`'Failed to update generic-vnf.vnf-name to ' + $ss.changeassign.vnf-name + ' in AnAI'`" />
101                                     </return>
102                                 </block>
103                             </outcome>
104                         </update>
105                         <set>
106                             <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`'/>
107                             <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' />
108                         </set>
109                     </block>
110                 </outcome>
111                 <outcome value='vf-module'>
112                     <block atomic='true'>
113                         <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`' >
114                             <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`'>
115                                 <outcome value='external-key'>
116                                     <set>
117                                         <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`' />
118                                     </set>
119                                 </outcome>
120                             </switch>
121                         </for>
122                         <switch test='`$tmp.external-key.value`'>
123                             <outcome value=''>
124                                 <return status='failure'>
125                                     <parameter name='ack-final' value='Y'/>
126                                     <parameter name="error-code" value="500" />
127                                     <parameter name="error-message" value="self-service-generate-name-changeassign error : external-key is null for vf-module" />
128                                 </return>
129                             </outcome>
130                         </switch>
131                         <set>
132                             <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;}]}'`"/>
133                         </set>
134                         <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>
135                             <parameter name='payload' value='`$tmp.vf-module.changeassign.naming-data-payload`' />
136                             <parameter name="prifix" value="vf-module.changeassign.nameGenResponse" />
137                             <outcome value='failure'>
138                                 <block atomic='true'>
139                                     <set>
140                                         <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' />
141                                     </set>
142                                     <return status='failure'>
143                                         <parameter name='ack-final' value='Y'/>
144                                         <parameter name="error-code" value="500" />
145                                         <parameter name="error-message" value="`'Error from NameGenerationNode ChangeAssign vf-module ' + $error-message`" />
146                                     </return>
147                                 </block>
148                             </outcome>
149                             <outcome value='not-found'>
150                                 <block atomic='true'>
151                                     <set>
152                                         <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' />
153                                     </set>
154                                     <return status='failure'>
155                                         <parameter name='ack-final' value='Y'/>
156                                         <parameter name="error-code" value="500" />
157                                         <parameter name="error-message" value="`'Error from NameGenerationNode ChangeAssign vf-module ' + $error-message`" />
158                                     </return>
159                                 </block>
160                             </outcome>
161                         </execute>
162                         <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
163         resource="vf-module" key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id AND vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id " >
164                             <parameter name="vf-module-name" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$ss.input.param.index].value`' />
165                             <outcome value='failure'>
166                                 <block atomic='true'>
167                                     <set>
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[$ss.service-data.param.index].resource-resolution-data.status`' value='FAILED' />
169                                     </set>
170                                     <return status='failure'>
171                                         <parameter name='ack-final' value='Y'/>
172                                         <parameter name="error-code" value="500" />
173                                         <parameter name="error-message" value="`'Failed to update vf-module.vf-module-name to ' + $ss.changeassign.vf-module-name + ' in AnAI'`" />
174                                     </return>
175                                 </block>
176                             </outcome>
177                             <outcome value='not-found'>
178                                 <block atomic='true'>
179                                     <set>
180                                         <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' />
181                                     </set>
182                                     <return status='failure'>
183                                         <parameter name='ack-final' value='Y'/>
184                                         <parameter name="error-code" value="500" />
185                                         <parameter name="error-message" value="`'Failed to update vf-module.vf-module-name to ' + $ss.changeassign.vf-module-name + ' in AnAI'`" />
186                                     </return>
187                                 </block>
188                             </outcome>
189                         </update>
190                         <set>
191                             <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`'/>
192                             <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' />
193                         </set>
194                     </block>
195                 </outcome>
196                 <outcome value='Other'>
197                     <return status='failure'>
198                         <parameter name='ack-final' value='Y'/>
199                         <parameter name="error-code" value="500" />
200                         <parameter name="error-message" value="capability-type is not vnf or vf-module" />
201                     </return>
202                 </outcome>
203                 <outcome value=''>
204                     <return status='failure'>
205                         <parameter name='ack-final' value='Y'/>
206                         <parameter name="error-code" value="500" />
207                         <parameter name="error-message" value="capability-type is not vnf or vf-module" />
208                     </return>
209                 </outcome>
210             </switch>
211         </block>
212     </method>
213 </service-logic>