4cf9156926ac17055151e430952d7f90a3a54299
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vnf-topology-operation-unassign.xml
1 <service-logic xmlns='http://www.onap.org/sdnc/svclogic' 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}'><method rpc='vnf-topology-operation-unassign' mode='sync'>\r
2 <block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
3 <outcome value='DeleteVnfInstance'>\r
4 <block>\r
5 </block></outcome><outcome value='Other'>\r
6 <return status='failure'>\r
7         <parameter name='ack-final' value='Y'/>\r
8         <parameter name="error-code" value="500" />\r
9     <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'" />\r
10 </return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
11 <outcome value=''>\r
12 <return status='failure'>\r
13         <parameter name='ack-final' value='Y'/>\r
14         <parameter name="error-code" value="404" />\r
15     <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
16 </return></outcome></switch><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
17 <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\r
18 <outcome value='true'>\r
19 <set>\r
20 <parameter name='vnf-index' value='`$idx`' />\r
21 </set></outcome></switch></for><switch test='`$vnf-index`'>\r
22 <outcome value=''>\r
23 <return status='failure'>\r
24         <parameter name='ack-final' value='Y'/>\r
25         <parameter name="error-code" value="404" />\r
26     <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
27 </return></outcome></switch><switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'Created'`">\r
28 <outcome value='true'>\r
29 <return status='failure'>\r
30         <parameter name='ack-final' value='Y'/>\r
31         <parameter name="error-code" value="500" />\r
32     <parameter name="error-message" value="Cannot delete a VNF in a Created state" />\r
33 </return></outcome></switch><switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`">\r
34 <outcome value='0'>\r
35 <block>\r
36 </block></outcome><outcome value=''><block>\r
37 </block></outcome><outcome value='Other'>\r
38 <return status='failure'>\r
39         <parameter name='ack-final' value='Y'/>\r
40         <parameter name="error-code" value="500" />\r
41     <parameter name="error-message" value="Cannot delete the VNF because there are VFs defined" />\r
42 </return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
43 <outcome value='1'>\r
44 <set>\r
45         <parameter name="service-data.vnfs." value=""/>\r
46 \r
47 </set></outcome><outcome value='Other'>\r
48 <block atomic="true"><for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
49 <set>\r
50         <parameter name="$tmpidx" value="`$idx - 1`"/>\r
51         <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
52         \r
53 </set></for><set>\r
54         <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1]." value=""/>\r
55 \r
56 </set><set>\r
57         <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
58 \r
59         \r
60 </set></block></outcome></switch><return status='success'>\r
61 <parameter name="ack-final-indicator" value="Y" />\r
62 <parameter name="error-code" value="200" />\r
63 <parameter name="error-message" value="`$error-message`" />\r
64 </return></block></method></service-logic>