DG changes for the closed loop and async
[sdnc/oam.git] / platform-logic / optical-service / src / main / xml / optical-service_inter-domain-handling.xml
index 4e712ea..7f67e5d 100644 (file)
     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].operational-status == occupied`'>\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'`" />\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'`" />\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='operational-status' value='occupied' />\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