26909df9b9de06fad8fa923479257d2c4438bed8
[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 ${CONFIG_INTERVAL}    /restconf/config/tsdr-openflow-statistics-collector:TSDRDCConfig
22 ${OPER_INTERVAL}    /restconf/operations/tsdr-openflow-statistics-collector:setPollingInterval
23 ${metric_path}     metric_path
24 ${metric_val}     metric_val
25 @{xml_list}
26 @{tsdr_list}
27
28 *** Test Cases ***
29 Verification of TSDR Cassandra Feature Installation
30     [Documentation]    Install and Verify the TSDR Cassandra Features
31     COMMENT    Install a Feature    odl-tsdr-cassandra-all    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
32     Wait Until Keyword Succeeds    24x    10 sec    Check Karaf Log Has Messages    tsdr.openflow
33     Verify Feature Is Installed    odl-tsdr-cassandra
34     Verify Feature Is Installed    odl-tsdr-openflow-statistics-collector
35     Start Tsdr Suite
36     Ping All Hosts
37     Wait Until Keyword Succeeds    5x    30 sec    Check Metric val     \\d{5}
38
39 Storing Statistics from Openflow REST
40
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
105     [Documentation]    Compare openflow Interface metrics between data collected from openflow Plugin and TSDR
106     : FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${xml_list}    ${tsdr_list}
107     \    Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}    20
108
109
110
111 Verify Configuration Interval-change
112     [Documentation]    Verify the TSDR Collection configuration changes
113     ${session}=    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
114     Verify TSDR Configuration Interval    180
115     Post TSDR Configuration Interval    200
116     Verify TSDR Configuration Interval    200
117     Post TSDR Configuration Interval    180
118     Verify TSDR Configuration Interval    180
119     Delete All Sessions
120
121 *** Keywords ***
122
123 Verify TSDR Configuration Interval
124     [Arguments]    ${interval}
125     [Documentation]    Verify Configuration interval of TSDR Collection
126     ${resp}    RequestsLibrary.Get    session    ${CONFIG_INTERVAL}
127     Should Be Equal As Strings    ${resp.status_code}    200
128     Should Contain    ${resp.content}    ${interval}
129
130 Post TSDR Configuration Interval
131     [Arguments]    ${interval}
132     [Documentation]    Configuration TSDR collection interval ${interval}
133     ${p1}    Create Dictionary    interval    ${interval}
134     ${p2}    Create Dictionary    input    ${p1}
135     ${post_data}    Create Dictionary    setPollingInterval    ${p2}
136     Log    ${post_data}
137     ${resp}    RequestsLibrary.Post    session    ${OPER_INTERVAL}    ${post_data}
138     Should Be Equal As Strings    ${resp.status_code}    201
139
140 Extract From DB Table
141     [Arguments]    ${pattern}
142     [Documentation]    Extract from metricpath table and return the value
143     ${ret_val1}=    Set Variable    -100
144     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
145     [Return]    ${ret_val1}
146