3ec12d8cd3b41db97411198384ddeb8b07ae5d40
[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
42     [Documentation]    Store openflow PortStats metrics using REST.
43     : FOR    ${item}    IN    @{xpath}
44     \    ${ret_val}=    Set Variable    -1
45     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:1    ${item}
46     \    Append To List    ${xml_list}    ${ret_val}
47     \    ${ret_val}=    Set Variable    -1
48     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:2    ${item}
49     \    Append To List    ${xml_list}    ${ret_val}
50     \    ${ret_val}=    Set Variable    -1
51     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:1/node-connector/openflow:1:LOCAL    ${item}
52     \    Append To List    ${xml_list}    ${ret_val}
53     \    ${ret_val}=    Set Variable    -1
54     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:1    ${item}
55     \    Append To List    ${xml_list}    ${ret_val}
56     \    ${ret_val}=    Set Variable    -1
57     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:2    ${item}
58     \    Append To List    ${xml_list}    ${ret_val}
59     \    ${ret_val}=    Set Variable    -1
60     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:3    ${item}
61     \    Append To List    ${xml_list}    ${ret_val}
62     \    ${ret_val}=    Set Variable    -1
63     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:2/node-connector/openflow:2:LOCAL    ${item}
64     \    Append To List    ${xml_list}    ${ret_val}
65     \    ${ret_val}=    Set Variable    -1
66     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:1    ${item}
67     \    Append To List    ${xml_list}    ${ret_val}
68     \    ${ret_val}=    Set Variable    -1
69     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:2    ${item}
70     \    Append To List    ${xml_list}    ${ret_val}
71     \    ${ret_val}=    Set Variable    -1
72     \    ${ret_val}=    Get Stats XML    ${OPERATIONAL_NODES_API}/node/openflow:3/node-connector/openflow:3:LOCAL    ${item}
73     \    Append To List    ${xml_list}    ${ret_val}
74     \    ${ret_val}=    Set Variable    -1
75     Log List    ${xml_list}
76
77
78
79 Verification of InterfaceMetrics-Attributes on Cassandra Client
80     [Documentation]    Verify the InterfaceMetrics has been updated on Cassandra Data Store
81     Copy TSDR tables
82     : FOR    ${list}    IN    @{INTERFACE_METRICS}
83     \    ${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
84     \    Append To List    ${tsdr_list}    ${ret_val1}
85     \    ${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
86     \    Append To List    ${tsdr_list}    ${ret_val1}
87     \    ${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
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:1
90     \    Append To List    ${tsdr_list}    ${ret_val1}
91     \    ${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
92     \    Append To List    ${tsdr_list}    ${ret_val1}
93     \    ${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
94     \    Append To List    ${tsdr_list}    ${ret_val1}
95     \    ${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
96     \    Append To List    ${tsdr_list}    ${ret_val1}
97     \    ${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
98     \    Append To List    ${tsdr_list}    ${ret_val1}
99     \    ${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
100     \    Append To List    ${tsdr_list}    ${ret_val1}
101     \    ${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
102     \    Append To List    ${tsdr_list}    ${ret_val1}
103
104 Comparing Mertics
105
106     [Documentation]    Compare openflow Interface metrics between data collected from openflow Plugin and TSDR
107     : FOR    ${xml_val}    ${tsdr_val}    IN ZIP    ${xml_list}    ${tsdr_list}
108     \    Compare Tsdr XML Metrics    ${xml_val}    ${tsdr_val}
109
110
111
112 Verify Configuration Interval-change
113     [Documentation]    Verify the TSDR Collection configuration changes
114     ${session}=    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
115     Verify TSDR Configuration Interval    180
116     Post TSDR Configuration Interval    200
117     Verify TSDR Configuration Interval    200
118     Post TSDR Configuration Interval    180
119     Verify TSDR Configuration Interval    180
120     Delete All Sessions
121
122 *** Keywords ***
123
124 Verify TSDR Configuration Interval
125     [Arguments]    ${interval}
126     [Documentation]    Verify Configuration interval of TSDR Collection
127     ${resp}    RequestsLibrary.Get    session    ${CONFIG_INTERVAL}
128     Should Be Equal As Strings    ${resp.status_code}    200
129     Should Contain    ${resp.content}    ${interval}
130
131 Post TSDR Configuration Interval
132     [Arguments]    ${interval}
133     [Documentation]    Configuration TSDR collection interval ${interval}
134     ${p1}    Create Dictionary    interval    ${interval}
135     ${p2}    Create Dictionary    input    ${p1}
136     ${post_data}    Create Dictionary    setPollingInterval    ${p2}
137     Log    ${post_data}
138     ${resp}    RequestsLibrary.Post    session    ${OPER_INTERVAL}    ${post_data}
139     Should Be Equal As Strings    ${resp.status_code}    201
140
141 Extract From DB Table
142     [Arguments]    ${pattern}
143     [Documentation]    Extract from metricpath table and return the value
144     ${ret_val1}=    Set Variable    -100
145     ${ret_val1}=    Verify the Metrics Attributes on Cassandra Client    ${pattern}
146     [Return]    ${ret_val1}
147
148
149