SDWAN flow based end-end test and issue fix
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.xml
index 9db916e..ebe9422 100644 (file)
@@ -3,6 +3,9 @@
     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='sdwan-wanport-vnf-topology-operation-underlay' mode='sync'>\r
         <block atomic="true">\r
+            <set>\r
+                <parameter name='prop.underlay.routeIds_length' value='0' />\r
+            </set>\r
             <set>\r
                 <parameter name='prop.provision.siteIds_length' value='0' />\r
             </set>\r
                                             </set>\r
                                             <for index="roleidx" start="0" end="`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
                                                 <block>\r
-                                                    <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].name == 'role'`">\r
+                                                    <switch test="`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].name == 'role'`">\r
                                                         <outcome value='true'>\r
                                                             <set>\r
-                                                                <parameter name='prop.spoke.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].value`' />\r
+                                                                <parameter name='prop.spoke.role' value='`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].value`' />\r
                                                             </set>\r
                                                         </outcome>\r
                                                     </switch>\r
                                         <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
                                             <outcome value='true'>\r
                                                 <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='prop.spoke.siteidx' value='`$i`' />\r
+                                                    </set>\r
                                                     <for index="sidx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
                                                         <block atomic="true">\r
                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'name'`">\r
                                                                     </set>\r
                                                                 </outcome>\r
                                                             </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'underlayRouteIds'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='prop.underlay.routeIdsString' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\r
+                                                                        </set>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                            <parameter name="original_string" value='`$prop.underlay.routeIdsString`'/>\r
+                                                                            <parameter name="regex" value=" | "/>\r
+                                                                            <parameter name="ctx_memory_result_key" value="prop.underlay.routeIdsValue"/>\r
+                                                                            <outcome value='success'>\r
+                                                                                <for index="ridx" start="0" end="`$prop.underlay.routeIdsValue_length`">\r
+                                                                                    <block atomic="true">\r
+                                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                                            <parameter name="original_string" value='`$prop.underlay.routeIdsValue[$ridx]`'/>\r
+                                                                                            <parameter name="regex" value=","/>\r
+                                                                                            <parameter name="ctx_memory_result_key" value="prop.underlay.routeIdsValues"/>\r
+                                                                                            <outcome value='success'>\r
+                                                                                                <switch test='`$prop.underlay.routeIdsValues_length`'>\r
+                                                                                                    <outcome value='Other'>\r
+                                                                                                        <block></block>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='3'>\r
+                                                                                                        <block atomic="true">\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubSiteId' value='`$prop.underlay.routeIdsValues[0]`' />\r
+                                                                                                                <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubRouteId' value='`$prop.underlay.routeIdsValues[1]`' />\r
+                                                                                                                <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeRouteId' value='`$prop.underlay.routeIdsValues[2]`' />\r
+                                                                                                            </set>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='prop.underlay.routeIds_length' value='`$prop.underlay.routeIds_length + 1`' />\r
+                                                                                                            </set>\r
+                                                                                                        </block>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <block></block>\r
+                                                                                            </outcome>\r
+                                                                                        </execute>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='failure'>\r
+                                                                                <block></block>\r
+                                                                            </outcome>\r
+                                                                        </execute>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
                                                         </block>\r
                                                     </for>\r
                                                 </block>\r
                                                 </set>\r
                                             </outcome>\r
                                         </switch>\r
-                                        <switch test="`$tmp.pnidx`">\r
-                                            <outcome value=''>\r
-                                                <return status='failure'>\r
-                                                    <parameter name='ack-final' value='Y'/>\r
-                                                    <parameter name="error-code" value="500" />\r
-                                                    <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
-                                                </return>\r
-                                            </outcome>\r
-                                        </switch>\r
                                     </block>\r
                                 </for>\r
+                                <switch test="`$tmp.pnidx`">\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
                                 <for index="paramidx" start="0" end="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param_length`">\r
                                     <block atomic="true">\r
                                         <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`">\r
                                                                                             </set>\r
                                                                                         </outcome>\r
                                                                                     </switch>\r
-                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'hubRouteId'`">\r
-                                                                                        <outcome value='true'>\r
-                                                                                            <set>\r
-                                                                                                <parameter name='prop.hubRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
-                                                                                            </set>\r
-                                                                                        </outcome>\r
-                                                                                    </switch>\r
-                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'spokeRouteId'`">\r
-                                                                                        <outcome value='true'>\r
-                                                                                            <set>\r
-                                                                                                <parameter name='prop.spokeRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
-                                                                                            </set>\r
-                                                                                        </outcome>\r
-                                                                                    </switch>\r
                                                                                 </block>\r
                                                                             </for>\r
                                                                             <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
                                                                                             <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
                                                                                             <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
-                                                                                            <parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.spoke.wanPortId`' />\r
                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
                                                                                         </set>\r
                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                                                                                             <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
                                                                                             <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
