e384bff58b7f0d866691d63ed9b68dc0eef544d5
[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 Metadata          https://bugs.opendaylight.org/show_bug.cgi?id=5068    ${EMPTY}
5 Library           SSHLibrary
6 Library           Collections
7 Library           String
8 Library           RequestsLibrary
9 Library           ../../../libraries/Common.py
10 Resource          ../../../libraries/KarafKeywords.robot
11 Resource          ../../../libraries/TsdrUtils.robot
12 Variables         ../../../variables/Variables.py
13
14 *** Variables ***
15 @{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
16 ...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
17 ${root_path}      flow-capable-node-connector-statistics
18 @{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
19 ...               ${root_path}/receive-frame-error    ${root_path}/receive-errors    ${root_path}/receive-drops    ${root_path}/receive-crc-error    ${root_path}/collision-count
20 @{CATEGORY}       FlowStats    FlowTableStats    PortStats    QueueStats
21 ${TSDR_PORTSTATS}    tsdr:list PortStats
22 ${CONFIG_INTERVAL}    /restconf/config/tsdr-openflow-statistics-collector:TSDRDCConfig
23 ${OPER_INTERVAL}    /restconf/operations/tsdr-openflow-statistics-collector:setPollingInterval
24 ${metric_path}    metric_path
25 ${metric_val}     metric_val
26 @{xml_list}
27 @{tsdr_list}
28
29 *** Test Cases ***
30 Verification of TSDR Cassandra Feature Installation
31     [Documentation]    Install and Verify the TSDR Cassandra Features
32     COMMENT    Install a Feature    odl-tsdr-cassandra-all    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
33     Wait Until Keyword Succeeds    24x    10 sec    Check Karaf Log Has Messages    tsdr.openflow
34     Verify Feature Is Installed    odl-tsdr-cassandra
35     Verify Feature Is Installed    odl-tsdr-openflow-statistics-collector
36     Start Tsdr Suite
37     Ping All Hosts
38     Wait Until Keyword Succeeds    5x    30 sec    Check Metric val    \\d{5}
39
40 Storing Statistics from Openflow REST
41     [Documentation]    Store openflow PortStats metrics using REST.
42     : FOR    ${item}    IN    @{xpath}
43     \    ${ret_val}=    Set Variable    -1
44     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:1    ${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:2    ${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:1/node-connector/openflow:1:LOCAL    ${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:1    ${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:2    ${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:3    ${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:2/node-connector/openflow:2:LOCAL    ${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:1    ${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:2    ${item}
69     \    Append To List    ${xml_list}    ${ret_val}
70     \    ${ret_val}=    Set Variable    -1
71     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:LOCAL    ${item}
72     \    Append To List    ${xml_list}    ${ret_val}
73     \    ${ret_val}=    Set Variable    -1
74     Log List    ${xml_list}
75
76 Verification of InterfaceMetrics-Attributes on Cassandra Client
77     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
78     Copy TSDR tables
79     : FOR    ${list}    IN    @{INTERFACE_METRICS}
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:1
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:2
83     \    Append To List    ${tsdr_list}    ${ret_val1}
84     \    ${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
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:1
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:2
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:3
91     \    Append To List    ${tsdr_list}    ${ret_val1}
92     \    ${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
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:1
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:2
97     \    Append To List    ${tsdr_list}    ${ret_val1}
98     \    ${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
99     \    Append To List    ${tsdr_list}    ${ret_val1}
100
101 Comparing Mertics
102     [Documentation]    Compare openflow Interface metrics between data collected from openflow Plugin and TSDR
103     : FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${xml_list}    ${tsdr_list}
104     \    Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
105
106 Verify Configuration Interval-change
107     [Documentation]    Verify the TSDR Collection configuration changes
108     ${session}=    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
109     Verify TSDR Configuration Interval    180
110     Post TSDR Configuration Interval    200
111     Verify TSDR Configuration Interval    200
112     Post TSDR Configuration Interval    180
113     Verify TSDR Configuration Interval    180
114     Delete All Sessions
115     [Teardown]    Report_Failure_Due_To_Bug    5068
116
117 *** Keywords ***
118 Verify TSDR Configuration Interval
119     [Arguments]    ${interval}
120     [Documentation]    Verify Configuration interval of TSDR Collection
121     ${resp}    RequestsLibrary.Get    session    ${CONFIG_INTERVAL}
122     Should Be Equal As Strings    ${resp.status_code}    200
123     Should Contain    ${resp.content}    ${interval}
124
125 Post TSDR Configuration Interval
126     [Arguments]    ${interval}
127     [Documentation]    Configuration TSDR collection interval ${interval}
128     ${p1}    Create Dictionary    interval    ${interval}
129     ${p2}    Create Dictionary    input    ${p1}
130     ${post_data}    Create Dictionary    setPollingInterval    ${p2}
131     Log    ${post_data}
132     ${resp}    RequestsLibrary.Post    session    ${OPER_INTERVAL}    ${post_data}
133     Should Be Equal As Strings    ${resp.status_code}    201
134
135 Extract From DB Table
136     [Arguments]    ${pattern}
137     [Documentation]    Extract from metricpath table and return the value
138     ${ret_val1}=    Set Variable    -100
139     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
140     [Return]    ${ret_val1}