Upgrade RF syntax for v3.2 compatibility
[integration/test.git] / csit / suites / tsdr / Cassandra / 010_InterfaceMetrics.robot
1 *** Settings ***
2 Documentation     Test suite for Cassandra DataStore PortStats Verification
3 Suite Teardown    Stop Tsdr Suite
4 Library           SSHLibrary
5 Library           Collections
6 Library           String
7 Library           RequestsLibrary
8 Library           ../../../libraries/Common.py
9 Resource          ../../../libraries/KarafKeywords.robot
10 Resource          ../../../libraries/TsdrUtils.robot
11 Variables         ../../../variables/Variables.py
12
13 *** Variables ***
14 @{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
15 ...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
16 ${root_path}      flow-capable-node-connector-statistics
17 @{xpath}          ${root_path}/packets/transmitted    ${root_path}/bytes/transmitted    ${root_path}/transmit-errors    ${root_path}/transmit-drops    ${root_path}/packets/received    ${root_path}/bytes/received    ${root_path}/receive-over-run-error
18 ...               ${root_path}/receive-frame-error    ${root_path}/receive-errors    ${root_path}/receive-drops    ${root_path}/receive-crc-error    ${root_path}/collision-count
19 @{CATEGORY}       FlowStats    FlowTableStats    PortStats    QueueStats
20 ${TSDR_PORTSTATS}    tsdr:list PortStats
21 ${metric_path}    metric_path
22 ${metric_val}     metric_val
23 @{xml_list}
24 @{tsdr_list}
25
26 *** Test Cases ***
27 Verification of TSDR Cassandra Feature Installation
28     [Documentation]    Install and Verify the TSDR Cassandra Features
29     COMMENT    Install a Feature    odl-tsdr-cassandra-all    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
30     Wait Until Keyword Succeeds    24x    10 sec    Check Karaf Log Has Messages    tsdr.openflow
31     Verify Feature Is Installed    odl-tsdr-cassandra
32     Verify Feature Is Installed    odl-tsdr-openflow-statistics-collector
33     Start Tsdr Suite
34     Ping All Hosts
35     Wait Until Keyword Succeeds    5x    30 sec    Check Metric val    \\d{5}
36
37 Storing Statistics from Openflow REST
38     [Documentation]    Store openflow PortStats metrics using REST.
39     FOR    ${item}    IN    @{xpath}
40         ${ret_val}=    Set Variable    -1
41         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:1    ${item}
42         Append To List    ${xml_list}    ${ret_val}
43         ${ret_val}=    Set Variable    -1
44         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:2    ${item}
45         Append To List    ${xml_list}    ${ret_val}
46         ${ret_val}=    Set Variable    -1
47         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:LOCAL    ${item}
48         Append To List    ${xml_list}    ${ret_val}
49         ${ret_val}=    Set Variable    -1
50         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:1    ${item}
51         Append To List    ${xml_list}    ${ret_val}
52         ${ret_val}=    Set Variable    -1
53         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:2    ${item}
54         Append To List    ${xml_list}    ${ret_val}
55         ${ret_val}=    Set Variable    -1
56         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:3    ${item}
57         Append To List    ${xml_list}    ${ret_val}
58         ${ret_val}=    Set Variable    -1
59         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:LOCAL    ${item}
60         Append To List    ${xml_list}    ${ret_val}
61         ${ret_val}=    Set Variable    -1
62         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:1    ${item}
63         Append To List    ${xml_list}    ${ret_val}
64         ${ret_val}=    Set Variable    -1
65         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:2    ${item}
66         Append To List    ${xml_list}    ${ret_val}
67         ${ret_val}=    Set Variable    -1
68         ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:LOCAL    ${item}
69         Append To List    ${xml_list}    ${ret_val}
70         ${ret_val}=    Set Variable    -1
71     END
72     Log List    ${xml_list}
73
74 Verification of InterfaceMetrics-Attributes on Cassandra Client
75     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
76     Copy TSDR tables
77     FOR    ${list}    IN    @{INTERFACE_METRICS}
78         ${ret_val1}=    Extract From DB Table    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:1
79         Append To List    ${tsdr_list}    ${ret_val1}
80         ${ret_val1}=    Extract From DB Table    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:2
81         Append To List    ${tsdr_list}    ${ret_val1}
82         ${ret_val1}=    Extract From DB Table    grep NID=openflow:1 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:1,NodeConnector:openflow:1:LOCAL
83         Append To List    ${tsdr_list}    ${ret_val1}
84         ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:1
85         Append To List    ${tsdr_list}    ${ret_val1}
86         ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:2
87         Append To List    ${tsdr_list}    ${ret_val1}
88         ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:3
89         Append To List    ${tsdr_list}    ${ret_val1}
90         ${ret_val1}=    Extract From DB Table    grep NID=openflow:2 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:2,NodeConnector:openflow:2:LOCAL
91         Append To List    ${tsdr_list}    ${ret_val1}
92         ${ret_val1}=    Extract From DB Table    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:1
93         Append To List    ${tsdr_list}    ${ret_val1}
94         ${ret_val1}=    Extract From DB Table    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:2
95         Append To List    ${tsdr_list}    ${ret_val1}
96         ${ret_val1}=    Extract From DB Table    grep NID=openflow:3 | grep DC=PORTSTATS | grep MN=${list} | grep RK=Node:openflow:3,NodeConnector:openflow:3:LOCAL
97         Append To List    ${tsdr_list}    ${ret_val1}
98     END
99
100 Comparing Mertics
101     [Documentation]    Compare openflow Interface metrics between data collected from openflow Plugin and TSDR
102     FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${xml_list}    ${tsdr_list}
103         Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
104     END
105
106 *** Keywords ***
107 Extract From DB Table
108     [Arguments]    ${pattern}
109     [Documentation]    Extract from metricpath table and return the value
110     ${ret_val1}=    Set Variable    -100
111     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
112     [Return]    ${ret_val1}