e5e6d079b68b3c68e49e801325ca88d893275521
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_sotn-network-topology-operation-create.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='sotn-network-topology-operation-create' mode='sync'>
5         <block atomic="true">
6             <call module='GENERIC-RESOURCE-API' rpc='validate-sotn-network-input-parameters' mode='sync' ></call>
7             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
8                 <parameter name="ctx-destination" value="prop.sotn.network-id"/>
9             </execute>
10             <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
11                 <block>
12                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
13                         <outcome value='true'>
14                             <set>
15                                 <parameter name='prop.sotn.etht-svc-name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
16                             </set>
17                         </outcome>
18                     </switch>
19                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'description'`">
20                         <outcome value='true'>
21                             <set>
22                                 <parameter name='prop.sotn.etht-svc-descr' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
23                             </set>
24                         </outcome>
25                     </switch>
26                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tenantId'`">
27                         <outcome value='true'>
28                             <set>
29                                 <parameter name='prop.sotn.tenantId' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
30                             </set>
31                         </outcome>
32                     </switch>
33                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'vpnType'`">
34                         <outcome value='true'>
35                             <set>
36                                 <parameter name='prop.sotn.vpnType' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
37                             </set>
38                         </outcome>
39                     </switch>
40                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cir'`">
41                         <outcome value='true'>
42                             <set>
43                                 <parameter name='prop.sotn.cir' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
44                             </set>
45                         </outcome>
46                     </switch>
47                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'eir'`">
48                         <outcome value='true'>
49                             <set>
50                                 <parameter name='prop.sotn.eir' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
51                             </set>
52                         </outcome>
53                     </switch>
54                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cbs'`">
55                         <outcome value='true'>
56                             <set>
57                                 <parameter name='prop.sotn.cbs' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
58                             </set>
59                         </outcome>
60                     </switch>
61                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ebs'`">
62                         <outcome value='true'>
63                             <set>
64                                 <parameter name='prop.sotn.ebs' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
65                             </set>
66                         </outcome>
67                     </switch>
68                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'colorAware'`">
69                         <outcome value='true'>
70                             <set>
71                                 <parameter name='prop.sotn.colorAware' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
72                             </set>
73                         </outcome>
74                     </switch>
75                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'couplingFlag'`">
76                         <outcome value='true'>
77                             <set>
78                                 <parameter name='prop.sotn.couplingFlag' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
79                             </set>
80                         </outcome>
81                     </switch>
82                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-provider-id'`">
83                         <outcome value='true'>
84                             <set>
85                                 <parameter name='prop.sotn.access-provider-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
86                             </set>
87                         </outcome>
88                     </switch>
89                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-client-id'`">
90                         <outcome value='true'>
91                             <set>
92                                 <parameter name='prop.sotn.access-client-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
93                             </set>
94                         </outcome>
95                     </switch>
96                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-topology-id'`">
97                         <outcome value='true'>
98                             <set>
99                                 <parameter name='prop.sotn.access-topology-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
100                             </set>
101                         </outcome>
102                     </switch>
103                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-node-id'`">
104                         <outcome value='true'>
105                             <set>
106                                 <parameter name='prop.sotn.access-node-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
107                             </set>
108                         </outcome>
109                     </switch>
110                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-ltp-id'`">
111                         <outcome value='true'>
112                             <set>
113                                 <parameter name='prop.sotn.access-ltp-id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
114                             </set>
115                         </outcome>
116                     </switch>
117                 </block>
118             </for>
119             <switch test='`$service-data.networks.network_length`'>
120                 <outcome value=''>
121                     <set>
122                         <parameter name='nidx' value='0' />
123                     </set>
124                 </outcome>
125                 <outcome value='Other'>
126                     <block>
127                         <set>
128                             <parameter name='nidx' value='`$service-data.networks.network_length`' />
129                         </set>
130                         <for index='idx' start='0' end='`$nidx`' >
131                             <switch test="`$service-data.networks.network[$idx].network-id == $network-topology-operation-input.network-information.network-id`">
132                                 <outcome value='true'>
133                                     <return status='failure'>
134                                         <parameter name='ack-final' value='Y'/>
135                                         <parameter name="error-code" value="500" />
136                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id already found in service-data" />
137                                     </return>
138                                 </outcome>
139                             </switch>
140                         </for>
141                     </block>
142                 </outcome>
143             </switch>
144             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
145                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>
146                 <parameter name="field1" value="__TIMESTAMP__"/>
147                 <parameter name="field2" value="sotn-network-topology-operation-create"/>
148                 <parameter name="field3" value="SOTN-Config"/>
149             </record>
150             <set>
151                 <parameter name='service-data.networks.network[$nidx].network-id' value='`$prop.sotn.network-id`' />
152                 <parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />
153                 <parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />
154                 <parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />
155                 <parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />
156                 <parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />
157                 <parameter name='service-data.networks.network_length' value='`$nidx+1`' />
158             </set>
159             <set>
160                 <parameter name='networkId' value='`$prop.sotn.network-id`' />
161                 <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.sotn.network-id  + '/network-data/'` " />
162             </set>
163             <set>
164                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='Created' />
165                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />
166                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />
167             </set>
168             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='connectivity' 
169       key='connectivity.connectivity-id = $prop.sotn.network-id' >
170                 <parameter name='connectivity-id' value='`$prop.sotn.network-id`' />
171                 <parameter name='bandwidth-profile-name' value='`$prop.sotn.etht-svc-name`' />
172                 <parameter name='vpn-type' value='`$prop.sotn.vpnType`' />
173                 <parameter name='CIR' value='`$prop.sotn.cir`' />
174                 <parameter name='EIR' value='`$prop.sotn.eir`' />
175                 <parameter name='CBS' value='`$prop.sotn.cbs`' />
176                 <parameter name='EBS' value='`$prop.sotn.ebs`' />
177                 <parameter name='color-aware' value='`$prop.sotn.colorAware`' />
178                 <parameter name='coupling-flag' value='`$prop.sotn.couplingFlag`' />
179                 <parameter name='etht-svc-name' value='`$prop.sotn.etht-svc-name`' />
180                 <parameter name='access-provider-id' value='`$prop.sotn.access-provider-id`' />
181                 <parameter name='access-client-id' value='`$prop.sotn.access-client-id`' />
182                 <parameter name='access-topology-id' value='`$prop.sotn.access-topology-id`' />
183                 <parameter name='access-node-id' value='`$prop.sotn.access-node-id`' />
184                 <parameter name='access-ltp-id' value='`$prop.sotn.access-ltp-id`' />
185                 <parameter name='cvlan' value='`$prop.sotn.cVLAN`' />
186                 <parameter name='operational-status' value='Created' />
187                 <!--parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' /-->
188                 <!--parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' /-->
189                 <!--parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' /-->
190                 <parameter name='connectivity-selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.sotn.network-id  + '/network-data/'` " />
191             </save>
192             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list' 
193       key='service-instance.service-instance-id = $service-data.service-information.service-instance-id 
194          AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id 
195          AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type' 
196       force="true" pfx="tmp.AnAI-data">
197                 <parameter name="relationship-list.relationship[0].related-to" value="connectivity" />
198                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/connectivities/connectivity/' + $prop.sotn.network-id`" />
199                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="connectivity.connectivity-id" />
200                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.sotn.network-id`" />
201             </save>
202             <return status='success'>
203                 <parameter name="ack-final-indicator" value="Y" />
204                 <parameter name="error-code" value="200" />
205                 <parameter name="error-message" value="`$error-message`" />
206             </return>
207         </block>
208     </method>
209 </service-logic>