Tidy updated test suites
[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 path    24\\d+|25\\d+
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}
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
116 *** Keywords ***
117 Verify TSDR Configuration Interval
118     [Arguments]    ${interval}
119     [Documentation]    Verify Configuration interval of TSDR Collection
120     ${resp}    RequestsLibrary.Get    session    ${CONFIG_INTERVAL}
121     Should Be Equal As Strings    ${resp.status_code}    200
122     Should Contain    ${resp.content}    ${interval}
123
124 Post TSDR Configuration Interval
125     [Arguments]    ${interval}
126     [Documentation]    Configuration TSDR collection interval ${interval}
127     ${p1}    Create Dictionary    interval    ${interval}
128     ${p2}    Create Dictionary    input    ${p1}
129     ${post_data}    Create Dictionary    setPollingInterval    ${p2}
130     Log    ${post_data}
131     ${resp}    RequestsLibrary.Post    session    ${OPER_INTERVAL}    ${post_data}
132     Should Be Equal As Strings    ${resp.status_code}    201
133
134 Extract From DB Table
135     [Arguments]    ${pattern}
136     [Documentation]    Extract from metricpath table and return the value
137     ${ret_val1}=    Set Variable    -100
138     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
139     [Return]    ${ret_val1}