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