Step 2: Move test folder to root
[integration/test.git] / csit / suites / l2switch / Inventory_Scalability_OF13 / 010__restconf_inventory.robot
diff --git a/csit/suites/l2switch/Inventory_Scalability_OF13/010__restconf_inventory.robot b/csit/suites/l2switch/Inventory_Scalability_OF13/010__restconf_inventory.robot
new file mode 100644 (file)
index 0000000..85a205a
--- /dev/null
@@ -0,0 +1,71 @@
+*** Settings ***
+Documentation     Test suite for RESTCONF inventory
+Suite Setup       Create Session    session    http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           Collections
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Variables         ../../../variables/Variables.py
+
+*** Variables ***
+${REST_CONTEXT}    /restconf/operational/opendaylight-inventory:nodes
+
+*** Test Cases ***
+Get list of nodes
+    [Documentation]    Get the inventory
+    ${TOPO_TREE_DEPTH}    Convert To Integer    ${TOPO_TREE_DEPTH}
+    ${TOPO_TREE_FANOUT}    Convert To Integer    ${TOPO_TREE_FANOUT}
+    ${numnodes}    Num Of Nodes    ${TOPO_TREE_DEPTH}    ${TOPO_TREE_FANOUT}
+    Wait Until Keyword Succeeds    30s    2s    Check Every Nodes    ${numnodes}
+
+Get nodeconnector for the root node
+    [Documentation]    Get the inventory for the root node
+    ${TOPO_TREE_FANOUT}    Convert To Integer    ${TOPO_TREE_FANOUT}
+    ${resp}    RequestsLibrary.Get    session    ${REST_CONTEXT}/node/openflow:1
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Wait Until Keyword Succeeds    30s    2s    Check conn loop    ${TOPO_TREE_FANOUT}    1    ${resp.content}
+
+Get nodeconnector for a node
+    [Documentation]    Get the inventory for a node
+    ${TOPO_TREE_DEPTH}    Convert To Integer    ${TOPO_TREE_DEPTH}
+    ${TOPO_TREE_FANOUT}    Convert To Integer    ${TOPO_TREE_FANOUT}
+    ${numnodes}    Num Of Nodes    ${TOPO_TREE_DEPTH}    ${TOPO_TREE_FANOUT}
+    Wait Until Keyword Succeeds    30s    2s    Check Every Nodes Nodeconnector    ${numnodes}
+
+Get Stats for a node
+    [Documentation]    Get the stats for a node
+    ${TOPO_TREE_DEPTH}    Convert To Integer    ${TOPO_TREE_DEPTH}
+    ${TOPO_TREE_FANOUT}    Convert To Integer    ${TOPO_TREE_FANOUT}
+    ${numnodes}    Num Of Nodes    ${TOPO_TREE_DEPTH}    ${TOPO_TREE_FANOUT}
+    Wait Until Keyword Succeeds    120s    2s    Check Every Nodes Stats    ${numnodes}
+
+*** Keywords ***
+Check Every Nodes
+    [Arguments]    ${numnodes}
+    ${resp}    RequestsLibrary.Get    session    ${REST_CONTEXT}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    : FOR    ${IND}    IN RANGE    1    ${numnodes+1}
+    \    Should Contain    ${resp.content}    openflow:${IND}
+
+Check Every Nodes Stats
+    [Arguments]    ${numnodes}
+    : FOR    ${IND}    IN RANGE    1    ${numnodes+1}
+    \    ${resp}    RequestsLibrary.Get    session    ${REST_CONTEXT}/node/openflow:${IND}
+    \    Log    ${resp.content}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    flow-capable-node-connector-statistics
+    \    Should Contain    ${resp.content}    flow-table-statistics
+
+Check Every Nodes Nodeconnector
+    [Arguments]    ${numnodes}
+    : FOR    ${IND}    IN RANGE    2    ${numnodes+1}
+    \    ${resp}    RequestsLibrary.Get    session    ${REST_CONTEXT}/node/openflow:${IND}
+    \    Log    ${resp.content}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Check conn loop    ${TOPO_TREE_FANOUT+1}    ${IND}    ${resp.content}
+
+Check conn loop
+    [Arguments]    ${arg}    ${outerind}    ${content}
+    : FOR    ${var}    IN RANGE    1    ${arg+1}
+    \    Should Contain    ${content}    openflow:${outerind}:${var}