DG changes for the closed loop and async
[sdnc/oam.git] / platform-logic / optical-service / src / main / xml / optical-service_inter-domain-handling.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='inter-domain-handling' mode='sync'>\r
5         <block atomic="true">\r
6             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
7                 <parameter name='fileName' value='/opt/onap/sdnc/data/properties/optical-service-dg.properties' />\r
8                 <parameter name='contextPrefix' value='prop' />\r
9             </execute>\r
10             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
11 key='SELECT * from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE WHERE interface_name = $src-port-id'\r
12 pfx='src'>\r
13                 <outcome value='success'>\r
14                     <set>\r
15                         <parameter name='src-node-id' value='`$src.pnf-name`' />\r
16                         <parameter name='src-esr-id' value='`$src.controller-id`' />\r
17                     </set>\r
18                 </outcome>\r
19             </get-resource>\r
20             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
21                 <parameter name="original_string" value='`$src-esr-id`'/>\r
22                 <parameter name="regex" value="_"/>\r
23                 <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
24             </execute>\r
25             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
26 key='SELECT *\r
27 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE\r
28 WHERE interface_name = $dst-port-id'\r
29 pfx='dst'>\r
30                 <outcome value='success'>\r
31                     <set>\r
32                         <parameter name='dst-node-id' value='`$dst.pnf-name`' />\r
33                         <parameter name='dst-esr-id' value='`$dst.controller-id`' />\r
34                     </set>\r
35                 </outcome>\r
36             </get-resource>\r
37             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
38                 <parameter name="original_string" value='`$dst-esr-id`'/>\r
39                 <parameter name="regex" value="_"/>\r
40                 <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
41             </execute>\r
42             <set>\r
43                 <parameter name='src-controller-id' value='`$param-prefix[2]`' />\r
44                 <parameter name='dst-controller-id' value='`$param-prefix1[2]`' />\r
45                 <parameter name='flag' value='true' />\r
46                 <parameter name='domain-requests' value='' />\r
47                 <parameter name='access-status' value='success' />\r
48                 <parameter name='domain-status' value='' />\r
49             </set>\r
50             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
51                 <parameter name="ctx-destination" value="oof-request-id"/>\r
52             </execute>\r
53             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
54                 <parameter name="ctx-destination" value="oof-transaction-id"/>\r
55             </execute>\r
56             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
57                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oof-mdons.json'`" />\r
58                 <parameter name="restapiUrl" value="` $prop.oof.mdons.url`" />\r
59                 <parameter name="restapiUser" value="admin"/>\r
60                 <parameter name="restapiPassword" value="admin"/>\r
61                 <parameter name="httpMethod" value="POST"/>\r
62                 <parameter name="responsePrefix" value="oof-response"/>\r
63                 <parameter name='contentType' value='application/json' />\r
64                 <parameter name='format' value='json' />\r
65                 <outcome value='failure'>\r
66                     <return status='failure'>\r
67                         <parameter name='error-code' value='500' />\r
68                         <parameter name='error-message' value='No service route found by OOF' />\r
69                         <parameter name='ack-final-indicator' value="Y" />\r
70                     </return>\r
71                 </outcome>\r
72                 <outcome value='success'>\r
73                     <block atomic='true'>\r
74                         <for index='idml' start='0' end='`$oof-response.solutions.routeInfo.linkList_length`' >\r
75                             <block atomic='true'>\r
76                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
77 resource="logical-link"\r
78 key="logical-link.link-name = $oof-response.solutions.routeInfo.linkList[$idml]"\r
79 pfx='inter' local-only='false' ></get-resource>\r
80                                 <switch test="`$inter.operational-status == up`">\r
81                                     <outcome value='false'>\r
82                                         <block>\r
83                                             <set>\r
84                                                 <parameter name='flag' value='false' />\r
85                                             </set>\r
86                                         </block>\r
87                                     </outcome>\r
88                                 </switch>\r
89                             </block>\r
90                         </for>\r
91                         <switch test="`$flag == 'true' `">\r
92                             <outcome value='false'>\r
93                                 <return status='failure'>\r
94                                     <parameter name='error-code' value='500' />\r
95                                     <parameter name='error-message' value='Inter domain links not available' />\r
96                                     <parameter name='ack-final-indicator' value="Y" />\r
97                                 </return>\r
98                             </outcome>\r
99                             <outcome value='true'>\r
100                                 <block atomic='true'>\r
101                                     <for index='idmk' start='0' end='`$oof-response.solutions.routeInfo.linkList_length`' >\r
102                                         <block>\r
103                                             <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' \r
104 force='true'\r
105 resource='logical-link'\r
106      key='logical-link.link-name = $oof-response.solutions.routeInfo.linkList[$idmk]'\r
107       local-only='false'>\r
108                                                 <parameter name='operational-status' value='occupied' />\r
109                                             </update>\r
110                                         </block>\r
111                                     </for>\r
112                                 </block>\r
113                             </outcome>\r
114                         </switch>\r
115                         <for index='idomainsvc' start='0' end='`$oof-response.solutions.routeInfo.serviceRoute_length`' >\r
116                             <block atomic='true'>\r
117                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
118                                     <parameter name="ctx-destination" value="domain-request-id"/>\r
119                                 </execute>\r
120                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
121                                     <parameter name="ctx-destination" value="domain-instance-id"/>\r
122                                 </execute>\r
123                                 <switch test="`$idomainsvc == $oof-response.solutions.routeInfo.serviceRoute_length - 1`">\r
124                                     <outcome value='true'>\r
125                                         <set>\r
126                                             <parameter name='domain-requests' value="`$domain-requests + $domain-request-id`" />\r
127                                         </set>\r
128                                     </outcome>\r
129                                     <outcome value='false'>\r
130                                         <set>\r
131                                             <parameter name='domain-requests' value="`$domain-requests + $domain-request-id + ','`" />\r
132                                         </set>\r
133                                     </outcome>\r
134                                 </switch>\r
135                                 <set>\r
136                                     <parameter name='optical-service-create-input.payload.service-aend.port-id' value='`$oof-response.solutions.routeInfo.serviceRoute[$idomainsvc].srcInterfaceId`' />\r
137                                     <parameter name='optical-service-create-input.payload.service-zend.port-id' value='`$oof-response.solutions.routeInfo.serviceRoute[$idomainsvc].dstInterfaceId`' />\r
138                                     <parameter name='optical-service-create-input.payload.service-name' value="`$access-service-name +  '_MDONS-OTN'`" />\r
139                                     <parameter name='domain-type' value="TAPI" />\r
140                                     <parameter name='optical-service-create-input.request-id' value="`$domain-request-id`" />\r
141                                     <parameter name='optical-service-create-input.service-id' value="`$domain-instance-id`" />\r
142                                 </set>\r
143                                 <call module='optical-service' rpc='main-create' mode='sync' >\r
144                                     <outcome value='success'>\r
145                                         <block atomic='true'>\r
146                                             <set>\r
147                                                 <parameter name='service-status' value='`$final-response-code`' />\r
148                                             </set>\r
149                                             <switch test='`$service-status == 200`'>\r
150                                                 <outcome value='true'>\r
151                                                     <set>\r
152                                                         <parameter name='status' value='success' />\r
153                                                     </set>\r
154                                                 </outcome>\r
155                                                 <outcome value='false'>\r
156                                                     <set>\r
157                                                         <parameter name='status' value='failure' />\r
158                                                         <parameter name='access-status' value='failure' />\r
159                                                     </set>\r
160                                                 </outcome>\r
161                                             </switch>\r
162                                             <set>\r
163                                                 <parameter name='domain-status' value="`$domain-status + $domain-request-id + '_' + $status` " />\r
164                                             </set>\r
165                                         </block>\r
166                                     </outcome>\r
167                                 </call>\r
168                             </block>\r
169                         </for>\r
170                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
171                             <parameter name="file" value="/opt/opendaylight/current/data/log/oof-mdons.log" />\r
172                             <parameter name="level" value="info" />\r
173                             <parameter name="field1" value="Domain Status"/>\r
174                             <parameter name="field2" value="`$domain-status`"/>\r
175                             <parameter name="field3" value="`$flag`"/>\r
176                             <parameter name="field4" value="`$access-status`"/>\r
177                         </record>\r
178                         <switch test="`$access-status == 'success'`">\r
179                             <outcome value='true'>\r
180                                 <block atomic='true'>\r
181                                     <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
182 resource='SQL' \r
183 key='UPDATE REQUEST_DETAILS SET status = "CREATED", domain_requests = $domain-requests WHERE request_id = $access-request-id'\r
184 force='true' pfx='save-result'></save>\r
185                                     <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
186                                     <return status='success'>\r
187                                         <parameter name='error-code' value='200' />\r
188                                         <parameter name='error-message' value='Multi-domain-service successfully created' />\r
189                                         <parameter name='ack-final-indicator' value="Y" />\r
190                                     </return>\r
191                                 </block>\r
192                             </outcome>\r
193                         </switch>\r
194                     </block>\r
195                 </outcome>\r
196             </execute>\r
197         </block>\r
198     </method>\r
199 </service-logic>