Changed the PROMPT to LINUX_PROMPT, Updated Library call of RequestsLibrary on both... 68/20368/4
authormahesh.manivasagam <mahesh_manivasagam@dell.com>
Thu, 14 May 2015 12:46:02 +0000 (18:16 +0530)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 27 May 2015 05:06:31 +0000 (05:06 +0000)
Change-Id: I5dcedb3c720267e1a6001da7a1b37ef54d12520f
Signed-off-by: mahesh.manivasagam <mahesh_manivasagam@dell.com>
test/csit/suites/lacp/Lacp_Feature_OF13/020__lacp_lag_resiliency.robot [new file with mode: 0644]
test/csit/suites/lacp/Lacp_Feature_OF13/030__lacp_flow_entry_stats.robot [new file with mode: 0644]

diff --git a/test/csit/suites/lacp/Lacp_Feature_OF13/020__lacp_lag_resiliency.robot b/test/csit/suites/lacp/Lacp_Feature_OF13/020__lacp_lag_resiliency.robot
new file mode 100644 (file)
index 0000000..3baad50
--- /dev/null
@@ -0,0 +1,115 @@
+*** Settings ***\r
+Documentation     Test suite for LACP Link Resiliency\r
+Suite Setup       LACP Inventory Suite Setup\r
+Suite Teardown    Delete All Sessions\r
+Library           SSHLibrary\r
+Library           Collections\r
+Library           String\r
+Library           RequestsLibrary\r
+Library           ../../../libraries/Common.py\r
+Resource          ../../../libraries/Utils.txt\r
+Variables         ../../../variables/Variables.py\r
+\r
+*** Variables ***\r
+${node1}          openflow:1\r
+${agg-id1}        1\r
+${agg-id2}        2\r
+${agg1-connector-id1}    1\r
+${agg1-connector-id2}    2\r
+${agg2-connector-id1}    3\r
+${agg2-connector-id2}    4\r
+\r
+*** Test Cases ***\r
+Verify the Group tables data for Switch(S1)\r
+    [Documentation]    Functionality would check the presence of group tables entries on OVS Switch(S1) initially\r
+    Verify Switch S1 Group Table    select    1    2    up\r
+    Verify Switch S1 Group Table    select    3    4    up\r
+\r
+Generate port down scenario of one of the LAG interface on the Host H2 side and check functionality\r
+    [Documentation]    Generate the link failure on Host H2 LAG Membership-port and verify functionality\r
+    Set Host interface state    h2-eth1    down\r
+\r
+Verify information of lacp-aggregator associated with Host H2 after link down scenario\r
+    [Documentation]    Get lacp-aggregator data for node associated with Host H2\r
+    Wait Until Keyword Succeeds    15s    1s    Verify LACP aggregator data is updated post link down scenario\r
+\r
+Verify the Switch(S1) Group tables data after H2 link down scenario\r
+    [Documentation]    Functionality to check if the corresponding group entries are updated on OVS Switch(S1) after port-down scenario on the Host H2\r
+    Verify Switch S1 Group Table    select    3    4    down\r
+\r
+Generate port up scenario of the LAG interface on the Host H2 side and check functionality\r
+    [Documentation]    Generate the link up scenario on Host H2 LAG Membership-port and verify functionality\r
+    Set Host interface state    h2-eth1    up\r
+\r
+Verify information of lacp-aggregator associated with Host H2 after link up scenario\r
+    [Documentation]    Get lacp-aggregator data for node associated with Host H2\r
+    Wait Until Keyword Succeeds    15s    1s    Verify LACP aggregator data is updated post link up scenario\r
+\r
+Verify Switch(S1) Flow and Group tables data after H2 link up scenario\r
+    [Documentation]    Functionality to check if the corresponding group entries are updated on OVS Switch(S1) after port-bringup scenario on the Host H2\r
+    Verify Switch S1 Group Table    select    3    4    up\r
+\r
+*** Keywords ***\r
+Verify LACP RESTAPI Response Code for node\r
+    [Documentation]    Will check for the response code of the REST query\r
+    Should Be Equal As Strings    ${resp.status_code}    200\r
+    Should Contain    ${resp.content}    ${node1}\r
+\r
+Verify LACP RESTAPI Aggregator and Tag Contents\r
+    [Arguments]    ${resp.content}    ${content-lookup}\r
+    [Documentation]    Will check for the LACP Specific tags or Aggregator ID for node\r
+    Should Contain    ${resp.content}    ${content-lookup}\r
+\r
+Verify LACP RESTAPI connector associated for aggregator\r
+    [Arguments]    ${resp.content}    ${node}    ${agg-connector-id}\r
+    [Documentation]    Will check for the LACP connector info for each aggregator\r
+    Should Contain    ${resp.content}    ${node}:${agg-connector-id}\r
+\r
+Verify LACP aggregator data is updated post link down scenario\r
+    [Documentation]    Functionality will verify the node conenctor data on the lacp-agg api after link down scenario\r
+    ${resp}    RequestsLibrary.Get    session    ${OPERATIONAL_NODES_API}/node/${node1}/lacp-aggregators/${agg-id2}\r
+    Verify LACP RESTAPI Response Code for node\r
+    Verify LACP RESTAPI connector associated for aggregator    ${resp.content}    ${node1}    ${agg2-connector-id1}\r
+    Should not Contain    ${resp.content}    ${node1}:${agg2-connector-id2}\r
+    Verify LACP RESTAPI Aggregator and Tag Contents    ${resp.content}    lag-groupid\r
+\r
+Verify LACP aggregator data is updated post link up scenario\r
+    [Documentation]    Functionality will verify the node connector data on the lacp-agg api after link up scenario\r
+    ${resp}    RequestsLibrary.Get    session    ${OPERATIONAL_NODES_API}/node/${node1}/lacp-aggregators/${agg-id2}\r
+    Verify LACP RESTAPI Response Code for node\r
+    Verify LACP RESTAPI connector associated for aggregator    ${resp.content}    ${node1}    ${agg2-connector-id1}\r
+    Verify LACP RESTAPI connector associated for aggregator    ${resp.content}    ${node1}    ${agg2-connector-id2}\r
+    Verify LACP RESTAPI Aggregator and Tag Contents    ${resp.content}    lag-groupid\r
+\r
+Verify LACP Tags Are Formed\r
+    [Documentation]    Fundamental Check That LACP is working\r
+    ${resp}    RequestsLibrary.Get    session    ${OPERATIONAL_NODES_API}\r
+    Verify LACP RESTAPI Response Code for node\r
+    Verify LACP RESTAPI Aggregator and Tag Contents    ${resp.content}    non-lag-groupid\r
+    Verify LACP RESTAPI Aggregator and Tag Contents    ${resp.content}    lacp-aggregators\r
+\r
+LACP Inventory Suite Setup\r
+    [Documentation]    If these basic checks fail, there is no need to continue any of the other test cases\r
+    Create Session    session    http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}\r
+    Wait Until Keyword Succeeds    15s    1s    Verify LACP Tags Are Formed\r
+\r
+Set Host interface state\r
+    [Arguments]    ${port-id}    ${port-state}\r
+    [Documentation]    Will configure the port state of the Host to either up or down\r
+    Open Connection    ${MININET}    prompt=${LINUX_PROMPT}\r
+    Login With Public Key    ${MININET_USER}    ${USER_HOME}/.ssh/id_rsa    any\r
+    Execute Command    sudo ./m h2\r
+    Execute Command    sudo ifconfig ${port-id} ${port-state}\r
+    Execute Command    sudo ifconfig ${port-id}\r
+\r
+Verify Switch S1 Group Table\r
+    [Arguments]    ${group-type}    ${port-id1}    ${port-id2}    ${port-id2-state}\r
+    [Documentation]    Functionality to verify the presence of LACP group entries on the OVS Switch(S1) Group table\r
+    ${group_output}=    Run Command on Remote System    ${MININET}    sudo ovs-ofctl dump-groups s1 -O OpenFlow13\r
+    Log    ${group_output}\r
+    Comment    ${group_output}    Read Until    mininet>\r
+    ${result}=    Get Lines Containing String    ${group_output}    output:${port-id1}\r
+    Should Contain    ${result}    type=${group-type}\r
+    Should Contain    ${result}    output:${port-id1}\r
+    Run Keyword If    "${port-id2-state}" == "up"    Should Contain    ${result}    output:${port-id2}    ELSE    Should not Contain\r
+    ...    ${result}    output:${port-id2}\r
diff --git a/test/csit/suites/lacp/Lacp_Feature_OF13/030__lacp_flow_entry_stats.robot b/test/csit/suites/lacp/Lacp_Feature_OF13/030__lacp_flow_entry_stats.robot
new file mode 100644 (file)
index 0000000..533a334
--- /dev/null
@@ -0,0 +1,62 @@
+*** Settings ***\r
+Documentation     Test suite to verify if the PDU count for the LACP flow entry is getting updated\r
+Suite Setup       LACP Inventory Suite Setup\r
+Suite Teardown    Delete All Sessions\r
+Library           SSHLibrary\r
+Library           Collections\r
+Library           String\r
+Library           RequestsLibrary\r
+Library           ../../../libraries/Common.py\r
+Resource          ../../../libraries/Utils.txt\r
+Variables         ../../../variables/Variables.py\r
+\r
+*** Variables ***\r
+${node1}          openflow:1\r
+\r
+*** Test Cases ***\r
+Verify Switch S1 LACP flow entry packet hit doesn't display zero value\r
+    [Documentation]    Verify the LACP flow entry packet hit stats doesn't display zero value on the Switch S1\r
+    ${result}=    Run Command On Remote System    ${MININET}    sudo ovs-ofctl dump-flows s1 -O OpenFlow13\r
+    Comment    ${result}    Read Until    mininet>\r
+    Should Not Contain    ${result}    n_packets=0\r
+    Should Not Contain    ${result}    n_bytes=0\r
+\r
+Verify Switch S1 Port stats doesn't display zero value\r
+    [Documentation]    Verify the port stats for the Switch S1 doesn't display value with zero\r
+    ${result}=    Run Command On Remote System    ${MININET}    sudo ovs-ofctl dump-ports s1 -O OpenFlow13\r
+    Comment    ${result}    Read Until    mininet>\r
+    ${port1}=    Get Lines Containing String    ${result}    1:\r
+    Should Not Contain    ${port1}    rx pkts=0\r
+    Should Not Contain    ${port1}    bytes=0\r
+    ${port2}=    Get Lines Containing String    ${result}    2:\r
+    Should Not Contain    ${port2}    rx pkts=0\r
+    Should Not Contain    ${port2}    bytes=0\r
+    ${port3}=    Get Lines Containing String    ${result}    3:\r
+    Should Not Contain    ${port3}    rx pkts=0\r
+    Should Not Contain    ${port3}    bytes=0\r
+    ${port4}=    Get Lines Containing String    ${result}    4:\r
+    Should Not Contain    ${port4}    rx pkts=0\r
+    Should Not Contain    ${port4}    bytes=0\r
+\r
+*** Keywords ***\r
+Verify LACP RESTAPI Response Code for node\r
+    [Documentation]    Will check for the response code of the REST query\r
+    Should Be Equal As Strings    ${resp.status_code}    200\r
+    Should Contain    ${resp.content}    ${node1}\r
+\r
+Verify LACP RESTAPI Aggregator and Tag Contents\r
+    [Arguments]    ${resp.content}    ${content-lookup}\r
+    [Documentation]    Will check for the LACP Specific tags or Aggregator ID for node\r
+    Should Contain    ${resp.content}    ${content-lookup}\r
+\r
+Verify LACP Tags Are Formed\r
+    [Documentation]    Fundamental Check That LACP is working\r
+    ${resp}    RequestsLibrary.Get    session    ${OPERATIONAL_NODES_API}\r
+    Verify LACP RESTAPI Response Code for node\r
+    Verify LACP RESTAPI Aggregator and Tag Contents    ${resp.content}    non-lag-groupid\r
+    Verify LACP RESTAPI Aggregator and Tag Contents    ${resp.content}    lacp-aggregators\r
+\r
+LACP Inventory Suite Setup\r
+    [Documentation]    If these basic checks fail, there is no need to continue any of the other test cases\r
+    Create Session    session    http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}\r
+    Wait Until Keyword Succeeds    15s    1s    Verify LACP Tags Are Formed\r