cd221cfcd409d263d24f47ecf0aad4729ff77edc
[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     Log List    ${xml_list}
72
73 Verification of InterfaceMetrics-Attributes on Cassandra Client
74     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
75     Copy TSDR tables
76     : FOR    ${list}    IN    @{INTERFACE_METRICS}
77     \    ${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
78     \    Append To List    ${tsdr_list}    ${ret_val1}
79     \    ${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
80     \    Append To List    ${tsdr_list}    ${ret_val1}
81     \    ${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
82     \    Append To List    ${tsdr_list}    ${ret_val1}
83     \    ${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
84     \    Append To List    ${tsdr_list}    ${ret_val1}
85     \    ${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
86     \    Append To List    ${tsdr_list}    ${ret_val1}
87     \    ${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
88     \    Append To List    ${tsdr_list}    ${ret_val1}
89     \    ${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
90     \    Append To List    ${tsdr_list}    ${ret_val1}
91     \    ${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
92     \    Append To List    ${tsdr_list}    ${ret_val1}
93     \    ${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
94     \    Append To List    ${tsdr_list}    ${ret_val1}
95     \    ${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
96     \    Append To List    ${tsdr_list}    ${ret_val1}
97
98 Comparing Mertics
99     [Documentation]    Compare openflow Interface metrics between data collected from openflow Plugin and TSDR
100     : FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${xml_list}    ${tsdr_list}
101     \    Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
102
103 *** Keywords ***
104 Extract From DB Table
105     [Arguments]    ${pattern}
106     [Documentation]    Extract from metricpath table and return the value
107     ${ret_val1}=    Set Variable    -100
108     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
109     [Return]    ${ret_val1}