Completing the logic and the call flow for Transport Slicing operations:
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / trans_slicing / GENERIC-RESOURCE-API_tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof.xml b/platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof.xml
new file mode 100644 (file)
index 0000000..e1b76fa
--- /dev/null
@@ -0,0 +1,333 @@
+<service-logic\r
+        xmlns='http://www.onap.org/sdnc/svclogic'\r
+        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/' + $prop.restapi.oof-getpath.templatefile`" />\r
+                <parameter name="restapiUrl" value="`$prop.restapi.connection-oof-url`" />\r
+                <parameter name="restapiUser" value="`$prop.oof.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.oof.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="otn-oof"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing OOF api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <for index='vidx' start='0' end='`$otn-oof.solutions_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='otn-oof.link-name' value='`$otn-oof.solutions[$vidx].link`' />\r
+                    </set>\r
+                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                  resource="logical-link"\r
+                                  key="logical-link.link-name = $otn-oof.link-name"\r
+                                  pfx='tmp.aai.cross-link' local-only='false' >\r
+                        <!--AND depth = '0'"-->\r
+                        <outcome value='success'>\r
+                            <block>\r
+                                <switch test='`$tmp.aai.cross-link.link-role`'>\r
+                                    <outcome value='cross-domain'>\r
+                                        <block atomic="true">\r
+                                            <for index='lridx' start='0' end='`$tmp.aai.cross-link.relationship-list.relationship_length`' >\r
+                                                <switch test='`$tmp.aai.cross-link.relationship-list.relationship[$lridx].related-to`'>\r
+                                                    <outcome value='p-interface'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.cross-link.src-ltpId' value="`$tmp.aai.cross-link.relationship-list.relationship[$lridx].relationship-data[1].relationship-value`" />\r
+                                                                <parameter name='tmp.cross-link.dst-ltpId' value="`$tmp.aai.cross-link.relationship-list.relationship[$lridx + 1].relationship-data[1].relationship-value`" />\r
+                                                                <parameter name='tmp.src-pnf-name' value="`$tmp.aai.cross-link.relationship-list.relationship[$lridx].relationship-data[0].relationship-value`" />\r
+                                                                <parameter name='tmp.dst-pnf-name' value="`$tmp.aai.cross-link.relationship-list.relationship[$lridx + 1].relationship-data[0].relationship-value`" />\r
+                                                            </set>\r
+                                                            <break/>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                          resource="p-interface"\r
+                                                          key="pnf.pnf-name = $tmp.src-pnf-name\r
+                   AND p-interface.interface-name = $tmp.cross-link.src-ltpId"\r
+                                                          pfx='tmp.aai.src-tp' local-only='false' >\r
+                                                <!--AND depth = '0'"-->\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.src-tp.relationship-list.relationship_length`' >\r
+                                                            <switch test='`$tmp.aai.src-tp.relationship-list.relationship[$vidx].related-to`'>\r
+                                                                <outcome value='tunnel-termination-point'>\r
+                                                                    <block atomic="true">\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                            <parameter name="original_string" value='`$tmp.aai.src-tp`'/>\r
+                                                                            <!--<parameter name="regex" value="[^-]+$"/>-->\r
+                                                                            <parameter name="regex" value="[-]+"/>\r
+                                                                            <parameter name="ctx_memory_result_key" value="param-prefix-src-tp"/>\r
+                                                                            <outcome value='success'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-A.ltpId' value='`$param-prefix-src-tp[$param-prefix-src-tp_length -1]`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='failure'>\r
+                                                                                <return status='failure'>\r
+                                                                                    <parameter name='error-code' value='' />\r
+                                                                                    <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </execute>\r
+                                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                                                      resource="pnf"\r
+                                                                                      key="pnf.pnf-name = $tmp.src-pnf-name"\r
+                                                                                      pfx='tmp.aai.src-pnf' local-only='false' >\r
+                                                                            <!--AND depth = '0'"-->\r
+                                                                            <outcome value='success'>\r
+                                                                                <block>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-A.node-id' value="`$tmp.aai.src-pnf.pnf-id`" />\r
+                                                                                        <parameter name='domain-A.tpn' value='1' />\r
+                                                                                    </set>\r
+                                                                                    <for silentFailure='true' index='pvidx' start='0' end='`$tmp.aai.src-pnf.relationship-list.relationship_length`' >\r
+                                                                                        <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$pvidx].related-to`'>\r
+                                                                                            <outcome value='network-resource'>\r
+                                                                                                <block atomic="true">\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.domain-A.network-id' value="`$tmp.aai.src-pnf.relationship-list.relationship[$pvidx].relationship-data[0].relationship-value`" />\r
+                                                                                                    </set>\r
+                                                                                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                                                                                  resource="network-resource"\r
+                                                                                                                  key="network-resource.network-id = $tmp.domain-A.network-id\r
+               AND depth = '0'"\r
+                                                                                                                  pfx='tmp.aai.src-network-resource' local-only='false' >\r
+                                                                                                        <outcome value='success'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='domain-A.network-id' value="`$tmp.aai.src-network-resource.network-id`" />\r
+                                                                                                                <parameter name='domain-A.provider-id' value="`$tmp.aai.src-network-resource.provider-id`" />\r
+                                                                                                                <parameter name='domain-A.client-id' value="`$tmp.aai.src-network-resource.client-id`" />\r
+                                                                                                                <parameter name='domain-A.te-topo-id' value="`$tmp.aai.src-network-resource.te-topo-id`" />\r
+                                                                                                                <parameter name='domain-A.network-type' value="`$tmp.aai.src-network-resource.network-type`" />\r
+                                                                                                            </set>\r
+                                                                                                        </outcome>\r
+                                                                                                    </get-resource>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </for>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='not-found'>\r
+                                                                                <return status='failure'>\r
+                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                    <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='Other'>\r
+                                                                                <return status='failure'>\r
+                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                    <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </get-resource>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.domain-A.ttp-id' value="`$tmp.aai.src-tp.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                                                        </set>\r
+                                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                                                      resource="tunnel-termination-point"\r
+                                                                                      key="tunnel-termination-point.ttp-id = $tmp.domain-A.ttp-id\r
+               AND depth = '0'"\r
+                                                                                      pfx='tmp.aai.src-ttp' local-only='false' >\r
+                                                                            <outcome value='success'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-A.tunnel-tp-id' value="`$tmp.aai.src-ttp.tunnel-tp-id`" />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </get-resource>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                          resource="p-interface"\r
+                                                          key="pnf.pnf-name = $tmp.dst-pnf-name\r
+                   AND p-interface.interface-name = $tmp.cross-link.dst-ltpId"\r
+                                                          pfx='tmp.aai.dst-tp' local-only='false' >\r
+                                                <!--AND depth = '0'"-->\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.dst-tp.relationship-list.relationship_length`' >\r
+                                                            <switch test='`$tmp.aai.dst-tp.relationship-list.relationship[$vidx].related-to`'>\r
+                                                                <outcome value='tunnel-termination-point'>\r
+                                                                    <block atomic="true">\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                            <parameter name="original_string" value='`$tmp.aai.dst-tp`'/>\r
+                                                                            <!--<parameter name="regex" value="[^-]+$"/>-->\r
+                                                                            <parameter name="regex" value="[-]+"/>\r
+                                                                            <parameter name="ctx_memory_result_key" value="param-prefix-dst-tp"/>\r
+                                                                            <outcome value='success'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-B.ltpId' value='`$param-prefix-dst-tp[$param-prefix-dst-tp_length -1]`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='failure'>\r
+                                                                                <return status='failure'>\r
+                                                                                    <parameter name='error-code' value='' />\r
+                                                                                    <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </execute>\r
+                                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                                                      resource="pnf"\r
+                                                                                      key="pnf.pnf-name = $tmp.dst-pnf-name"\r
+                                                                                      pfx='tmp.aai.dst-pnf' local-only='false' >\r
+                                                                            <!--AND depth = '0'"-->\r
+                                                                            <outcome value='success'>\r
+                                                                                <block>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-B.node-id' value="`$tmp.aai.dst-pnf.pnf-id`" />\r
+                                                                                        <parameter name='domain-B.tpn' value='1' />\r
+                                                                                    </set>\r
+                                                                                    <for silentFailure='true' index='mvidx' start='0' end='`$tmp.aai.dst-pnf.relationship-list.relationship_length`' >\r
+                                                                                        <switch test='`$tmp.aai.dst-pnf.relationship-list.relationship[$mvidx].related-to`'>\r
+                                                                                            <outcome value='network-resource'>\r
+                                                                                                <block atomic="true">\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.domain-B.network-id' value="`$tmp.aai.dst-pnf.relationship-list.relationship[$mvidx].relationship-data[0].relationship-value`" />\r
+                                                                                                    </set>\r
+                                                                                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                                                                                  resource="network-resource"\r
+                                                                                                                  key="network-resource.network-id = $tmp.domain-B.network-id\r
+               AND depth = '0'"\r
+                                                                                                                  pfx='tmp.aai.dst-network-resource' local-only='false' >\r
+                                                                                                        <outcome value='success'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='domain-B.network-id' value="`$tmp.aai.dst-network-resource.network-id`" />\r
+                                                                                                                <parameter name='domain-B.provider-id' value="`$tmp.aai.dst-network-resource.provider-id`" />\r
+                                                                                                                <parameter name='domain-B.client-id' value="`$tmp.aai.dst-network-resource.client-id`" />\r
+                                                                                                                <parameter name='domain-B.te-topo-id' value="`$tmp.aai.dst-network-resource.te-topo-id`" />\r
+                                                                                                                <parameter name='domain-B.network-type' value="`$tmp.aai.dst-network-resource.network-type`" />\r
+                                                                                                            </set>\r
+                                                                                                        </outcome>\r
+                                                                                                    </get-resource>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </for>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='not-found'>\r
+                                                                                <return status='failure'>\r
+                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                    <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='Other'>\r
+                                                                                <return status='failure'>\r
+                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                    <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </get-resource>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.domain-B.ttp-id' value="`$tmp.aai.dst-tp.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                                                        </set>\r
+                                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                                                      resource="tunnel-termination-point"\r
+                                                                                      key="tunnel-termination-point.ttp-id = $tmp.domain-B.ttp-id\r
+               AND depth = '0'"\r
+                                                                                      pfx='tmp.aai.dst-ttp' local-only='false' >\r
+                                                                            <outcome value='success'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-B.tunnel-tp-id' value="`$tmp.aai.dst-ttp.tunnel-tp-id`" />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </get-resource>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file