Deactivate flow modification for DCI
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation.xml
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <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}">\r
3     <method rpc="network-topology-operation" mode="sync">\r
4         <block atomic="true">\r
5             <call module="GENERIC-RESOURCE-API" rpc="validate-network-input" mode="sync" />\r
6             <switch test="`$network-topology-operation-input.sdnc-request-header.svc-action`">\r
7                 <outcome value="assign">\r
8                     <block atomic="true">\r
9                         <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-assign" mode="sync" />\r
10                     </block>\r
11                 </outcome>\r
12                 <outcome value="activate">\r
13                     <switch test="`$network-topology-operation-input.request-information.request-action`">\r
14                         <outcome value="ActivateDCINetworkInstance">\r
15                             <call module="GENERIC-RESOURCE-API" rpc="dci-connects-network-topology-operation-activate" mode="sync" />\r
16                         </outcome>\r
17                         <outcome value="other">\r
18                             <block atomic="true">\r
19                                 <switch test="`$service-data.networks.network_length`">\r
20                                     <outcome value="">\r
21                                         <return status="failure">\r
22                                             <parameter name="ack-final" value="Y" />\r
23                                             <parameter name="error-code" value="500" />\r
24                                             <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
25                                         </return>\r
26                                     </outcome>\r
27                                     <outcome value="Other">\r
28                                         <block atomic="true">\r
29                                             <for index="nidx" start="0" end="`$service-data.networks.network_length`">\r
30                                                 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
31                                                     <outcome value="true">\r
32                                                         <set>\r
33                                                             <parameter name="tmp.nidx" value="`$nidx`" />\r
34                                                             <parameter name="ctx.network-data." value="`$service-data.networks.network[$nidx].`" />\r
35                                                         </set>\r
36                                                     </outcome>\r
37                                                 </switch>\r
38                                             </for>\r
39                                             <switch test="`$tmp.nidx`">\r
40                                                 <outcome value="">\r
41                                                     <return status="failure">\r
42                                                         <parameter name="ack-final" value="Y" />\r
43                                                         <parameter name="error-code" value="500" />\r
44                                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
45                                                     </return>\r
46                                                 </outcome>\r
47                                             </switch>\r
48                                         </block>\r
49                                     </outcome>\r
50                                 </switch>\r
51                                 <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`">\r
52                                     <outcome value="PendingCreate">\r
53                                         <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-activate" mode="sync" />\r
54                                     </outcome>\r
55                                     <outcome value="Other">\r
56                                         <return status="failure">\r
57                                             <parameter name="ack-final" value="Y" />\r
58                                             <parameter name="error-code" value="500" />\r
59                                             <parameter name="error-message" value="`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
60                                         </return>\r
61                                     </outcome>\r
62                                 </switch>\r
63                             </block>\r
64                         </outcome>\r
65                     </switch>\r
66                 </outcome>\r
67                 <outcome value="deactivate">\r
68                     <block atomic="true">\r
69                         <switch test="`$service-data.networks.network_length`">\r
70                             <outcome value="">\r
71                                 <return status="failure">\r
72                                     <parameter name="ack-final" value="Y" />\r
73                                     <parameter name="error-code" value="500" />\r
74                                     <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
75                                 </return>\r
76                             </outcome>\r
77                             <outcome value="Other">\r
78                                 <block atomic="true">\r
79                                     <for index="nidx" start="0" end="`$service-data.networks.network_length`">\r
80                                         <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
81                                             <outcome value="true">\r
82                                                 <set>\r
83                                                     <parameter name="tmp.nidx" value="`$nidx`" />\r
84                                                     <parameter name="ctx.network-data." value="`$service-data.networks.network[$nidx].`" />\r
85                                                 </set>\r
86                                             </outcome>\r
87                                         </switch>\r
88                                     </for>\r
89                                     <switch test="`$tmp.nidx`">\r
90                                         <outcome value="">\r
91                                             <return status="failure">\r
92                                                 <parameter name="ack-final" value="Y" />\r
93                                                 <parameter name="error-code" value="500" />\r
94                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
95                                             </return>\r
96                                         </outcome>\r
97                                     </switch>\r
98                                 </block>\r
99                             </outcome>\r
100                         </switch>\r
101                         <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`">\r
102                             <outcome value="Created">\r
103                                 <switch test="`$network-topology-operation-input.request-information.request-action`">\r
104                                     <outcome value="DeActivateDCINetworkInstance">\r
105                                         <call module="GENERIC-RESOURCE-API" rpc="dci-connects-network-topology-operation-deactivate" mode="sync" />\r
106                                     </outcome>\r
107                                     <outcome value="Other">\r
108                                         <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-deactivate" mode="sync" />\r
109                                     </outcome>\r
110                                 </switch>\r
111                             </outcome>\r
112                             <outcome value="Other">\r
113                                 <return status="failure">\r
114                                     <parameter name="ack-final" value="Y" />\r
115                                     <parameter name="error-code" value="500" />\r
116                                     <parameter name="error-message" value="`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
117                                 </return>\r
118                             </outcome>\r
119                         </switch>\r
120                     </block>\r
121                 </outcome>\r
122                 <outcome value="unassign">\r
123                     <block atomic="true">\r
124                         <switch test="`$service-data.networks.network_length`">\r
125                             <outcome value="">\r
126                                 <return status="failure">\r
127                                     <parameter name="ack-final" value="Y" />\r
128                                     <parameter name="error-code" value="500" />\r
129                                     <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
130                                 </return>\r
131                             </outcome>\r
132                             <outcome value="Other">\r
133                                 <block atomic="true">\r
134                                     <for index="nidx" start="0" end="`$service-data.networks.network_length`">\r
135                                         <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
136                                             <outcome value="true">\r
137                                                 <set>\r
138                                                     <parameter name="tmp.nidx" value="`$nidx`" />\r
139                                                     <parameter name="ctx.network-data." value="`$service-data.networks.network[$nidx].`" />\r
140                                                 </set>\r
141                                             </outcome>\r
142                                         </switch>\r
143                                     </for>\r
144                                     <switch test="`$tmp.nidx`">\r
145                                         <outcome value="">\r
146                                             <return status="failure">\r
147                                                 <parameter name="ack-final" value="Y" />\r
148                                                 <parameter name="error-code" value="500" />\r
149                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
150                                             </return>\r
151                                         </outcome>\r
152                                     </switch>\r
153                                 </block>\r
154                             </outcome>\r
155                         </switch>\r
156                         <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`">\r
157                             <outcome value="PendingCreate">\r
158                                 <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-unassign" mode="sync" />\r
159                             </outcome>\r
160                             <outcome value="PendingDelete">\r
161                                 <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-unassign" mode="sync" />\r
162                             </outcome>\r
163                             <outcome value="Other">\r
164                                 <return status="failure">\r
165                                     <parameter name="ack-final" value="Y" />\r
166                                     <parameter name="error-code" value="500" />\r
167                                     <parameter name="error-message" value="`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
168                                 </return>\r
169                             </outcome>\r
170                         </switch>\r
171                     </block>\r
172                 </outcome>\r
173                 <outcome value="Other">\r
174                     <return status="failure">\r
175                         <parameter name="ack-final" value="Y" />\r
176                         <parameter name="error-code" value="500" />\r
177                         <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
178                     </return>\r
179                 </outcome>\r
180                 <outcome value="create">\r
181                     <block atomic="true">\r
182                         <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-create" mode="sync" />\r
183                     </block>\r
184                 </outcome>\r
185                 <outcome value="delete">\r
186                     <block atomic="true">\r
187                         <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-delete" mode="sync" />\r
188                     </block>\r
189                 </outcome>\r
190             </switch>\r
191             <set>\r
192                 <parameter name="ack-final" value="Y" />\r
193             </set>\r
194             <return status="success">\r
195                 <parameter name="ack-final-indicator" value="Y" />\r
196                 <parameter name="error-code" value="200" />\r
197                 <parameter name="error-message" value="`$error-message`" />\r
198             </return>\r
199         </block>\r
200     </method>\r
201 </service-logic>