Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vf-module-topology-operation-activate.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='vf-module-topology-operation-activate' mode='sync'>\r
5         <block atomic="true">\r
6             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
7                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
8                 <parameter name='contextPrefix' value='prop' />\r
9             </execute>\r
10             <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
11                 <outcome value='CreateVfModuleInstance'>\r
12                     <block></block>\r
13                 </outcome>\r
14                 <outcome value='Other'>\r
15                     <return status='failure'>\r
16                         <parameter name='ack-final' value='Y'/>\r
17                         <parameter name="error-code" value="500" />\r
18                         <parameter name="error-message" value="If svc-action is 'activate' then request-action must be 'CreateVfModuleInstance'" />\r
19                     </return>\r
20                 </outcome>\r
21             </switch>\r
22             <set>\r
23                 <parameter name='vnf-index' value='-1' />\r
24             </set>\r
25             <switch test='`$service-data.vnfs.vnf_length`'>\r
26                 <outcome value=''>\r
27                     <return status='failure'>\r
28                         <parameter name='ack-final' value='Y'/>\r
29                         <parameter name="error-code" value="500" />\r
30                         <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
31                     </return>\r
32                 </outcome>\r
33                 <outcome value='Other'>\r
34                     <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
35                         <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
36                             <outcome value='true'>\r
37                                 <block>\r
38                                     <set>\r
39                                         <parameter name='vnf-index' value='`$idx`' />\r
40                                     </set>\r
41                                     <break/>\r
42                                 </block>\r
43                             </outcome>\r
44                         </switch>\r
45                     </for>\r
46                 </outcome>\r
47             </switch>\r
48             <switch test='`$vnf-index`'>\r
49                 <outcome value='-1'>\r
50                     <return status='failure'>\r
51                         <parameter name='ack-final' value='Y'/>\r
52                         <parameter name="error-code" value="500" />\r
53                         <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
54                     </return>\r
55                 </outcome>\r
56             </switch>\r
57             <set>\r
58                 <parameter name='vf-module-index' value='-1' />\r
59             </set>\r
60             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
61                 <outcome value=''>\r
62                     <return status='failure'>\r
63                         <parameter name='ack-final' value='Y'/>\r
64                         <parameter name="error-code" value="500" />\r
65                         <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
66                     </return>\r
67                 </outcome>\r
68                 <outcome value='Other'>\r
69                     <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
70                         <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
71                             <outcome value='true'>\r
72                                 <block>\r
73                                     <set>\r
74                                         <parameter name='vf-module-index' value='`$idx`' />\r
75                                     </set>\r
76                                     <break/>\r
77                                 </block>\r
78                             </outcome>\r
79                         </switch>\r
80                     </for>\r
81                 </outcome>\r
82             </switch>\r
83             <switch test='`$vf-module-index`'>\r
84                 <outcome value='-1'>\r
85                     <return status='failure'>\r
86                         <parameter name='ack-final' value='Y'/>\r
87                         <parameter name="error-code" value="500" />\r
88                         <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
89                     </return>\r
90                 </outcome>\r
91             </switch>\r
92             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\r
93                 <outcome value=''>\r
94                     <block></block>\r
95                 </outcome>\r
96                 <outcome value='0'>\r
97                     <block></block>\r
98                 </outcome>\r
99                 <outcome value='Other'>\r
100                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-activate' mode='sync' >\r
101                         <outcome value='failure'>\r
102                             <return status='failure'></return>\r
103                         </outcome>\r
104                     </call>\r
105                 </outcome>\r
106             </switch>\r
107             <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
108    resource="vf-module"\r
109    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
110       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
111    force="true" pfx="tmp.AnAI-data">\r
112                 <parameter name="orchestration-status" value="Active" />\r
113                 <outcome value='failure'>\r
114                     <return status='failure'>\r
115                         <parameter name='ack-final' value='Y'/>\r
116                         <parameter name="error-code" value="500" />\r
117                         <parameter name="error-message" value="Error updating vf-module in AAI" />\r
118                     </return>\r
119                 </outcome>\r
120                 <outcome value='not-found'>\r
121                     <return status='failure'>\r
122                         <parameter name='ack-final' value='Y'/>\r
123                         <parameter name="error-code" value="500" />\r
124                         <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
125                     </return>\r
126                 </outcome>\r
127             </update>\r
128             <for silentFailure='true' index='vm-type-index' start='0'\r
129   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
130                 <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
131                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
132    resource="vnfc"\r
133    key="vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"\r
134    force="true" pfx="tmp.AnAI-data">\r
135                         <parameter name="orchestration-status" value="Active" />\r
136                         <parameter name="prov-status" value="NVTPROV" />\r
137                         <outcome value='failure'>\r
138                             <return status='failure'>\r
139                                 <parameter name='ack-final' value='Y'/>\r
140                                 <parameter name="error-code" value="500" />\r
141                                 <parameter name="error-message" value="Error updating vnfc in AAI" />\r
142                             </return>\r
143                         </outcome>\r
144                         <outcome value='not-found'>\r
145                             <return status='failure'>\r
146                                 <parameter name='ack-final' value='Y'/>\r
147                                 <parameter name="error-code" value="500" />\r
148                                 <parameter name="error-message" value="`'No vnfc found in AAI for vnfc name ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
149                             </return>\r
150                         </outcome>\r
151                     </update>\r
152                 </for>\r
153             </for>\r
154             <update resource='SQL' force='true' plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
155   key='UPDATE EIPAM_IP_ASSIGNMENTS SET status = "ACTIVE" WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'>\r
156                 <outcome value='failure'>\r
157                     <return status='failure'>\r
158                         <parameter name='ack-final' value='Y'/>\r
159                         <parameter name="error-code" value="500" />\r
160                         <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table" />\r
161                     </return>\r
162                 </outcome>\r
163             </update>\r
164             <set>\r
165                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
166    value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
167                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
168    value='$vf-module-topology-operation-input.request-information.' />\r
169                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
170    value='$vf-module-topology-operation-input.service-information.' />\r
171                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
172    value='$vf-module-topology-operation-input.vnf-information.' />\r
173                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
174    value='$vf-module-topology-operation-input.vf-module-information.' />\r
175                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
176    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
177             </set>\r
178             <set>\r
179                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
180   value='Created' />\r
181                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
182   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
183                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
184   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
185             </set>\r
186             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
187                 <parameter name='filename' value='/var/tmp/bgb-vfmoduleactivate.log' />\r
188             </execute>\r
189             <return status='success'>\r
190                 <parameter name="ack-final-indicator" value="Y" />\r
191                 <parameter name="error-code" value="200" />\r
192                 <parameter name="error-message" value="`$error-message`" />\r
193             </return>\r
194         </block>\r
195     </method>\r
196 </service-logic>