dd0cc131a881f059c707c49ed2020b9d36a5e938
[integration/test.git] / csit / suites / tsdr / HBase / 010_InterfaceMetrics.robot
1 *** Settings ***
2 Documentation     Test suite for Hbase DataStore PortStats Verification
3 Suite Setup       Initialize the Tsdr Suite
4 Suite Teardown    Stop Tsdr Suite
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 Metadata          https://bugs.opendaylight.org/show_bug.cgi?id=5068    ${EMPTY}
14
15 *** Variables ***
16 @{INTERFACE_METRICS}    TransmittedPackets    TransmittedBytes    TransmitErrors    TransmitDrops    ReceivedPackets    ReceivedBytes    ReceiveOverRunError
17 ...               ReceiveFrameError    ReceiveErrors    ReceiveDrops    ReceiveCrcError    CollisionCount
18 @{CATEGORY}       FLOWGROUPSTATS    FLOWMETERSTATS    FLOWSTATS    FLOWTABLESTATS    PORTSTATS    QUEUESTATS
19 ${TSDR_PORTSTATS}    tsdr:list PORTSTATS
20 ${CONFIG_INTERVAL}    /restconf/config/tsdr-openflow-statistics-collector:TSDRDCConfig
21 ${OPER_INTERVAL}    /restconf/operations/tsdr-openflow-statistics-collector:setPollingInterval
22
23 *** Test Cases ***
24 Verification of TSDR HBase Feature Installation
25     [Documentation]    Install and Verify the TSDR HBase Features
26     COMMENT    Install a Feature    odl-tsdr-hbase    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    60
27     Verify Feature Is Installed    odl-tsdr-hbase
28     Verify Feature Is Installed    odl-hbaseclient
29
30 Verification TSDR Command is exist in Help
31     [Documentation]    Verify the TSDR List command on Help
32     ${output}=    Issue Command On Karaf Console    tsdr\t
33     Should Contain    ${output}    tsdr:list
34     ${output}=    Issue Command On Karaf Console    tsdr:list\t\t
35     : FOR    ${list}    IN    @{CATEGORY}
36     \    Should Contain    ${output}    ${list}
37     Wait Until Keyword Succeeds    620s    1s    Verify the Metric is Collected?    ${TSDR_PORTSTATS}    openflow
38
39 Verification of TSDR PortStats
40     [Documentation]    Verify the TSDR InterfaceMetrics
41     : FOR    ${list}    IN    @{INTERFACE_METRICS}
42     \    ${tsdr_cmd}=    Concatenate the String    ${TSDR_PORTSTATS}    | grep ${list} | head
43     \    ${output}=    Issue Command On Karaf Console    ${tsdr_cmd}    ${ODL_SYSTEM_IP}    ${KARAF_SHELL_PORT}    30
44     \    Should Contain    ${output}    ${list}
45
46 Verification of InterfaceMetrics-Attributes on HBase Client
47     [Documentation]    Verify the InterfaceMetrics has been updated on HBase Datastore
48     : FOR    ${list}    IN    @{INTERFACE_METRICS}
49     \    Verify the Metrics Attributes on Hbase Client    ${list}    Node:openflow:1,NodeConnector:1    PORTSTATS
50
51 Verify Configuration Interval-change
52     [Documentation]    Verify the TSDR Collection configuration changes
53     Verify TSDR Configuration Interval    180
54     Post TSDR Configuration Interval    200
55     Verify TSDR Configuration Interval    200
56     Post TSDR Configuration Interval    180
57     Verify TSDR Configuration Interval    180
58     [Teardown]    Report_Failure_Due_To_Bug    5068
59
60 *** Keywords ***
61 Initialize the Tsdr Suite
62     COMMENT    Initialize the HBase for TSDR
63     Start Tsdr Suite
64     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
65
66 Verify TSDR Configuration Interval
67     [Arguments]    ${interval}
68     [Documentation]    Verify Configuration interval of TSDR Collection
69     ${resp}    RequestsLibrary.Get Request    session    ${CONFIG_INTERVAL}
70     Should Be Equal As Strings    ${resp.status_code}    200
71     Should Contain    ${resp.content}    ${interval}
72
73 Post TSDR Configuration Interval
74     [Arguments]    ${interval}
75     [Documentation]    Configuration TSDR collection interval ${interval}
76     ${p1}    Create Dictionary    interval=${interval}
77     ${p2}    Create Dictionary    input=${p1}
78     ${post_data}    Create Dictionary    setPollingInterval=${p2}
79     Log    ${post_data}
80     ${resp}    RequestsLibrary.Post Request    session    ${OPER_INTERVAL}    ${post_data}
81     Should Be Equal As Strings    ${resp.status_code}    201