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
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
13 <outcome value='success'>
\r
15 <parameter name='src-node-id' value='`$src.pnf-name`' />
\r
16 <parameter name='src-esr-id' value='`$src.controller-id`' />
\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
25 <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
27 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE
\r
28 WHERE interface_name = $dst-port-id'
\r
30 <outcome value='success'>
\r
32 <parameter name='dst-node-id' value='`$dst.pnf-name`' />
\r
33 <parameter name='dst-esr-id' value='`$dst.controller-id`' />
\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
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
50 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
\r
51 <parameter name="ctx-destination" value="oof-request-id"/>
\r
53 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
\r
54 <parameter name="ctx-destination" value="oof-transaction-id"/>
\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
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
84 <parameter name='flag' value='false' />
\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
99 <outcome value='true'>
\r
100 <block atomic='true'>
\r
101 <for index='idmk' start='0' end='`$oof-response.solutions.routeInfo.linkList_length`' >
\r
103 <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService'
\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
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
120 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
\r
121 <parameter name="ctx-destination" value="domain-instance-id"/>
\r
123 <switch test="`$idomainsvc == $oof-response.solutions.routeInfo.serviceRoute_length - 1`">
\r
124 <outcome value='true'>
\r
126 <parameter name='domain-requests' value="`$domain-requests + $domain-request-id`" />
\r
129 <outcome value='false'>
\r
131 <parameter name='domain-requests' value="`$domain-requests + $domain-request-id + ','`" />
\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
143 <call module='optical-service' rpc='main-create' mode='sync' >
\r
144 <outcome value='success'>
\r
145 <block atomic='true'>
\r
147 <parameter name='service-status' value='`$final-response-code`' />
\r
149 <switch test='`$service-status == 200`'>
\r
150 <outcome value='true'>
\r
152 <parameter name='status' value='success' />
\r
155 <outcome value='false'>
\r
157 <parameter name='status' value='failure' />
\r
158 <parameter name='access-status' value='failure' />
\r
163 <parameter name='domain-status' value="`$domain-status + $domain-request-id + '_' + $status` " />
\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
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
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