Changes in MSA service flow
[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                 <switch test="`$optical-service-create-input.payload.param[$idx].name == 'uni1_client_proto'`">\r
91                     <outcome value='true'>\r
92                         <set>\r
93                             <parameter name='optical-service-create-input.payload.service-protocol' value="`$optical-service-create-input.payload.param[$idx].value`"/>\r
94                         </set>\r
95                     </outcome>\r
96                 </switch>\r
97             </for>\r
98             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
99 key='SELECT controller_id \r
100 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
101 WHERE interface_name = $optical-service-create-input.payload.service-aend.port-id' \r
102 pfx='db.source1'>\r
103                 <outcome value='success'>\r
104                     <set>\r
105                         <parameter name='controller1' value="`$db.source1.controller-id`"/>\r
106                     </set>\r
107                 </outcome>\r
108             </get-resource>\r
109             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
110 key='SELECT controller_id \r
111 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
112 WHERE interface_name = $optical-service-create-input.payload.service-zend.port-id' \r
113 pfx='db.source2'>\r
114                 <outcome value='success'>\r
115                     <set>\r
116                         <parameter name='controller2' value="`$db.source2.controller-id`"/>\r
117                     </set>\r
118                 </outcome>\r
119             </get-resource>\r
120             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
121                 <parameter name="ctx-destination" value="service1-svc-instance-id"/>\r
122             </execute>\r
123             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
124                 <parameter name="original_string" value='`$controller1`'/>\r
125                 <parameter name="regex" value="_"/>\r
126                 <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
127             </execute>\r
128             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
129                 <parameter name="original_string" value='`$controller2`'/>\r
130                 <parameter name="regex" value="_"/>\r
131                 <parameter name="ctx_memory_result_key" value="param-prefix2"/>\r
132             </execute>\r
133             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
134                 <parameter name="ctx-destination" value="service1-request-id"/>\r
135             </execute>\r
136             <set>\r
137                 <parameter name='controller-ip1' value='`$param-prefix1[1]`' />\r
138                 <parameter name='domain-type1' value='`$param-prefix1[0]`' />\r
139                 <parameter name='controller-ip2' value='`$param-prefix2[1]`' />\r
140                 <parameter name='domain-type2' value='`$param-prefix2[0]`' />\r
141             </set>\r
142             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
143                 <parameter name="ctx-destination" value="service2-svc-instance-id"/>\r
144             </execute>\r
145             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
146                 <parameter name="ctx-destination" value="service2-request-id"/>\r
147             </execute>\r
148             <switch test='`$controller1==$controller2`'>\r
149                 <outcome value='true'>\r
150                     <block>\r
151                         <set>\r
152                             <parameter name='as-request-id' value='`$optical-service-create-input.request-id`' />\r
153                             <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
154                         </set>\r
155                         <set>\r
156                             <parameter name='domain-requests' value="`$service1-request-id`" />\r
157                             <parameter name='optical-service-create-input.request-id' value="`$service1-request-id`" />\r
158                             <parameter name='optical-service-create-input.service-id' value="`$service1-svc-instance-id`" />\r
159                             <parameter name='optical-service-create-input.payload.service-name' value="`$optical-service-create-input.payload.service-name + '_' + 'MDONS-OTN'`" />\r
160                         </set>\r
161                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
162                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
163                             <parameter name="level" value="info" />\r
164                             <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
165                             <parameter name="field2" value="`'Access rquest_' + $as-request-id`"/>\r
166                         </record>\r
167                         <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
168                         <call module='optical-service' rpc='main-create' mode='sync' >\r
169                             <outcome value='success'>\r
170                                 <switch test='`$final-response-code`'>\r
171                                     <outcome value='200'>\r
172                                         <block>\r
173                                             <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
174 resource='SQL' \r
175 key='UPDATE REQUEST_DETAILS SET status = "CREATED" WHERE request_id = $as-request-id'\r
176 force='true' pfx='save-result'></save>\r
177                                             <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
178                                             <return status='success'>\r
179                                                 <parameter name='error-code' value='200' />\r
180                                                 <parameter name='error-message' value='Service Created Successfully' />\r
181                                                 <parameter name='ack-final-indicator' value='Y' />\r
182                                             </return>\r
183                                         </block>\r
184                                     </outcome>\r
185                                 </switch>\r
186                             </outcome>\r
187                         </call>\r
188                     </block>\r
189                 </outcome>\r
190                 <outcome value='false'>\r
191                     <block>\r
192                         <set>\r
193                             <parameter name='as-request-id' value='`$optical-service-create-input.request-id`' />\r
194                             <parameter name='as-svc-instance-id' value='`$optical-service-create-input.service-id`' />\r
195                             <parameter name='domain-requests' value="`$service1-request-id + ',' + $service2-request-id`" />\r
196                         </set>\r
197                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
198                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
199                             <parameter name="level" value="info" />\r
200                             <parameter name="field1" value="`'domain rquest_' + $domain-requests`"/>\r
201                             <parameter name="field2" value="`'Service 1 req id---' + $service1-request-id`"/>\r
202                             <parameter name="field3" value="`'Service 2 req id---' + $service2-request-id`"/>\r
203                         </record>\r
204                         <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
205                         <set>\r
206                             <parameter name='access-aend' value="`$optical-service-create-input.payload.service-aend.port-id`"/>\r
207                             <parameter name='access-zend' value="`$optical-service-create-input.payload.service-zend.port-id`"/>\r
208                         </set>\r
209                         <call module='optical-service' rpc='inter-domain-handling' mode='sync' ></call>\r
210                     </block>\r
211                 </outcome>\r
212             </switch>\r
213         </block>\r
214     </method>\r
215 </service-logic>