Merge "Remove test for Active on Delete"
[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='failure'>\r
21                         <parameter name='ack-final' value='Y'/>\r
22                         <parameter name="error-code" value="404" />\r
23                         <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
24                     </return>\r
25                 </outcome>\r
26             </switch>\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='failure'>\r
39                         <parameter name='ack-final' value='Y'/>\r
40                         <parameter name="error-code" value="404" />\r
41                         <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
42                     </return>\r
43                 </outcome>\r
44             </switch>\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 VFs defined" />\r
57                     </return>\r
58                 </outcome>\r
59             </switch>\r
60             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\r
61                 <outcome value='true'>\r
62                     <block atomic="true">\r
63                         <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\r
64                             <outcome value='failure'>\r
65                                 <return status='failure'>\r
66                                     <parameter name='error-code' value='500' />\r
67                                     <parameter name='error-message' value="`'Encountered error while unassigning self-serve resources with error: '+ $error-message`" />\r
68                                 </return>\r
69                             </outcome>\r
70                         </call>\r
71                     </block>\r
72                 </outcome>\r
73             </switch>\r
74             <switch test='`$service-data.vnfs.vnf_length`'>\r
75                 <outcome value='1'>\r
76                     <set>\r
77                         <parameter name="service-data.vnfs." value=""/>\r
78                     </set>\r
79                 </outcome>\r
80                 <outcome value='Other'>\r
81                     <block atomic="true">\r
82                         <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
83                             <set>\r
84                                 <parameter name="$tmpidx" value="`$idx - 1`"/>\r
85                                 <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
86                             </set>\r
87                         </for>\r
88                         <set>\r
89                             <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1]." value=""/>\r
90                         </set>\r
91                         <set>\r
92                             <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
93                         </set>\r
94                     </block>\r
95                 </outcome>\r
96             </switch>\r
97             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\r
98                 <outcome value='false'>\r
99                     <block atomic="true">\r
100                         <set>\r
101                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
102                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
103                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
104                         </set>\r
105                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
106                     </block>\r
107                 </outcome>\r
108                 <outcome value=''>\r
109                     <block atomic="true">\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                     </block>\r
117                 </outcome>\r
118             </switch>\r
119             <return status='success'>\r
120                 <parameter name="ack-final-indicator" value="Y" />\r
121                 <parameter name="error-code" value="200" />\r
122                 <parameter name="error-message" value="`$error-message`" />\r
123             </return>\r
124         </block>\r
125     </method>\r
126 </service-logic>