Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vnf-topology-operation-unassign.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='vnf-topology-operation-unassign' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
7                 <outcome value='DeleteVnfInstance'>\r
8                     <block></block>\r
9                 </outcome>\r
10                 <outcome value='Other'>\r
11                     <return status='failure'>\r
12                         <parameter name='ack-final' value='Y'/>\r
13                         <parameter name="error-code" value="500" />\r
14                         <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'" />\r
15                     </return>\r
16                 </outcome>\r
17             </switch>\r
18             <switch test='`$service-data.vnfs.vnf_length`'>\r
19                 <outcome value=''>\r
20                     <return status='success'>\r
21                         <parameter name="ack-final-indicator" value="Y" />\r
22                         <parameter name="error-code" value="200" />\r
23                     </return>\r
24                 </outcome>\r
25                 <outcome value='Other'>\r
26                     <block atomic="true">\r
27                         <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
28                             <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\r
29                                 <outcome value='true'>\r
30                                     <set>\r
31                                         <parameter name='vnf-index' value='`$idx`' />\r
32                                     </set>\r
33                                 </outcome>\r
34                             </switch>\r
35                         </for>\r
36                         <switch test='`$vnf-index`'>\r
37                             <outcome value=''>\r
38                                 <return status='success'>\r
39                                     <parameter name="ack-final-indicator" value="Y" />\r
40                                     <parameter name="error-code" value="200" />\r
41                                 </return>\r
42                             </outcome>\r
43                             <outcome value='Other'>\r
44                                 <block atomic="true">\r
45                                     <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`">\r
46                                         <outcome value='0'>\r
47                                             <block></block>\r
48                                         </outcome>\r
49                                         <outcome value=''>\r
50                                             <block></block>\r
51                                         </outcome>\r
52                                         <outcome value='Other'>\r
53                                             <return status='failure'>\r
54                                                 <parameter name='ack-final' value='Y'/>\r
55                                                 <parameter name="error-code" value="500" />\r
56                                                 <parameter name="error-message" value="Cannot delete the VNF because there are VF modules defined" />\r
57                                             </return>\r
58                                         </outcome>\r
59                                     </switch>\r
60                                     <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
61   key='SELECT * from VF_MODEL WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
62   pfx='db.vf-model'>\r
63                                         <outcome value='failure'>\r
64                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
65                                                 <parameter name="logger" value="message-log"/>\r
66                                                 <parameter name="field1" value="Error reading VF_MODEL table"/>\r
67                                             </record>\r
68                                         </outcome>\r
69                                         <outcome value='not-found'>\r
70                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
71                                                 <parameter name="logger" value="message-log"/>\r
72                                                 <parameter name="field1" value="`'No model found for VNF customization UUID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`"/>\r
73                                             </record>\r
74                                         </outcome>\r
75                                     </get-resource>\r
76                                     <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>\r
77                                     <switch test="`$ss.self-serve-flag`">\r
78                                         <outcome value='false'>\r
79                                             <block atomic="true">\r
80                                                 <switch test='`$service-data.vnfs.vnf_length`'>\r
81                                                     <outcome value='1'>\r
82                                                         <set>\r
83                                                             <parameter name="service-data.vnfs." value=""/>\r
84                                                         </set>\r
85                                                     </outcome>\r
86                                                     <outcome value='Other'>\r
87                                                         <block atomic="true">\r
88                                                             <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
89                                                                 <block>\r
90                                                                     <set>\r
91                                                                         <parameter name="$tmpidx" value="`$idx - 1`"/>\r
92                                                                     </set>\r
93                                                                     <set>\r
94                                                                         <parameter name="service-data.vnfs.vnf[$tmpidx]." value="" />\r
95                                                                     </set>\r
96                                                                     <set>\r
97                                                                         <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
98                                                                     </set>\r
99                                                                 </block>\r
100                                                             </for>\r
101                                                             <set>\r
102                                                                 <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length - 1]." value=""/>\r
103                                                             </set>\r
104                                                             <set>\r
105                                                                 <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
106                                                             </set>\r
107                                                         </block>\r
108                                                     </outcome>\r
109                                                 </switch>\r
110                                                 <set>\r
111                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
112                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
113                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
114                                                 </set>\r
115                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
116                                                 <return status='success'>\r
117                                                     <parameter name="ack-final-indicator" value="Y" />\r
118                                                     <parameter name="error-code" value="200" />\r
119                                                     <parameter name="error-message" value="`$error-message`" />\r
120                                                 </return>\r
121                                             </block>\r
122                                         </outcome>\r
123                                         <outcome value='true'>\r
124                                             <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\r
125                                                 <outcome value='failure'>\r
126                                                     <return status='failure'>\r
127                                                         <parameter name='error-code' value='500' />\r
128                                                         <parameter name='error-message' value="`'Encountered error while unassigning self-serve resources with error: '+ $error-message`" />\r
129                                                     </return>\r
130                                                 </outcome>\r
131                                                 <outcome value='success'>\r
132                                                     <switch test='`$service-data.vnfs.vnf_length`'>\r
133                                                         <outcome value='1'>\r
134                                                             <set>\r
135                                                                 <parameter name="service-data.vnfs." value=""/>\r
136                                                             </set>\r
137                                                         </outcome>\r
138                                                         <outcome value='Other'>\r
139                                                             <block atomic="true">\r
140                                                                 <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
141                                                                     <block>\r
142                                                                         <set>\r
143                                                                             <parameter name="$tmpidx" value="`$idx - 1`"/>\r
144                                                                         </set>\r
145                                                                         <set>\r
146                                                                             <parameter name="service-data.vnfs.vnf[$tmpidx]." value="" />\r
147                                                                         </set>\r
148                                                                         <set>\r
149                                                                             <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
150                                                                         </set>\r
151                                                                     </block>\r
152                                                                 </for>\r
153                                                                 <set>\r
154                                                                     <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length - 1]." value=""/>\r
155                                                                 </set>\r
156                                                                 <set>\r
157                                                                     <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
158                                                                 </set>\r
159                                                             </block>\r
160                                                         </outcome>\r
161                                                     </switch>\r
162                                                 </outcome>\r
163                                             </call>\r
164                                         </outcome>\r
165                                     </switch>\r
166                                 </block>\r
167                             </outcome>\r
168                         </switch>\r
169                     </block>\r
170                 </outcome>\r
171             </switch>\r
172         </block>\r
173     </method>\r
174 </service-logic>