Fix async logic
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vnf-topology-operation.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' mode='sync'>\r
5         <block atomic="true">\r
6             <call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' ></call>\r
7             <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
8                 <outcome value='assign'>\r
9                     <block>\r
10                         <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
11                             <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
12                             <parameter name='contextPrefix' value='prop' />\r
13                         </execute>\r
14                         <switch test='`length($vnf-topology-operation-input.sdnc-request-header.svc-notification-url) == 0`'>\r
15                             <outcome value='true'>\r
16                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-sync' mode='sync' ></call>\r
17                             </outcome>\r
18                             <outcome value='false'>\r
19                                 <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-notification-url == $prop.so.ignore-url`'>\r
20                                     <outcome value='true'>\r
21                                         <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-sync' mode='sync' ></call>\r
22                                     </outcome>\r
23                                     <outcome value='false'>\r
24                                         <block atomic="true">\r
25                                             <set>\r
26                                                 <parameter name='skip-mdsal-update' value='Y' />\r
27                                             </set>\r
28                                             <set>\r
29                                                 <parameter name='ack-final' value='N' />\r
30                                             </set>\r
31                                             <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-async' mode='sync' ></call>\r
32                                         </block>\r
33                                     </outcome>\r
34                                 </switch>\r
35                             </outcome>\r
36                         </switch>\r
37                     </block>\r
38                 </outcome>\r
39                 <outcome value='activate'>\r
40                     <block atomic="true">\r
41                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
42                             <outcome value='ActivateSiteInstance'>\r
43                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-activate' mode='sync' ></call>\r
44                             </outcome>\r
45                             <outcome value='ActivateSDWANDeviceInstance'>\r
46                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-activate' mode='sync' ></call>\r
47                             </outcome>\r
48                             <outcome value='ActivateSDWANPortInstance'>\r
49                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-activate' mode='sync' ></call>\r
50                             </outcome>\r
51                             <outcome value='ActivateSDWANVpnInstance'>\r
52                                 <block atomic="true">\r
53                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-activate' mode='sync' ></call>\r
54                                 </block>\r
55                             </outcome>\r
56                             <outcome value='ActivateSDWANSiteInstance'>\r
57                                 <block atomic="true">\r
58                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-activate' mode='sync' ></call>\r
59                                 </block>\r
60                             </outcome>\r
61                             <outcome value='Other'>\r
62                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' ></call>\r
63                             </outcome>\r
64                         </switch>\r
65                     </block>\r
66                 </outcome>\r
67                 <outcome value='deactivate'>\r
68                     <block atomic="true">\r
69                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
70                             <outcome value='DeactivateSiteInstance'>\r
71                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-deactivate' mode='sync' ></call>\r
72                             </outcome>\r
73                             <outcome value='DeactivateSDWANDeviceInstance'>\r
74                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-deactivate' mode='sync' ></call>\r
75                             </outcome>\r
76                             <outcome value='DeactivateSDWANPortInstance'>\r
77                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-deactivate' mode='sync' ></call>\r
78                             </outcome>\r
79                             <outcome value='DeactivateSDWANVpnInstance'>\r
80                                 <block atomic="true">\r
81                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-deactivate' mode='sync' ></call>\r
82                                 </block>\r
83                             </outcome>\r
84                             <outcome value='DeactivateSDWANSiteInstance'>\r
85                                 <block atomic="true">\r
86                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-deactivate' mode='sync' ></call>\r
87                                 </block>\r
88                             </outcome>\r
89                             <outcome value='Other'>\r
90                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' ></call>\r
91                             </outcome>\r
92                         </switch>\r
93                     </block>\r
94                 </outcome>\r
95                 <outcome value='unassign'>\r
96                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' ></call>\r
97                 </outcome>\r
98                 <outcome value='create'>\r
99                     <block atomic="true">\r
100                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
101                             <outcome value='CreateSiteInstance'>\r
102                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-create' mode='sync' ></call>\r
103                             </outcome>\r
104                             <outcome value='CreateSDWANDeviceInstance'>\r
105                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-create' mode='sync' ></call>\r
106                             </outcome>\r
107                             <outcome value='CreateSDWANPortInstance'>\r
108                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-create' mode='sync' ></call>\r
109                             </outcome>\r
110                             <outcome value='CreateSDWANVpnInstance'>\r
111                                 <block atomic="true">\r
112                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-create' mode='sync' ></call>\r
113                                 </block>\r
114                             </outcome>\r
115                             <outcome value='CreateSDWANSiteInstance'>\r
116                                 <block atomic="true">\r
117                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-create' mode='sync' ></call>\r
118                                 </block>\r
119                             </outcome>\r
120                             <outcome value='Other'>\r
121                                 <block></block>\r
122                             </outcome>\r
123                         </switch>\r
124                     </block>\r
125                 </outcome>\r
126                 <outcome value='delete'>\r
127                     <block atomic="true">\r
128                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
129                             <outcome value='DeleteSiteInstance'>\r
130                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-delete' mode='sync' ></call>\r
131                             </outcome>\r
132                             <outcome value='DeleteSDWANDeviceInstance'>\r
133                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-delete' mode='sync' ></call>\r
134                             </outcome>\r
135                             <outcome value='DeleteSDWANPortInstance'>\r
136                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-delete' mode='sync' ></call>\r
137                             </outcome>\r
138                             <outcome value='DeleteSDWANVpnInstance'>\r
139                                 <block atomic="true">\r
140                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-delete' mode='sync' ></call>\r
141                                 </block>\r
142                             </outcome>\r
143                             <outcome value='DeleteSDWANSiteInstance'>\r
144                                 <block atomic="true">\r
145                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-delete' mode='sync' ></call>\r
146                                 </block>\r
147                             </outcome>\r
148                             <outcome value='Other'>\r
149                                 <block></block>\r
150                             </outcome>\r
151                         </switch>\r
152                     </block>\r
153                 </outcome>\r
154                 <outcome value='Other'>\r
155                     <return status='failure'>\r
156                         <parameter name='ack-final' value='Y'/>\r
157                         <parameter name="error-code" value="500" />\r
158                         <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
159                     </return>\r
160                 </outcome>\r
161             </switch>\r
162             <return status='success'>\r
163                 <parameter name="ack-final-indicator" value="Y" />\r
164                 <parameter name="error-code" value="200" />\r
165                 <parameter name="error-message" value="`$error-message`" />\r
166             </return>\r
167         </block>\r
168     </method>\r
169 </service-logic>