Refactored SOTN and SDWAN DG
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / sdwan / GENERIC-RESOURCE-API_sdwan-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='sdwan-network-topology-operation-create' mode='sync'>\r
5         <block atomic="true">\r
6             <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-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.sdwan.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.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 == 'topology'`">\r
20                         <outcome value='true'>\r
21                             <set>\r
22                                 <parameter name='prop.topology' 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                 </block>\r
27             </for>\r
28             <switch test='`$service-data.networks.network_length`'>\r
29                 <outcome value=''>\r
30                     <set>\r
31                         <parameter name='nidx' value='0' />\r
32                     </set>\r
33                 </outcome>\r
34                 <outcome value='Other'>\r
35                     <block>\r
36                         <set>\r
37                             <parameter name='nidx' value='`$service-data.networks.network_length`' />\r
38                         </set>\r
39                         <for index='idx' start='0' end='`$nidx`' >\r
40                             <switch test="`$service-data.networks.network[$idx].network-id == $network-topology-operation-input.network-information.network-id`">\r
41                                 <outcome value='true'>\r
42                                     <return status='failure'>\r
43                                         <parameter name='ack-final' value='Y'/>\r
44                                         <parameter name="error-code" value="500" />\r
45                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id already found in service-data" />\r
46                                     </return>\r
47                                 </outcome>\r
48                             </switch>\r
49                         </for>\r
50                     </block>\r
51                 </outcome>\r
52             </switch>\r
53             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
54                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
55                 <parameter name="field1" value="__TIMESTAMP__"/>\r
56                 <parameter name="field2" value="sdwan-network-topology-operation-create"/>\r
57                 <parameter name="field3" value="SDWAN-Config"/>\r
58             </record>\r
59             <set>\r
60                 <parameter name='service-data.networks.network[$nidx].network-id' value='`$prop.sdwan.network-id`' />\r
61                 <parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\r
62                 <parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\r
63                 <parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\r
64                 <parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\r
65                 <parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\r
66                 <parameter name='service-data.networks.network_length' value='`$nidx+1`' />\r
67             </set>\r
68             <set>\r
69                 <parameter name='networkId' value='`$prop.sdwan.network-id`' />\r
70                 <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.sdwan.network-id  + '/network-data/'` " />\r
71             </set>\r
72             <set>\r
73                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='Created' />\r
74                 <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
75                 <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
76             </set>\r
77             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
78       key='sdwan-vpn.sdwan-vpn-id = $prop.sdwan.network-id' >\r
79                 <parameter name='sdwan-vpn-id' value='`$prop.sdwan.network-id`' />\r
80                 <parameter name='sdwan-vpn-name' value='`$prop.name`' />\r
81                 <parameter name='topology' value='`$prop.topology`' />\r
82                 <parameter name='operational-status' value='Created' />\r
83                 <parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\r
84                 <parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\r
85                 <parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />\r
86                 <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.sdwan.network-id  + '/network-data/'` " />\r
87             </save>\r
88             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list' \r
89       key='service-instance.service-instance-id = $service-data.service-information.service-instance-id \r
90          AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id \r
91          AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type' \r
92       force="true" pfx="tmp.AnAI-data">\r
93                 <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
94                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.sdwan.network-id`" />\r
95                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" />\r
96                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.sdwan.network-id`" />\r
97             </save>\r
98             <return status='success'>\r
99                 <parameter name="ack-final-indicator" value="Y" />\r
100                 <parameter name="error-code" value="200" />\r
101                 <parameter name="error-message" value="`$error-message`" />\r
102             </return>\r
103         </block>\r
104     </method>\r
105 </service-logic>\r