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
<method rpc='inter-domain-handling' mode='sync'>\r
<block atomic="true">\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
-resource="logical-links"\r
-key=" "\r
-pfx='inter' local-only='false' >\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value='No inter-domain-links available' />\r
- <parameter name='ack-final-indicator' value="Y" />\r
- </return>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+ <parameter name='fileName' value='/opt/onap/sdnc/data/properties/optical-service-dg.properties' />\r
+ <parameter name='contextPrefix' value='prop' />\r
+ </execute>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+key='SELECT * from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE WHERE interface_name = $src-port-id'\r
+pfx='src'>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='src-node-id' value='`$src.pnf-name`' />\r
+ <parameter name='src-esr-id' value='`$src.controller-id`' />\r
+ </set>\r
</outcome>\r
+ </get-resource>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+ <parameter name="original_string" value='`$src-esr-id`'/>\r
+ <parameter name="regex" value="_"/>\r
+ <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+ </execute>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+key='SELECT *\r
+from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE\r
+WHERE interface_name = $dst-port-id'\r
+pfx='dst'>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='dst-node-id' value='`$dst.pnf-name`' />\r
+ <parameter name='dst-esr-id' value='`$dst.controller-id`' />\r
+ </set>\r
+ </outcome>\r
+ </get-resource>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+ <parameter name="original_string" value='`$dst-esr-id`'/>\r
+ <parameter name="regex" value="_"/>\r
+ <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
+ </execute>\r
+ <set>\r
+ <parameter name='src-controller-id' value='`$param-prefix[2]`' />\r
+ <parameter name='dst-controller-id' value='`$param-prefix1[2]`' />\r
+ <parameter name='flag' value='true' />\r
+ <parameter name='domain-requests' value='' />\r
+ <parameter name='access-status' value='success' />\r
+ <parameter name='domain-status' value='' />\r
+ </set>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+ <parameter name="ctx-destination" value="oof-request-id"/>\r
+ </execute>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+ <parameter name="ctx-destination" value="oof-transaction-id"/>\r
+ </execute>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oof-mdons.json'`" />\r
+ <parameter name="restapiUrl" value="` $prop.oof.mdons.url`" />\r
+ <parameter name="restapiUser" value="admin"/>\r
+ <parameter name="restapiPassword" value="admin"/>\r
+ <parameter name="httpMethod" value="POST"/>\r
+ <parameter name="responsePrefix" value="oof-response"/>\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name='format' value='json' />\r
<outcome value='failure'>\r
<return status='failure'>\r
<parameter name='error-code' value='500' />\r
- <parameter name='error-message' value='Could not retrieve logical-links' />\r
+ <parameter name='error-message' value='No service route found by OOF' />\r
<parameter name='ack-final-indicator' value="Y" />\r
</return>\r
</outcome>\r
<outcome value='success'>\r
- <block atomic="true">\r
- <for index='ida' start='0' end='`$inter.logical-link_length`' >\r
- <switch test='`$inter.logical-link[$ida].link-type`'>\r
- <outcome value='inter-domain'>\r
- <switch test='`$inter.logical-link[$ida].available-capacity == 0`'>\r
- <outcome value='true'></outcome>\r
- <outcome value='false'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='access-bend' value='`$inter.logical-link[$ida].relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
- <parameter name='access-cend' value='`$inter.logical-link[$ida].relationship-list.relationship[1].relationship-data[1].relationship-value`' />\r
- </set>\r
- <break/>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- </switch>\r
+ <block atomic='true'>\r
+ <for index='idml' start='0' end='`$oof-response.solutions.routeInfo.linkList_length`' >\r
+ <block atomic='true'>\r
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+resource="logical-link"\r
+key="logical-link.link-name = $oof-response.solutions.routeInfo.linkList[$idml]"\r
+pfx='inter' local-only='false' ></get-resource>\r
+ <switch test="`$inter.operational-status == up`">\r
+ <outcome value='false'>\r
+ <block>\r
+ <set>\r
+ <parameter name='flag' value='false' />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
</for>\r
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
- <parameter name="file" value="/opt/opendaylight/current/data/log/inter-domain.log" />\r
- <parameter name="level" value="info" />\r
- <parameter name="field1" value="`'Aaccess bend---' + $access-bend`"/>\r
- <parameter name="field2" value="`'Aaccess cend---' + $access-cend`"/>\r
- <parameter name="field3" value="`'Service 1 req id---' + $service1-request-id`"/>\r
- <parameter name="field4" value="`'Service 2 req id---' + $service2-request-id`"/>\r
- </record>\r
- <switch test="`$access-bend == ''`">\r
- <outcome value='true'>\r
+ <switch test="`$flag == 'true' `">\r
+ <outcome value='false'>\r
<return status='failure'>\r
<parameter name='error-code' value='500' />\r
- <parameter name='error-message' value='No inter-domain-links available' />\r
+ <parameter name='error-message' value='Inter domain links not available' />\r
<parameter name='ack-final-indicator' value="Y" />\r
</return>\r
</outcome>\r
- <outcome value='false'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='access-service-name' value='`$optical-service-create-input.payload.service-name`' />\r
- </set>\r
- <for index='idb' start='0' end='2' >\r
- <switch test='`$idb`'>\r
- <outcome value='0'>\r
- <block atomic="true">\r
+ <outcome value='true'>\r
+ <block atomic='true'>\r
+ <for index='idmk' start='0' end='`$oof-response.solutions.routeInfo.linkList_length`' >\r
+ <block>\r
+ <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' \r
+force='true'\r
+resource='logical-link'\r
+ key='logical-link.link-name = $oof-response.solutions.routeInfo.linkList[$idmk]'\r
+ local-only='false'>\r
+ <parameter name='operational-status' value='occupied' />\r
+ </update>\r
+ </block>\r
+ </for>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <for index='idomainsvc' start='0' end='`$oof-response.solutions.routeInfo.serviceRoute_length`' >\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+ <parameter name="ctx-destination" value="domain-request-id"/>\r
+ </execute>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+ <parameter name="ctx-destination" value="domain-instance-id"/>\r
+ </execute>\r
+ <switch test="`$idomainsvc == $oof-response.solutions.routeInfo.serviceRoute_length - 1`">\r
+ <outcome value='true'>\r
+ <set>\r
+ <parameter name='domain-requests' value="`$domain-requests + $domain-request-id`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='false'>\r
+ <set>\r
+ <parameter name='domain-requests' value="`$domain-requests + $domain-request-id + ','`" />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='optical-service-create-input.payload.service-aend.port-id' value='`$oof-response.solutions.routeInfo.serviceRoute[$idomainsvc].srcInterfaceId`' />\r
+ <parameter name='optical-service-create-input.payload.service-zend.port-id' value='`$oof-response.solutions.routeInfo.serviceRoute[$idomainsvc].dstInterfaceId`' />\r
+ <parameter name='optical-service-create-input.payload.service-name' value="`$access-service-name + '_MDONS-OTN'`" />\r
+ <parameter name='domain-type' value="TAPI" />\r
+ <parameter name='optical-service-create-input.request-id' value="`$domain-request-id`" />\r
+ <parameter name='optical-service-create-input.service-id' value="`$domain-instance-id`" />\r
+ </set>\r
+ <call module='optical-service' rpc='main-create' mode='sync' >\r
+ <outcome value='success'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='service-status' value='`$final-response-code`' />\r
+ </set>\r
+ <switch test='`$service-status == 200`'>\r
+ <outcome value='true'>\r
<set>\r
- <parameter name='optical-service-create-input.payload.service-aend.port-id' value='`$access-aend`' />\r
- <parameter name='optical-service-create-input.payload.service-zend.port-id' value='`$access-bend`' />\r
- <parameter name='optical-service-create-input.payload.service-name' value="`$access-service-name + '_' + 'MDONS-OTN-TAPI-1'`" />\r
- <parameter name='domain-type' value="TAPI" />\r
- <parameter name='optical-service-create-input.request-id' value="`$service1-request-id`" />\r
- <parameter name='optical-service-create-input.service-id' value="`$service1-svc-instance-id`" />\r
+ <parameter name='status' value='success' />\r
</set>\r
- <call module='optical-service' rpc='main-create' mode='sync' >\r
- <outcome value='success'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='service1-status' value='`$final-response-code`' />\r
- </set>\r
- <switch test='`$service1-status == 200`'>\r
- <outcome value='true'>\r
- <set>\r
- <parameter name='service1' value='success' />\r
- </set>\r
- </outcome>\r
- <outcome value='false'>\r
- <set>\r
- <parameter name='service1' value='failure' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value='Main Create Dg not available' />\r
- <parameter name='ack-final-indicator' value="Y" />\r
- </return>\r
- </outcome>\r
- </call>\r
- </block>\r
- </outcome>\r
- <outcome value='1'>\r
- <block atomic="true">\r
+ </outcome>\r
+ <outcome value='false'>\r
<set>\r
- <parameter name='optical-service-create-input.payload.service-aend.port-id' value='`$access-cend`' />\r
- <parameter name='optical-service-create-input.payload.service-zend.port-id' value='`$access-zend`' />\r
- <parameter name='optical-service-create-input.payload.service-name' value="`$access-service-name + '_' + 'MDONS-OTN-TAPI-2'`" />\r
- <parameter name='domain-type' value="TAPI" />\r
- <parameter name='optical-service-create-input.request-id' value="`$service2-request-id`" />\r
- <parameter name='optical-service-create-input.service-id' value="`$service2-svc-instance-id`" />\r
+ <parameter name='status' value='failure' />\r
+ <parameter name='access-status' value='failure' />\r
</set>\r
- <call module='optical-service' rpc='main-create' mode='sync' >\r
- <outcome value='success'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='service2-status' value='`$final-response-code`' />\r
- </set>\r
- <switch test='`$service2-status == 200`'>\r
- <outcome value='true'>\r
- <set>\r
- <parameter name='service2' value='success' />\r
- </set>\r
- </outcome>\r
- <outcome value='false'>\r
- <set>\r
- <parameter name='service2' value='success' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value='Main Create Dg not available' />\r
- <parameter name='ack-final-indicator' value="Y" />\r
- </return>\r
- </outcome>\r
- </call>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <set>\r
- <parameter name='inter' value='' />\r
- </set>\r
- <switch test='`$service1 == $service2 == success`'>\r
- <outcome value='true'>\r
- <block>\r
- <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='domain-status' value="`$domain-status + $domain-request-id + '_' + $status` " />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </call>\r
+ </block>\r
+ </for>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+ <parameter name="file" value="/opt/opendaylight/current/data/log/oof-mdons.log" />\r
+ <parameter name="level" value="info" />\r
+ <parameter name="field1" value="Domain Status"/>\r
+ <parameter name="field2" value="`$domain-status`"/>\r
+ <parameter name="field3" value="`$flag`"/>\r
+ <parameter name="field4" value="`$access-status`"/>\r
+ </record>\r
+ <switch test="`$access-status == 'success'`">\r
+ <outcome value='true'>\r
+ <block atomic='true'>\r
+ <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
resource='SQL' \r
-key='UPDATE REQUEST_DETAILS SET status = "CREATED" WHERE request_id = $as-request-id'\r
+key='UPDATE REQUEST_DETAILS SET status = "CREATED", domain_requests = $domain-requests WHERE request_id = $access-request-id'\r
force='true' pfx='save-result'></save>\r
- <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' \r
-force='true'\r
-resource='logical-link'\r
- key='logical-link.link-name = $inter.logical-link[$ida].link-name '\r
- local-only='false'>\r
- <parameter name='available-capacity' value='0' />\r
- </update>\r
- <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
- <return status='success'>\r
- <parameter name='error-code' value='200' />\r
- <parameter name='error-message' value='Multi-domain-service successfully created' />\r
- <parameter name='ack-final-indicator' value="Y" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='false'>\r
- <block>\r
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
- <parameter name="file" value="/opt/opendaylight/current/data/log/inter-domain.log" />\r
- <parameter name="level" value="info" />\r
- <parameter name="field1" value="Access service creation failed"/>\r
- </record>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value='Multi-domain-service creation failed' />\r
- <parameter name='ack-final-indicator' value="Y" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </switch>\r
+ <call module='optical-service' rpc='create-service-relationship' mode='sync' ></call>\r
+ <return status='success'>\r
+ <parameter name='error-code' value='200' />\r
+ <parameter name='error-message' value='Multi-domain-service successfully created' />\r
+ <parameter name='ack-final-indicator' value="Y" />\r
+ </return>\r
</block>\r
</outcome>\r
</switch>\r
</block>\r
</outcome>\r
- </get-resource>\r
+ </execute>\r
</block>\r
</method>\r
</service-logic>
\ No newline at end of file