1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <service-logic xmlns="http://www.onap.org/sdnc/svclogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="GENERIC-RESOURCE-API" version="1.2.1-SNAPSHOT">
\r
3 <method rpc="sotn-network-topology-operation-create" mode="sync">
\r
4 <block atomic="true">
\r
5 <call module="GENERIC-RESOURCE-API" rpc="validate-sotn-network-input-parameters" mode="sync" />
\r
6 <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">
\r
7 <parameter name="ctx-destination" value="prop.sotn.network-id" />
\r
9 <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
\r
11 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
\r
12 <outcome value="true">
\r
14 <parameter name="prop.sotn.etht-svc-name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
18 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'description'`">
\r
19 <outcome value="true">
\r
21 <parameter name="prop.sotn.etht-svc-descr" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
25 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tenantId'`">
\r
26 <outcome value="true">
\r
28 <parameter name="prop.sotn.tenantId" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
32 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'vpnType'`">
\r
33 <outcome value="true">
\r
35 <parameter name="prop.sotn.vpnType" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
39 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CIR'`">
\r
40 <outcome value="true">
\r
42 <parameter name="prop.sotn.cir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
46 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'EIR'`">
\r
47 <outcome value="true">
\r
49 <parameter name="prop.sotn.eir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
53 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CBS'`">
\r
54 <outcome value="true">
\r
56 <parameter name="prop.sotn.cbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
60 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'PBS'`">
\r
61 <outcome value="true">
\r
63 <parameter name="prop.sotn.pbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
67 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'color-aware'`">
\r
68 <outcome value="true">
\r
70 <parameter name="prop.sotn.colorAware" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
74 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'coupling-flag'`">
\r
75 <outcome value="true">
\r
77 <parameter name="prop.sotn.couplingFlag" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
81 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-provider-id'`">
\r
82 <outcome value="true">
\r
84 <parameter name="prop.sotn.access-provider-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
88 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-client-id'`">
\r
89 <outcome value="true">
\r
91 <parameter name="prop.sotn.access-client-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
95 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-topology-id'`">
\r
96 <outcome value="true">
\r
98 <parameter name="prop.sotn.access-topology-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
102 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-node-id'`">
\r
103 <outcome value="true">
\r
105 <parameter name="prop.sotn.access-node-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
109 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-ltp-id'`">
\r
110 <outcome value="true">
\r
112 <parameter name="prop.sotn.access-ltp-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
116 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cVLAN'`">
\r
117 <outcome value="true">
\r
119 <parameter name="prop.sotn.cVLAN" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r
125 <switch test="`$service-data.networks.network_length`">
\r
128 <parameter name="nidx" value="0" />
\r
131 <outcome value="Other">
\r
134 <parameter name="nidx" value="`$service-data.networks.network_length`" />
\r
136 <for index="idx" start="0" end="`$nidx`">
\r
137 <switch test="`$service-data.networks.network[$idx].network-id == $network-topology-operation-input.network-information.network-id`">
\r
138 <outcome value="true">
\r
139 <return status="failure">
\r
140 <parameter name="ack-final" value="Y" />
\r
141 <parameter name="error-code" value="500" />
\r
142 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id already found in service-data" />
\r
150 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r
151 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />
\r
152 <parameter name="field1" value="__TIMESTAMP__" />
\r
153 <parameter name="field2" value="sotn-network-topology-operation-create" />
\r
154 <parameter name="field3" value="SOTN-Config" />
\r
157 <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.sotn.network-id`" />
\r
158 <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />
\r
159 <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />
\r
160 <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />
\r
161 <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />
\r
162 <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />
\r
163 <parameter name="service-data.networks.network_length" value="`$nidx+1`" />
\r
166 <parameter name="networkId" value="`$prop.sotn.network-id`" />
\r
167 <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
170 <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />
\r
171 <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
172 <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 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $prop.sotn.network-id">
\r
175 <parameter name="configuration-id" value="`$prop.sotn.network-id`" />
\r
176 <parameter name="configuration-name" value="`$prop.sotn.client-svc-name`" />
\r
177 <parameter name="configuration-type" value="`$prop.sotn.client-svc-descr`" />
\r
178 <parameter name="configuration-sub-type" value="`$prop.sotn.tenantId`" />
\r
179 <parameter name="orchestration-status" value="`$prop.sotn.vpnType`" />
\r
180 <parameter name="management-option" value="`$prop.sotn.cir`" />
\r
181 <parameter name="operational-status" value="Created" />
\r
182 <parameter name="model-customization-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />
\r
183 <parameter name="model-invariant-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />
\r
184 <parameter name="model-version-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-uuid`" />
\r
185 <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
187 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="service-instance:relationship-list" key="service-instance.service-instance-id = $service-data.service-information.service-instance-id AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type" force="true" pfx="tmp.AnAI-data">
\r
188 <parameter name="relationship-list.relationship[0].related-to" value="configuration" />
\r
189 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/configurations/configuration/' + $prop.sotn.network-id`" />
\r
190 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="configuration.configuration-id" />
\r
191 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.sotn.network-id`" />
\r
194 <parameter name="unique-src-ltpId" value="`'nodeId-' + $prop.sotn.src-access-node-id + '-ltpId-' + $prop.sotn.src-access-ltp-id`" />
\r
196 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration:relationship-list" key="configuration.configuration-id = $prop.sotn.network-id" force="true" pfx="tmp.AnAI-data">
\r
197 <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />
\r
198 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $unique-src-ltpId`" />
\r
199 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-id" />
\r
200 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-src-ltpId`" />
\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