X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FOVSDB.robot;h=87b42842f21f82e44f89dd98c31c9202c5431f15;hb=9f03f8f2d7ed7e21d6d4a8e8dc608522cf47d155;hp=ef5746edae3785238e93d50530927c5d07c8d8f9;hpb=f1bc1076ba43627c2a5f7fe789fba550b190c130;p=integration%2Ftest.git diff --git a/csit/libraries/OVSDB.robot b/csit/libraries/OVSDB.robot index ef5746edae..87b42842f2 100644 --- a/csit/libraries/OVSDB.robot +++ b/csit/libraries/OVSDB.robot @@ -33,7 +33,7 @@ Add Bridge To Ovsdb Node [Arguments] ${mininet_ip} ${bridge_num} ${datapath_id} [Documentation] This will create a bridge and add it to the OVSDB node. ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_bridge.json - ${sample1} Replace String ${sample} tcp:127.0.0.1:6633 tcp:${CONTROLLER}:6633 + ${sample1} Replace String ${sample} tcp:127.0.0.1:6633 tcp:${ODL_SYSTEM_IP}:6633 ${sample2} Replace String ${sample1} 127.0.0.1 ${mininet_ip} ${sample3} Replace String ${sample2} br01 ${bridge_num} ${sample4} Replace String ${sample3} 61644 ${OVSDB_PORT} @@ -64,48 +64,71 @@ Add Vxlan To Bridge Verify OVS Reports Connected [Arguments] ${tools_system}=${TOOLS_SYSTEM_IP} [Documentation] Uses "vsctl show" to check for string "is_connected" - ${output}= Run Command On Remote System ${tools_system} sudo ovs-vsctl show + ${output}= Utils.Run Command On Remote System ${tools_system} sudo ovs-vsctl show Should Contain ${output} is_connected Get OVSDB UUID - [Arguments] ${ovs_system_ip}=${TOOLS_SYSTEM_IP} ${controller_ip}=${ODL_SYSTEM_IP} ${controller_http_session}=session - [Documentation] Queries the topology in the operational datastore and searches for the node that has - ... the ${ovs_system_ip} argument as the "remote-ip". If found, the value returned will be the value of - ... node-id stripped of "ovsdb://uuid/". If not found, ${EMPTY} will be returned. + [Arguments] ${ovs_system_ip}=${TOOLS_SYSTEM_IP} ${controller_ip}=${ODL_SYSTEM_IP} ${controller_http_session}=session + [Documentation] Queries the topology in the operational datastore and searches for the node that has + ... the ${ovs_system_ip} argument as the "remote-ip". If found, the value returned will be the value of + ... node-id stripped of "ovsdb://uuid/". If not found, ${EMPTY} will be returned. ${uuid}= Set Variable ${EMPTY} ${resp}= RequestsLibrary.Get Request ${controller_http_session} ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 + Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 ${resp_json}= To Json ${resp.content} - ${topologies}= Get From Dictionary ${resp_json} topology + ${topologies}= Get From Dictionary ${resp_json} topology ${topology}= Get From List ${topologies} 0 ${node_list}= Get From Dictionary ${topology} node Log ${node_list} + # Since bridges are also listed as nodes, but will not have the extra "ovsdb:connection-info data, + # we need to use "Run Keyword And Ignore Error" below. : FOR ${node} IN @{node_list} \ ${node_id}= Get From Dictionary ${node} node-id \ ${node_uuid}= Replace String ${node_id} ovsdb://uuid/ ${EMPTY} - # Since bridges are also listed as nodes, but will not have the extra "ovsdb:connection-info data, we need to - # use "Run Keyword And Ignore Error" below. \ ${status} ${connection_info} Run Keyword And Ignore Error Get From Dictionary ${node} ovsdb:connection-info \ ${status} ${remote_ip} Run Keyword And Ignore Error Get From Dictionary ${connection_info} remote-ip \ ${uuid}= Set Variable If '${remote_ip}' == '${ovs_system_ip}' ${node_uuid} ${uuid} [Return] ${uuid} - Collect OVSDB Debugs [Arguments] ${switch}=br-int [Documentation] Used to log useful test debugs for OVSDB related system tests. - ${output}= Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl show + ${output}= Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl show Log ${output} - ${output}= Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-ofctl -O OpenFlow13 dump-flows ${switch} | cut -d',' -f3- + ${output}= Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-ofctl -O OpenFlow13 dump-flows ${switch} | cut -d',' -f3- Log ${output} Clean OVSDB Test Environment [Arguments] ${tools_system}=${TOOLS_SYSTEM_IP} [Documentation] General Use Keyword attempting to sanitize test environment for OVSDB related - ... tests. Not every step will always be neccessary, but should not cause any problems for + ... tests. Not every step will always be neccessary, but should not cause any problems for ... any new ovsdb test suites. - Clean Mininet System ${tools_system} - Run Command On Remote System ${tools_system} sudo ovs-vsctl del-manager - Run Command On Remote System ${tools_system} sudo /usr/share/openvswitch/scripts/ovs-ctl stop - Run Command On Remote System ${tools_system} sudo rm -rf /etc/openvswitch/conf.db - Run Command On Remote System ${tools_system} sudo /usr/share/openvswitch/scripts/ovs-ctl start + Utils.Clean Mininet System ${tools_system} + Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl del-manager + Utils.Run Command On Mininet ${tools_system} sudo /usr/share/openvswitch/scripts/ovs-ctl stop + Utils.Run Command On Mininet ${tools_system} sudo rm -rf /etc/openvswitch/conf.db + Utils.Run Command On Mininet ${tools_system} sudo /usr/share/openvswitch/scripts/ovs-ctl start + +Set Controller In OVS Bridge + [Arguments] ${tools_system} ${bridge} ${controller_opt} + [Documentation] Sets controller for a given OVS ${bridge} using controller options in ${controller_opt} + Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl del-controller ${bridge} + Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl set-controller ${bridge} ${controller_opt} + +Add Multiple Managers to OVS + [Arguments] ${tools_system} ${controller_index_list} ${ovs_mgr_port}=6640 + [Documentation] Connect OVS to all controllers in the ${controller_index_list}. + Log Clear any existing mininet + Utils.Clean Mininet System ${tools_system} + ${ovs_opt}= Set Variable + : FOR ${index} IN @{controller_index_list} + \ ${ovs_opt}= Catenate ${ovs_opt} ${SPACE}tcp:${ODL_SYSTEM_${index}_IP}:${ovs_mgr_port} + \ Log ${ovs_opt} + Log Configure OVS Managers in the OVS + Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl set-manager ${ovs_opt} + Log Check OVS configuratiom + ${output}= Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl show + Log ${output} + ${ovsdb_uuid}= Wait Until Keyword Succeeds 5s 1s Get OVSDB UUID controller_http_session=controller1 + [Return] ${ovsdb_uuid}