-                                                                                            <parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.hub.wanPortId`' />\r
                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
                                                                                         </set>\r
                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                                                                                             <outcome value='success'></outcome>\r
                                                                                         </execute>\r
                                                                                         <set>\r
-                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].name' value='hubRouteId' />\r
-                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].value' value='`$underlayHubResp[0].id`' />\r
-                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].name' value='spokeRouteId' />\r
-                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].value' value='`$underlayspokeResp[0].id`' />\r
-                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 2`' />\r
+                                                                                            <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
+                                                                                            <!--parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeSiteId' value='`$prop.spoke.siteId`' /-->\r
+                                                                                            <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubRouteId' value='`$underlayHubResp.success[0].id`' />\r
+                                                                                            <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeRouteId' value='`$underlayspokeResp.success[0].id`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.underlay.routeIds_length' value='`$prop.underlay.routeIds_length + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />\r
+                                                                                            <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
+                                                                                            <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />\r
+                                                                                            <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />\r
                                                                                         </set>\r
                                                                                     </block>\r
                                                                                 </outcome>\r
                                                                                 <outcome value='DeactivateSDWANAttachmentInstance'>\r
                                                                                     <block atomic="true">\r
+                                                                                        <for index="uidx" start="0" end="`$prop.underlay.routeIds_length`">\r
+                                                                                            <block atomic="true">\r
+                                                                                                <switch test="`$prop.underlay.routeIds[$uidx].hubSiteId == $prop.hub.siteId`">\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <block atomic="true">\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='prop.hubRouteId' value='`$prop.underlay.routeIds[$uidx].hubRouteId`' />\r
+                                                                                                                <parameter name='prop.spokeRouteId' value='`$prop.underlay.routeIds[$uidx].spokeRouteId`' />\r
+                                                                                                            </set>\r
+                                                                                                        </block>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                        </for>\r
                                                                                         <set>\r
                                                                                             <parameter name='prop.route.id' value='`$prop.hubRouteId`' />\r
                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
                                                                                             <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
                                                                                             <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
-                                                                                            <parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.spoke.wanPortId`' />\r
                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
                                                                                         </set>\r
                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                                                                                             <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
                                                                                             <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
-                                                                                            <parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.hub.wanPortId`' />\r
                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
                                                                                         </set>\r
                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                                                                                     </block>\r
                                                                                 </outcome>\r
                                                                             </switch>\r
-                                                                            <set>\r
-                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />\r
-                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
-                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />\r
-                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />\r
-                                                                                <parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />\r
-                                                                            </set>\r
                                                                         </block>\r
                                                                     </outcome>\r
                                                                 </switch>\r
                                         </block>\r
                                     </outcome>\r
                                 </switch>\r
+                                <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                                    <outcome value='ActivateSDWANAttachmentInstance'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.routeString' value="" />\r
+                                            </set>\r
+                                            <for index="jidx" start="0" end="`$prop.underlay.routeIds_length`">\r
+                                                <block atomic="true">\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                                        <parameter name="source" value='`$prop.underlay.routeIds[$jidx].hubSiteId`'/>\r
+                                                        <parameter name="outputPath" value="tmp.concat"/>\r
+                                                        <parameter name="target" value=","/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                                        <parameter name="source" value='`$tmp.concat`'/>\r
+                                                        <parameter name="outputPath" value="tmp.concat1"/>\r
+                                                        <parameter name="target" value='`$prop.underlay.routeIds[$jidx].hubRouteId`'/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                                        <parameter name="source" value='`$tmp.concat1`'/>\r
+                                                        <parameter name="outputPath" value="tmp.concat2"/>\r
+                                                        <parameter name="target" value=","/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                                        <parameter name="source" value='`$tmp.concat2`'/>\r
+                                                        <parameter name="outputPath" value="tmp.concat3"/>\r
+                                                        <parameter name="target" value='`$prop.underlay.routeIds[$jidx].spokeRouteId`'/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                                        <parameter name="source" value='`$tmp.concat3`'/>\r
+                                                        <parameter name="outputPath" value="tmp.concat4"/>\r
+                                                        <parameter name="target" value=" | "/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                                        <parameter name="source" value='`$tmp.routeString`'/>\r
+                                                        <parameter name="outputPath" value="tmp.routeString"/>\r
+                                                        <parameter name="target" value='`$tmp.concat4`'/>\r
+                                                    </execute>\r
+                                                </block>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].name' value="underlayRouteIds" />\r
+                                                <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].value' value='`$tmp.routeString`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='DeactivateSDWANAttachmentInstance'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length - 1`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
                             </block>\r
                         </outcome>\r
                     </switch>\r
                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
                         <parameter name="file" value="`'/opt/opendaylight/current/data/log/' + 'HUB-' + $prop.provision.hubSitename + '-SPOKE-' + $prop.provision.spokeSitename + '-provisionUrl'`"/>\r
                         <parameter name="field1" value="__TIMESTAMP__"/>\r
-                        <parameter name="field2" value='`$provisionUrlRsp`'/>\r
+                        <parameter name="field2" value='`$provisionUrlRsp.success[0].url`'/>\r
                     </record>\r
                 </block>\r
             </for>\r