Merge "Added subscription for SdncAaiDmaapConsumer"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_sotn-network-topology-operation-create.xml
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
8          </execute>\r
9          <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
10             <block>\r
11                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">\r
12                   <outcome value="true">\r
13                      <set>\r
14                         <parameter name="prop.sotn.etht-svc-name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
15                      </set>\r
16                   </outcome>\r
17                </switch>\r
18                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'description'`">\r
19                   <outcome value="true">\r
20                      <set>\r
21                         <parameter name="prop.sotn.etht-svc-descr" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
22                      </set>\r
23                   </outcome>\r
24                </switch>\r
25                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tenantId'`">\r
26                   <outcome value="true">\r
27                      <set>\r
28                         <parameter name="prop.sotn.tenantId" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
29                      </set>\r
30                   </outcome>\r
31                </switch>\r
32                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'vpnType'`">\r
33                   <outcome value="true">\r
34                      <set>\r
35                         <parameter name="prop.sotn.vpnType" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
36                      </set>\r
37                   </outcome>\r
38                </switch>\r
39                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CIR'`">\r
40                   <outcome value="true">\r
41                      <set>\r
42                         <parameter name="prop.sotn.cir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
43                      </set>\r
44                   </outcome>\r
45                </switch>\r
46                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'EIR'`">\r
47                   <outcome value="true">\r
48                      <set>\r
49                         <parameter name="prop.sotn.eir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
50                      </set>\r
51                   </outcome>\r
52                </switch>\r
53                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CBS'`">\r
54                   <outcome value="true">\r
55                      <set>\r
56                         <parameter name="prop.sotn.cbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
57                      </set>\r
58                   </outcome>\r
59                </switch>\r
60                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'PBS'`">\r
61                   <outcome value="true">\r
62                      <set>\r
63                         <parameter name="prop.sotn.pbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
64                      </set>\r
65                   </outcome>\r
66                </switch>\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
69                      <set>\r
70                         <parameter name="prop.sotn.colorAware" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
71                      </set>\r
72                   </outcome>\r
73                </switch>\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
76                      <set>\r
77                         <parameter name="prop.sotn.couplingFlag" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
78                      </set>\r
79                   </outcome>\r
80                </switch>\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
83                      <set>\r
84                         <parameter name="prop.sotn.access-provider-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
85                      </set>\r
86                   </outcome>\r
87                </switch>\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
90                      <set>\r
91                         <parameter name="prop.sotn.access-client-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
92                      </set>\r
93                   </outcome>\r
94                </switch>\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
97                      <set>\r
98                         <parameter name="prop.sotn.access-topology-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
99                      </set>\r
100                   </outcome>\r
101                </switch>\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
104                      <set>\r
105                         <parameter name="prop.sotn.access-node-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
106                      </set>\r
107                   </outcome>\r
108                </switch>\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
111                      <set>\r
112                         <parameter name="prop.sotn.access-ltp-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
113                      </set>\r
114                   </outcome>\r
115                </switch>\r
116                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cVLAN'`">\r
117                   <outcome value="true">\r
118                      <set>\r
119                         <parameter name="prop.sotn.cVLAN" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />\r
120                      </set>\r
121                   </outcome>\r
122                </switch>\r
123             </block>\r
124          </for>\r
125          <switch test="`$service-data.networks.network_length`">\r
126             <outcome value="">\r
127                <set>\r
128                   <parameter name="nidx" value="0" />\r
129                </set>\r
130             </outcome>\r
131             <outcome value="Other">\r
132                <block>\r
133                   <set>\r
134                      <parameter name="nidx" value="`$service-data.networks.network_length`" />\r
135                   </set>\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
143                            </return>\r
144                         </outcome>\r
145                      </switch>\r
146                   </for>\r
147                </block>\r
148             </outcome>\r
149          </switch>\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
155          </record>\r
156          <set>\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
164          </set>\r
165          <set>\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
168          </set>\r
169          <set>\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
173          </set>\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
186          </save>\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
192          </save>\r
193          <set>\r
194             <parameter name="unique-src-ltpId" value="`'nodeId-' + $prop.sotn.src-access-node-id + '-ltpId-' + $prop.sotn.src-access-ltp-id`" />\r
195          </set>\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
201          </save>\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