DG'S added for MDONS use case to handle cross domain
[sdnc/oam.git] / platform-logic / optical-service / src / main / xml / optical-service_optical-service-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='optical-service' version='${project.version}'>\r
4     <method rpc='optical-service-create' mode='sync'>\r
5         <block atomic='true'>\r
6             <for index='idx' start='0' end='`$optical-service-create-input.payload.param_length`' >\r
7                 <set>\r
8                     <parameter name='params' value='`$optical-service-create-input.payload.param[$idx]`' />\r
9                 </set>\r
10                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_id'`">\r
11                     <outcome value='true'>\r
12                         <set>\r
13                             <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
14                         </set>\r
15                     </outcome>\r
16                 </switch>\r
17                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
18                     <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
19                     <parameter name="level" value="info" />\r
20                     <parameter name="field1" value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
21                 </record>\r
22                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni2_id'`">\r
23                     <outcome value='true'>\r
24                         <set>\r
25                             <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
26                         </set>\r
27                     </outcome>\r
28                 </switch>\r
29                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
30                     <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
31                     <parameter name="level" value="info" />\r
32                     <parameter name="field1" value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
33                 </record>\r
34                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_coding_func'`">\r
35                     <outcome value='true'>\r
36                         <set>\r
37                             <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
38                         </set>\r
39                     </outcome>\r
40                 </switch>\r
41                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni_id'`">\r
42                     <outcome value='true'>\r
43                         <set>\r
44                             <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
45                         </set>\r
46                     </outcome>\r
47                 </switch>\r
48                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni_id'`">\r
49                     <outcome value='true'>\r
50                         <set>\r
51                             <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
52                         </set>\r
53                     </outcome>\r
54                 </switch>\r
55                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni_coding_func'`">\r
56                     <outcome value='true'>\r
57                         <set>\r
58                             <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
59                         </set>\r
60                     </outcome>\r
61                 </switch>\r
62                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni1_id'`">\r
63                     <outcome value='true'>\r
64                         <set>\r
65                             <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
66                         </set>\r
67                     </outcome>\r
68                 </switch>\r
69                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni2_id'`">\r
70                     <outcome value='true'>\r
71                         <set>\r
72                             <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
73                         </set>\r
74                     </outcome>\r
75                 </switch>\r
76                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni1_coding_func'`">\r
77                     <outcome value='true'>\r
78                         <set>\r
79                             <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
80                         </set>\r
81                     </outcome>\r
82                 </switch>\r
83                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'service-name'`">\r
84                     <outcome value='true'>\r
85                         <set>\r
86                             <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
87                         </set>\r
88                     </outcome>\r
89                 </switch>\r
90             </for>\r
91             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
92 key='SELECT controller_id \r
93 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
94 WHERE interface_name = $optical-service-create-input.payload.service-aend.port-id' \r
95 pfx='db.source1'>\r
96                 <outcome value='success'>\r
97                     <set>\r
98                         <parameter name='controller1' value="`$db.source1.controller-id`"/>\r
99                     </set>\r
100                 </outcome>\r
101             </get-resource>\r
102             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
103 key='SELECT controller_id \r
104 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
105 WHERE interface_name = $optical-service-create-input.payload.service-zend.port-id' \r
106 pfx='db.source2'>\r
107                 <outcome value='success'>\r
108                     <set>\r
109                         <parameter name='controller2' value="`$db.source2.controller-id`"/>\r
110                     </set>\r
111                 </outcome>\r
112             </get-resource>\r
113             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
114                 <parameter name="ctx-destination" value="service1-svc-instance-id"/>\r
115             </execute>\r
116             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
117                 <parameter name="original_string" value='`$controller1`'/>\r
118                 <parameter name="regex" value="_"/>\r
119                 <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
120             </execute>\r
121             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
122                 <parameter name="original_string" value='`$controller2`'/>\r
123                 <parameter name="regex" value="_"/>\r
124                 <parameter name="ctx_memory_result_key" value="param-prefix2"/>\r
125             </execute>\r
126             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
127                 <parameter name="ctx-destination" value="service1-request-id"/>\r
128             </execute>\r
129             <set>\r
130                 <parameter name='controller-ip1' value='`$param-prefix1[1]`' />\r
131                 <parameter name='domain-type1' value='`$param-prefix1[0]`' />\r
132                 <parameter name='controller-ip2' value='`$param-prefix2[1]`' />\r
133                 <parameter name='domain-type2' value='`$param-prefix2[0]`' />\r
134             </set>\r
135             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
136                 <parameter name="ctx-destination" value="service2-svc-instance-id"/>\r
137             </execute>\r
138             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
139                 <parameter name="ctx-destination" value="service2-request-id"/>\r
140             </execute>\r
141             <switch test='`$controller1==$controller2`'>\r
142                 <outcome value='true'>\r
143                     <block>\r
144                         <set>\r
145                             <parameter name='as-request-id' value='`$optical-service-create-input.request-id`' />\r
146                             <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
147                         </set>\r
148                         <set>\r
149                             <parameter name='domain-requests' value="`$service1-request-id`" />\r
150                             <parameter name='optical-service-create-input.request-id' value="`$service1-request-id`" />\r
151                             <parameter name='optical-service-create-input.service-id' value="`$service1-svc-instance-id`" />\r
152                             <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.service-name + '_' + 'MDONS-OTN'`" />\r
153                         </set>\r
154                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
155                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
156                             <parameter name="level" value="info" />\r
157                             <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
158                             <parameter name="field2" value="`'Access rquest_' + $as-request-id`"/>\r
159                         </record>\r
160                         <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="INSERT INTO REQUEST_DETAILS (request_id, controller_id, status, service_rate, service_instance_id, service_type, global_customer_id, notification_url, domain_requests ) VALUES ( $as-request-id , null , 'CREATING' , $optical-service-create-input.payload.service-rate ,  $as-svc-instance-id , $optical-service-create-input.service-type , $optical-service-create-input.global-customer-id , $optical-service-create-input.notification-url , $domain-requests );"></save>\r
161                         <call module='optical-service' rpc='main-create' mode='sync' >\r
162                             <outcome value='success'>\r
163                                 <switch test='`$final-response-code`'>\r
164                                     <outcome value='200'>\r
165                                         <block>\r
166                                             <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
167 resource='SQL' \r
168 key='UPDATE REQUEST_DETAILS SET status = "CREATED" WHERE request_id = $as-request-id'\r
169 force='true' pfx='save-result'></save>\r
170                                             <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
171                                             <return status='success'>\r
172                                                 <parameter name='error-code' value='200' />\r
173                                                 <parameter name='error-message' value='Service Created Successfully' />\r
174                                                 <parameter name='ack-final-indicator' value='Y' />\r
175                                             </return>\r
176                                         </block>\r
177                                     </outcome>\r
178                                 </switch>\r
179                             </outcome>\r
180                         </call>\r
181                     </block>\r
182                 </outcome>\r
183                 <outcome value='false'>\r
184                     <block>\r
185                         <set>\r
186                             <parameter name='as-request-id' value='`$optical-service-create-input.request-id`' />\r
187                             <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
188                             <parameter name='domain-requests' value="`$service1-request-id + ',' + $service2-request-id`" />\r
189                         </set>\r
190                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
191                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
192                             <parameter name="level" value="info" />\r
193                             <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
194                             <parameter name="field2" value="`'Service 1 req id---' + $service1-request-id`"/>\r
195                             <parameter name="field3" value="`'Service 2 req id---' + $service2-request-id`"/>\r
196                         </record>\r
197                         <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="INSERT INTO REQUEST_DETAILS (request_id, controller_id, status, service_rate, service_instance_id, service_type, global_customer_id, notification_url, domain_requests ) VALUES ( $as-request-id , null , 'CREATING' , $optical-service-create-input.payload.service-rate ,  $as-svc-instance-id , $optical-service-create-input.service-type , $optical-service-create-input.global-customer-id , $optical-service-create-input.notification-url , $domain-requests );"></save>\r
198                         <set>\r
199                             <parameter name='access-aend' value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
200                             <parameter name='access-zend' value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
201                         </set>\r
202                         <call module='optical-service' rpc='inter-domain-handling' mode='sync' ></call>\r
203                     </block>\r
204                 </outcome>\r
205             </switch>\r
206         </block>\r
207     </method>\r
208 </service-logic>