Changing extension from .txt to .robot
[integration/test.git] / test / csit / suites / controller / NETCONF / 010__netconf_inventory.robot
diff --git a/test/csit/suites/controller/NETCONF/010__netconf_inventory.robot b/test/csit/suites/controller/NETCONF/010__netconf_inventory.robot
new file mode 100644 (file)
index 0000000..daf3ef5
--- /dev/null
@@ -0,0 +1,62 @@
+*** Settings ***
+Documentation     Test suite for NETCONF
+Suite Setup       Create Session    session    http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           Collections
+Library           OperatingSystem
+Library           String
+Library           ../../../libraries/RequestsLibrary.py
+Library           ../../../libraries/Common.py
+Variables         ../../../variables/Variables.py
+
+*** Variables ***
+${FILE}                 ${CURDIR}/../../../variables/xmls/netconf.xml
+${REST_CONT_CONF}       /restconf/config/network-topology:network-topology/topology/topology-netconf
+${REST_CONT_OPER}       /restconf/operational/network-topology:network-topology/topology/topology-netconf
+${REST_NTPR_CONF}       node/controller-config/yang-ext:mount/config:modules
+${REST_NTPR_MOUNT}      node/netopeer/yang-ext:mount/
+
+*** Test Cases ***
+Add NetConf device
+    [Documentation]    Add NetConf device using REST
+    [Tags]     netconf
+    ${XML1}    Get File    ${FILE}
+    ${XML2}    Replace String    ${XML1}    127.0.0.1    ${MININET}
+    ${body}    Replace String    ${XML2}    mininet      ${MININET_USER}
+    Log    ${body}
+    ${resp}    Post    session    ${REST_CONT_CONF}/${REST_NTPR_CONF}    data=${body}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    204
+
+Get Controller Inventory
+    [Documentation]    Get Controller operational inventory
+    [Tags]    netconf
+    Wait Until Keyword Succeeds    10s    2s    Get Inventory
+
+Pull External Device configuration
+    [Documentation]    Pull Netopeer configuration
+    [Tags]    netconf
+    ${resp}   Get    session    ${REST_CONT_CONF}/${REST_NTPR_MOUNT}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    {}
+
+Verify Device Operational data
+    [Documentation]    Verify Netopeer operational data
+    [Tags]    netconf
+    ${resp}   Get    session    ${REST_CONT_OPER}/${REST_NTPR_MOUNT}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    schema
+    Should Contain    ${resp.content}    statistics
+    Should Contain    ${resp.content}    datastores
+
+*** Keywords ***
+Get Inventory
+    ${resp}   Get    session    ${REST_CONT_OPER}/node/netopeer
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "node-id":"netopeer"
+    Should Contain    ${resp.content}    "netconf-node-topology:connection-status":"connected"
+    Should Contain    ${resp.content}    "netconf-node-topology:available-capabilities"
+