X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FOVSDB.robot;h=d0a72cd71f4b2e081cff833c2736157381f86a96;hb=2753d6d4a6bd7a7b98318f3314d52a252629a6c1;hp=6fb18fcfe80a90db9577f7cffedc572f76fd361a;hpb=394bd1b835c00d8ae1e9f954e00e06828280d648;p=integration%2Ftest.git diff --git a/csit/libraries/OVSDB.robot b/csit/libraries/OVSDB.robot index 6fb18fcfe8..d0a72cd71f 100644 --- a/csit/libraries/OVSDB.robot +++ b/csit/libraries/OVSDB.robot @@ -9,6 +9,7 @@ Resource ClusterManagement.robot Resource Utils.robot Resource ${CURDIR}/TemplatedRequests.robot Resource ../variables/Variables.robot +Resource ../variables/netvirt/Variables.robot *** Variables *** ${OVSDB_CONFIG_DIR} ${CURDIR}/../variables/ovsdb @@ -139,7 +140,7 @@ Get OVSDB UUID [Return] ${uuid} Collect OVSDB Debugs - [Arguments] ${switch}=br-int + [Arguments] ${switch}=${INTEGRATION_BRIDGE} [Documentation] Used to log useful test debugs for OVSDB related system tests. ${output} = Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl show BuiltIn.Log ${output} @@ -198,7 +199,7 @@ Add Multiple Managers to OVS Get DPID [Arguments] ${ip} [Documentation] Returns the dpnid from the system at the given ip address using ovs-ofctl assuming br-int is present. - ${output} = Utils.Run Command On Remote System ${ip} sudo ovs-ofctl show -O Openflow13 br-int | head -1 | awk -F "dpid:" '{print $2}' + ${output} = Utils.Run Command On Remote System ${ip} sudo ovs-ofctl show -O Openflow13 ${INTEGRATION_BRIDGE} | head -1 | awk -F "dpid:" '{print $2}' ${dpnid} = BuiltIn.Convert To Integer ${output} 16 BuiltIn.Log ${dpnid} [Return] ${dpnid} @@ -214,17 +215,36 @@ Get Subnet Get Ethernet Adapter [Arguments] ${ip} [Documentation] Returns the ethernet adapter name from the system at the given ip address using ip addr show. - ${adapter} = Builtin.Run Command On Remote System ${ip} /usr/sbin/ip addr show | grep ${ip} | cut -d " " -f 11 + ${adapter} = Utils.Run Command On Remote System ${ip} /usr/sbin/ip addr show | grep ${ip} | cut -d " " -f 11 BuiltIn.Log ${adapter} [Return] ${adapter} Get Default Gateway [Arguments] ${ip} [Documentation] Returns the default gateway at the given ip address using route command. - ${gateway} = Builtin.Run Command On Remote System ${ip} /usr/sbin/route -n | grep '^0.0.0.0' | cut -d " " -f 10 + ${gateway} = Utils.Run Command On Remote System ${ip} /usr/sbin/route -n | grep '^0.0.0.0' | cut -d " " -f 10 BuiltIn.Log ${gateway} [Return] ${gateway} +Get Port Number + [Arguments] ${subportid} ${ip_addr} + [Documentation] Get the port number for the given sub-port id + ${command} = Set Variable sudo ovs-ofctl -O OpenFlow13 show ${INTEGRATION_BRIDGE} | grep ${subportid} | awk '{print$1}' + BuiltIn.Log sudo ovs-ofctl -O OpenFlow13 show ${INTEGRATION_BRIDGE} | grep ${subportid} | awk '{print$1}' + ${output} = Utils.Run Command On Remote System ${ip_addr} ${command} + ${port_number} = BuiltIn.Should Match Regexp ${output} [0-9]+ + [Return] ${port_number} + +Get Port Metadata + [Arguments] ${ip_addr} ${port} + [Documentation] Get the Metadata for a given port + ${cmd} = Set Variable sudo ovs-ofctl dump-flows -O Openflow13 ${INTEGRATION_BRIDGE} | grep table=0 | grep in_port=${port} + ${output} = Utils.Run Command On Remote System ${ip_addr} ${cmd} + @{list_any_matches} = String.Get_Regexp_Matches ${output} metadata:(\\w{12}) 1 + ${metadata} = Builtin.Convert To String @{list_any_matches} + ${output} = String.Get Substring ${metadata} 2 + [Return] ${output} + Log Config And Operational Topology [Documentation] For debugging purposes, this will log both config and operational topo data stores ${resp} RequestsLibrary.Get Request session ${CONFIG_TOPO_API} @@ -355,3 +375,45 @@ Stop OVS [Documentation] Stop the OVS node. ${output} = Utils.Run Command On Mininet ${ovs_ip} sudo /usr/share/openvswitch/scripts/ovs-ctl stop BuiltIn.Log ${output} + +Get Bridge Data + [Documentation] This keyword returns first bridge name and UUID from list of bridges. + ${result} = SSHLibrary.Execute Command sudo ovs-vsctl show + ${uuid} = String.Get Line ${result} 0 + ${line} ${bridge_name} Builtin.Should Match Regexp ${result} Bridge "(\\w+)" + [Return] ${uuid} ${bridge_name} + +Delete OVS Controller + [Arguments] ${ovs_ip} ${bridge}=${INTEGRATION_BRIDGE} + [Documentation] Delete controller from OVS + ${del_ctr} = Utils.Run Command On Remote System ${ovs_ip} sudo ovs-vsctl del-controller ${bridge} + BuiltIn.Log ${del_ctr} + +Delete OVS Manager + [Arguments] ${ovs_ip} + [Documentation] Delete manager from OVS + ${del_mgr} = Utils.Run Command On Remote System ${ovs_ip} sudo ovs-vsctl del-manager + BuiltIn.Log ${del_mgr} + +Delete Groups On Bridge + [Arguments] ${ovs_ip} ${br}=${INTEGRATION_BRIDGE} + [Documentation] Delete OVS groups from ${br} + ${del_grp} = Utils.Run Command On Remote System ${ovs_ip} sudo ovs-ofctl -O Openflow13 del-groups ${br} + BuiltIn.Log ${del_grp} + +Get Ports From Bridge By Type + [Arguments] ${ovs_ip} ${br} ${type} + [Documentation] Get ${type} ports for a bridge ${br} on node ${ovs_ip}. + ${ports} = Utils.Run Command On Remote System ${ovs_ip} sudo ovs-vsctl list-ports ${br} | grep "${type}" + ${ports_list} = String.Split to lines ${ports} + [Return] ${ports_list} + +Delete Ports On Bridge By Type + [Arguments] ${ovs_ip} ${br} ${type} + [Documentation] List all ports of ${br} and delete ${type} ports + ${ports_present} = Get Ports From Bridge By Type ${ovs_ip} ${br} ${type} + : FOR ${port} IN @{ports_present} + \ ${del-ports} = Utils.Run Command On Remote System ${ovs_ip} sudo ovs-vsctl del-port ${br} ${port} + \ BuiltIn.Log ${del-ports} + ${ports_present_after_delete} = Get Ports From Bridge By Type ${ovs_ip} ${br} ${type} + BuiltIn.Log ${ports_present_after_delete}