DG changes for the closed loop and async
[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             <set>\r
7                 <parameter name='pinterface-list' value=""/>\r
8             </set>\r
9             <for index='idx' start='0' end='`$optical-service-create-input.payload.param_length`' >\r
10                 <set>\r
11                     <parameter name='params' value='`$optical-service-create-input.payload.param[$idx]`' />\r
12                 </set>\r
13                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_id'`">\r
14                     <outcome value='true'>\r
15                         <set>\r
16                             <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
17                             <parameter name='pinterface-aend' value="`'uni1_id--'+ $optical-service-create-input.payload.param[$idx].value`"/>\r
18                         </set>\r
19                     </outcome>\r
20                 </switch>\r
21                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
22                     <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
23                     <parameter name="level" value="info" />\r
24                     <parameter name="field1" value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
25                 </record>\r
26                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni2_id'`">\r
27                     <outcome value='true'>\r
28                         <set>\r
29                             <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
30                             <parameter name='pinterface-zend' value="`',uni2_id--'+ $optical-service-create-input.payload.param[$idx].value`"/>\r
31                         </set>\r
32                     </outcome>\r
33                 </switch>\r
34                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
35                     <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
36                     <parameter name="level" value="info" />\r
37                     <parameter name="field1" value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
38                 </record>\r
39                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_coding_func'`">\r
40                     <outcome value='true'>\r
41                         <set>\r
42                             <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
43                         </set>\r
44                     </outcome>\r
45                 </switch>\r
46                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni_id'`">\r
47                     <outcome value='true'>\r
48                         <set>\r
49                             <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
50                             <parameter name='pinterface-aend' value="`'uni_id--'+ $optical-service-create-input.payload.param[$idx].value`"/>\r
51                         </set>\r
52                     </outcome>\r
53                 </switch>\r
54                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni_id'`">\r
55                     <outcome value='true'>\r
56                         <set>\r
57                             <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
58                             <parameter name='pinterface-zend' value="`',enni_id--'+ $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 == 'uni_coding_func'`">\r
63                     <outcome value='true'>\r
64                         <set>\r
65                             <parameter name='optical-service-create-input.payload.service-rate' 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 == 'enni1_id'`">\r
70                     <outcome value='true'>\r
71                         <set>\r
72                             <parameter name='optical-service-create-input.payload.service-aend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
73                             <parameter name='pinterface-aend' value="`'enni1_id--'+ $optical-service-create-input.payload.param[$idx].value`"/>\r
74                         </set>\r
75                     </outcome>\r
76                 </switch>\r
77                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni2_id'`">\r
78                     <outcome value='true'>\r
79                         <set>\r
80                             <parameter name='optical-service-create-input.payload.service-zend.port-id' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
81                             <parameter name='pinterface-zend' value="`',enni2_id--'+ $optical-service-create-input.payload.param[$idx].value`"/>\r
82                         </set>\r
83                     </outcome>\r
84                 </switch>\r
85                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'enni1_coding_func'`">\r
86                     <outcome value='true'>\r
87                         <set>\r
88                             <parameter name='optical-service-create-input.payload.service-rate' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
89                         </set>\r
90                     </outcome>\r
91                 </switch>\r
92                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'service-name'`">\r
93                     <outcome value='true'>\r
94                         <set>\r
95                             <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
96                         </set>\r
97                     </outcome>\r
98                 </switch>\r
99                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_client_proto'`">\r
100                     <outcome value='true'>\r
101                         <set>\r
102                             <parameter name='optical-service-create-input.payload.service-protocol' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
103                         </set>\r
104                     </outcome>\r
105                 </switch>\r
106             </for>\r
107             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
108 key='SELECT controller_id \r
109 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
110 WHERE interface_name = $optical-service-create-input.payload.service-aend.port-id' \r
111 pfx='db.source1'>\r
112                 <outcome value='success'>\r
113                     <set>\r
114                         <parameter name='controller1' value="`$db.source1.controller-id`"/>\r
115                     </set>\r
116                 </outcome>\r
117             </get-resource>\r
118             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
119 key='SELECT controller_id \r
120 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
121 WHERE interface_name = $optical-service-create-input.payload.service-zend.port-id' \r
122 pfx='db.source2'>\r
123                 <outcome value='success'>\r
124                     <set>\r
125                         <parameter name='controller2' value="`$db.source2.controller-id`"/>\r
126                     </set>\r
127                 </outcome>\r
128             </get-resource>\r
129             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
130                 <parameter name="ctx-destination" value="service1-svc-instance-id"/>\r
131             </execute>\r
132             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
133                 <parameter name="original_string" value='`$controller1`'/>\r
134                 <parameter name="regex" value="_"/>\r
135                 <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
136             </execute>\r
137             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
138                 <parameter name="original_string" value='`$controller2`'/>\r
139                 <parameter name="regex" value="_"/>\r
140                 <parameter name="ctx_memory_result_key" value="param-prefix2"/>\r
141             </execute>\r
142             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
143                 <parameter name="ctx-destination" value="service1-request-id"/>\r
144             </execute>\r
145             <set>\r
146                 <parameter name='controller-ip1' value='`$param-prefix1[1]`' />\r
147                 <parameter name='domain-type1' value='`$param-prefix1[0]`' />\r
148                 <parameter name='controller-ip2' value='`$param-prefix2[1]`' />\r
149                 <parameter name='domain-type2' value='`$param-prefix2[0]`' />\r
150             </set>\r
151             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
152                 <parameter name="ctx-destination" value="service2-svc-instance-id"/>\r
153             </execute>\r
154             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
155                 <parameter name="ctx-destination" value="service2-request-id"/>\r
156             </execute>\r
157             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
158                 <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
159                 <parameter name="level" value="info" />\r
160                 <parameter name="field1" value="Controller Ids"/>\r
161                 <parameter name="field2" value="`$controller1`"/>\r
162                 <parameter name="field3" value="`$controller2`"/>\r
163             </record>\r
164             <set>\r
165                 <parameter name='pinterface-list' value="`$pinterface-aend + $pinterface-zend`"/>\r
166             </set>\r
167             <switch test='`$controller1==$controller2`'>\r
168                 <outcome value='true'>\r
169                     <block>\r
170                         <set>\r
171                             <parameter name='access-request-id' value='`$optical-service-create-input.request-id`' />\r
172                             <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
173                         </set>\r
174                         <set>\r
175                             <parameter name='domain-requests' value="`$service1-request-id`" />\r
176                             <parameter name='optical-service-create-input.request-id' value="`$service1-request-id`" />\r
177                             <parameter name='optical-service-create-input.service-id' value="`$service1-svc-instance-id`" />\r
178                             <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.service-name + '_' + 'MDONS-OTN'`" />\r
179                         </set>\r
180                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
181                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
182                             <parameter name="level" value="info" />\r
183                             <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
184                             <parameter name="field2" value="`'Access rquest_' + $as-request-id`"/>\r
185                         </record>\r
186                         <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, pinterface_list ) VALUES ( $access-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 , $pinterface-list );"></save>\r
187                         <call module='optical-service' rpc='main-create' mode='sync' >\r
188                             <outcome value='success'>\r
189                                 <switch test='`$final-response-code`'>\r
190                                     <outcome value='200'>\r
191                                         <block>\r
192                                             <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
193                                             <switch test="`$domain-type == 'MSA'`">\r
194                                                 <outcome value='true'>\r
195                                                     <return status='success'>\r
196                                                         <parameter name='error-code' value='200' />\r
197                                                         <parameter name='error-message' value='Service Created Successfully' />\r
198                                                         <parameter name='ack-final-indicator' value='N' />\r
199                                                     </return>\r
200                                                 </outcome>\r
201                                                 <outcome value='false'>\r
202                                                     <return status='success'>\r
203                                                         <parameter name='error-code' value='200' />\r
204                                                         <parameter name='error-message' value='Service Created Successfully' />\r
205                                                         <parameter name='ack-final-indicator' value='Y' />\r
206                                                     </return>\r
207                                                 </outcome>\r
208                                             </switch>\r
209                                         </block>\r
210                                     </outcome>\r
211                                 </switch>\r
212                             </outcome>\r
213                         </call>\r
214                     </block>\r
215                 </outcome>\r
216                 <outcome value='false'>\r
217                     <block>\r
218                         <set>\r
219                             <parameter name='access-request-id' value='`$optical-service-create-input.request-id`' />\r
220                             <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
221                             <parameter name='service-rate' value='`$optical-service-create-input.payload.service-rate`' />\r
222                         </set>\r
223                         <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, pinterface_list ) VALUES ( $access-request-id , null , 'CREATING' , $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 , $pinterface-list );"></save>\r
224                         <set>\r
225                             <parameter name='src-port-id' value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
226                             <parameter name='dst-port-id' value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
227                             <parameter name='access-service-name' value="`$optical-service-create-input.payload.service-name`"/>\r
228                         </set>\r
229                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
230                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
231                             <parameter name="level" value="info" />\r
232                             <parameter name="field1" value="Access service details"/>\r
233                             <parameter name="field2" value="`$access-request-id`"/>\r
234                             <parameter name="field3" value="`$src-port-id`"/>\r
235                         </record>\r
236                         <call module='optical-service' rpc='inter-domain-handling' mode='sync' ></call>\r
237                     </block>\r
238                 </outcome>\r
239             </switch>\r
240         </block>\r
241     </method>\r
242 </service-logic>