Upgrade RF syntax for v3.2 compatibility
[integration/test.git] / csit / suites / tsdr / Cassandra / 030_FlowTableMetrics.robot
1 *** Settings ***
2 Documentation     Test suite for Cassandra DataStore Flow Table Stats Verification
3 Suite Setup       Initialize the Tsdr Suite
4 Suite Teardown    Stop Tsdr Suite
5 Library           SSHLibrary
6 Library           Collections
7 Library           String
8 Library           ../../../libraries/Common.py
9 Resource          ../../../libraries/KarafKeywords.robot
10 Resource          ../../../libraries/TsdrUtils.robot
11 Variables         ../../../variables/Variables.py
12
13 *** Variables ***
14 ${TSDR_FLOWTABLE_STATS}    tsdr:list FlowTableStats
15 @{tsdr_pl}
16 @{tsdr_af}
17 @{tsdr_pm}
18 ${packetlookup}    flow-table-statistics/packets-looked-up
19 ${activeflows}    flow-table-statistics/active-flows
20 ${packetmatched}    flow-table-statistics/packets-matched
21 @{openflow_packetlookup}
22 @{openflow_activeflows}
23 @{openflow_packetmatched}
24
25 *** Test Cases ***
26 Verification of TSDR Cassandra Feature Installation
27     [Documentation]    Install and Verify the TSDR Cassandra Features
28     COMMENT    Install a Feature    odl-tsdr-cassandra-all    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
29     Verify Feature Is Installed    odl-tsdr-cassandra
30     COMMENT    Verify Feature Is Installed    odl-tsdr-cassandra-persistence
31     Verify Feature Is Installed    odl-tsdr-openflow-statistics-collector
32     Start Tsdr Suite
33     Ping All Hosts
34     Wait Until Keyword Succeeds    5x    30 sec    Check Metric val    \\d{5}
35
36 Getting all Tables from Openflow Plugin
37     [Documentation]    Getting Flow Table Stats Values from Openflow plugin
38     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/    ${packetlookup}
39     Append To List    ${openflow_packetlookup}    ${ret}
40     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/    ${packetlookup}
41     Append To List    ${openflow_packetlookup}    ${ret}
42     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/    ${packetlookup}
43     Append To List    ${openflow_packetlookup}    ${ret}
44     Set Suite Variable    @{openflow_packetlookup}
45     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/    ${activeflows}
46     Append To List    ${openflow_activeflows}    ${ret}
47     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/    ${activeflows}
48     Append To List    ${openflow_activeflows}    ${ret}
49     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/    ${activeflows}
50     Append To List    ${openflow_activeflows}    ${ret}
51     Set Suite Variable    @{openflow_activeflows}
52     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/table/0/    ${packetmatched}
53     Append To List    ${openflow_packetmatched}    ${ret}
54     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/table/0/    ${packetmatched}
55     Append To List    ${openflow_packetmatched}    ${ret}
56     ${ret}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/table/0/    ${packetmatched}
57     Append To List    ${openflow_packetmatched}    ${ret}
58     Set Suite Variable    @{openflow_packetmatched}
59
60 Verification of FlowStats-Attributes on Cassandra Data Store
61     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
62     Copy TSDR tables
63     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:1,Table:0
64     Append To List    ${tsdr_pl}    ${ret_val1}
65     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:2,Table:0
66     Append To List    ${tsdr_pl}    ${ret_val1}
67     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=PacketLookup | grep RK=Node:openflow:3,Table:0
68     Append To List    ${tsdr_pl}    ${ret_val1}
69     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:1,Table:0
70     Append To List    ${tsdr_af}    ${ret_val1}
71     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:2,Table:0
72     Append To List    ${tsdr_af}    ${ret_val1}
73     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=ActiveFlows | grep RK=Node:openflow:3,Table:0
74     Append To List    ${tsdr_af}    ${ret_val1}
75     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:1 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:1,Table:0
76     Append To List    ${tsdr_pm}    ${ret_val1}
77     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:2 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:2,Table:0
78     Append To List    ${tsdr_pm}    ${ret_val1}
79     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    grep NID=openflow:3 | grep DC=FLOWTABLESTATS | grep MN=PacketMatch | grep RK=Node:openflow:3,Table:0
80     Append To List    ${tsdr_pm}    ${ret_val1}
81
82 Comparing Flow Table Metrics
83     [Documentation]    Comparing Flow table values between Cassandra and openflow plugin.
84     FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${openflow_packetlookup}    ${tsdr_pl}
85         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    5
86     END
87     FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${openflow_activeflows}    ${tsdr_af}
88         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    5
89     END
90     FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${openflow_packetmatched}    ${tsdr_pm}
91         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    5
92     END
93
94 *** Keywords ***
95 Initialize the Tsdr Suite
96     COMMENT    Initialize the Cassandra for TSDR
97     Initialize Cassandra Tables Metricval