2a24704276e5ba22d29ef9afb0f23b54c9295c12
[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 Metadata          https://bugs.opendaylight.org/show_bug.cgi?id=5068    ${EMPTY}
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
77
78 Verification of InterfaceMetrics-Attributes on Cassandra Client
79     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
80     Copy TSDR tables
81     : FOR    ${list}    IN    @{INTERFACE_METRICS}
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:1
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:2
85     \    Append To List    ${tsdr_list}    ${ret_val1}
86     \    ${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
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:1
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:2
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:3
93     \    Append To List    ${tsdr_list}    ${ret_val1}
94     \    ${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
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:1
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:2
99     \    Append To List    ${tsdr_list}    ${ret_val1}
100     \    ${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
101     \    Append To List    ${tsdr_list}    ${ret_val1}
102
103 Comparing Mertics
104     [Documentation]    Compare openflow Interface metrics between data collected from openflow Plugin and TSDR
105     : FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${xml_list}    ${tsdr_list}
106     \    Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
107
108 Verify Configuration Interval-change
109     [Documentation]    Verify the TSDR Collection configuration changes
110     ${session}=    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
111     Verify TSDR Configuration Interval    180
112     Post TSDR Configuration Interval    200
113     Verify TSDR Configuration Interval    200
114     Post TSDR Configuration Interval    180
115     Verify TSDR Configuration Interval    180
116     Delete All Sessions
117     [Teardown]    Report_Failure_Due_To_Bug    5068
118
119 *** Keywords ***
120 Verify TSDR Configuration Interval
121     [Arguments]    ${interval}
122     [Documentation]    Verify Configuration interval of TSDR Collection
123     ${resp}    RequestsLibrary.Get    session    ${CONFIG_INTERVAL}
124     Should Be Equal As Strings    ${resp.status_code}    200
125     Should Contain    ${resp.content}    ${interval}
126
127 Post TSDR Configuration Interval
128     [Arguments]    ${interval}
129     [Documentation]    Configuration TSDR collection interval ${interval}
130     ${p1}    Create Dictionary    interval    ${interval}
131     ${p2}    Create Dictionary    input    ${p1}
132     ${post_data}    Create Dictionary    setPollingInterval    ${p2}
133     Log    ${post_data}
134     ${resp}    RequestsLibrary.Post    session    ${OPER_INTERVAL}    ${post_data}
135     Should Be Equal As Strings    ${resp.status_code}    201
136
137 Extract From DB Table
138     [Arguments]    ${pattern}
139     [Documentation]    Extract from metricpath table and return the value
140     ${ret_val1}=    Set Variable    -100
141     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
142     [Return]    ${ret_val1}
143