0078f07dc8f9a75d1b345ff3418b5f434f55ebfe
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_site-vnf-topology-operation-activate.xml
1 <service-logic
2     xmlns='http://www.onap.org/sdnc/svclogic'
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}'>
4     <method rpc='site-vnf-topology-operation-activate' mode='sync'>
5         <block atomic="true">
6             <switch test='`$service-data.vnfs.vnf_length`'>
7                 <outcome value='0'>
8                     <return status='failure'>
9                         <parameter name='ack-final' value='Y'/>
10                         <parameter name="error-code" value="500" />
11                         <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
12                     </return>
13                 </outcome>
14                 <outcome value=''>
15                     <return status='failure'>
16                         <parameter name='ack-final' value='Y'/>
17                         <parameter name="error-code" value="500" />
18                         <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
19                     </return>
20                 </outcome>
21                 <outcome value='Other'>
22                     <block atomic="true">
23                         <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >
24                             <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
25                                 <outcome value='true'>
26                                     <set>
27                                         <parameter name='tmp.vidx' value='`$vidx`' />
28                                         <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />
29                                     </set>
30                                 </outcome>
31                             </switch>
32                         </for>
33                         <switch test="`$tmp.vidx`">
34                             <outcome value=''>
35                                 <return status='failure'>
36                                     <parameter name='ack-final' value='Y'/>
37                                     <parameter name="error-code" value="500" />
38                                     <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
39                                 </return>
40                             </outcome>
41                         </switch>
42                     </block>
43                 </outcome>
44             </switch>
45             <set>
46                 <parameter name='tmp.sdwan.site' value='false' />
47             </set>
48             <for index='idx' start='0' end='`$ctx.vnf-data.vnf-request-input.vnf-input-parameters.param_length`' >
49                 <block>
50                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'id'`">
51                         <outcome value='true'>
52                             <set>
53                                 <parameter name='prop.site.id' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
54                             </set>
55                         </outcome>
56                     </switch>
57                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">
58                         <outcome value='true'>
59                             <set>
60                                 <parameter name='prop.site.name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
61                             </set>
62                         </outcome>
63                     </switch>
64                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'description'`">
65                         <outcome value='true'>
66                             <set>
67                                 <parameter name='prop.site.description' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
68                             </set>
69                         </outcome>
70                     </switch>
71                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'location'`">
72                         <outcome value='true'>
73                             <set>
74                                 <parameter name='prop.site.location' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
75                             </set>
76                         </outcome>
77                     </switch>
78                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'type'`">
79                         <outcome value='true'>
80                             <set>
81                                 <parameter name='prop.site.type' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
82                                 <parameter name='tmp.sdwan.site' value='true' />
83                             </set>
84                         </outcome>
85                     </switch>
86                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'role'`">
87                         <outcome value='true'>
88                             <set>
89                                 <parameter name='prop.site.role' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
90                                 <parameter name='tmp.sdwan.site' value='true' />
91                             </set>
92                         </outcome>
93                     </switch>
94                 </block>
95             </for>
96             <switch test="`$tmp.sdwan.site`">
97                 <outcome value='false'>
98                     <block></block>
99                 </outcome>
100                 <outcome value='true'>
101                     <block atomic="true"></block>
102                 </outcome>
103             </switch>
104             <set>
105                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-index`' />
106                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
107                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
108                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
109                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />
110             </set>
111             <set>
112                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Active' />
113                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />
114                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />
115             </set>
116             <set>
117                 <parameter name='vnfId' value='`$prop.vnf-index`' />
118                 <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $prop.vnf-index  + '/vnf-data/'` " />
119             </set>
120             <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf' 
121       key='generic-vnf.vnf-id = $prop.vnf-index' >
122                 <parameter name='vnf-id' value='`$prop.vnf-index`' />
123                 <parameter name='in-maint' value='true' />
124                 <parameter name='is-closed-loop-disabled' value='false' />
125                 <parameter name='orchestration-status' value='Active' />
126                 <parameter name='operational-status' value='Active' />
127                 <parameter name='model-customization-id' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />
128                 <parameter name='model-invariant-id' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />
129                 <parameter name='model-version-id' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />
130                 <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $prop.vnf-index  + '/vnf-data/'` " />
131             </update>
132             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list' 
133       key='service-instance.service-instance-id = $service-data.service-information.service-instance-id 
134          AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id 
135          AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type' 
136       force="true" pfx="tmp.AnAI-data">
137                 <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />
138                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/generic-vnfs/generic-vnf/' + $prop.vnf-index`" />
139                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="generic-vnf.vnf-id" />
140                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.vnf-index`" />
141             </save>
142             <return status='success'>
143                 <parameter name="ack-final-indicator" value="Y" />
144                 <parameter name="error-code" value="200" />
145                 <parameter name="error-message" value="`$error-message`" />
146             </return>
147         </block>
148     </method>
149 </service-logic>