Netconf MDSAL Northbound test suite 72/27672/19
authorJozef Behran <jbehran@cisco.com>
Wed, 30 Sep 2015 16:05:04 +0000 (18:05 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 3 Nov 2015 10:15:43 +0000 (10:15 +0000)
This test suite performs operations on ODL Netconf Server
bound on MDSAL (aka "Netconf MDSAL Northbound").

Change-Id: I04cb163b2be938965d1d3115b2df09787f27112c
Signed-off-by: Jozef Behran <jbehran@cisco.com>
71 files changed:
.gitattributes
csit/libraries/Utils.robot
csit/suites/netconf/MDSAL/northbound.robot [new file with mode: 0644]
csit/testplans/netconf-MDSAL.txt [new file with mode: 0644]
csit/variables/netconf/MDSAL/additional-attr-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/close-session-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/close-session-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-delete-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-delete-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-discard-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-discard-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-edit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-edit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-no-transaction-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/commit-no-transaction-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-create-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-create-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-delete-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-delete-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-merge-1-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-merge-1-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-merge-2-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/config-modules-merge-2-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/delete-not-existing-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/delete-not-existing-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-candidate-discard-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-candidate-discard-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-candidate-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-delete-after-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-delete-after-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-edit-after-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-no-delete-before-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-no-edit-before-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-no-edit-before-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/get-config-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/hello.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-1-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-1-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-2-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-2-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-3-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-3-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-check-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-edit-check-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-edit-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-edit-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-edit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-edit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-remove-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-remove-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-remove-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-remove-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-replace-check-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-replace-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-replace-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-replace-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-replace-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-update-check-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-update-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-update-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-update-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/merge-multiple-update-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/missing-attr-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/missing-attr-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/remove-not-existing-commit-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/remove-not-existing-commit-request.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/remove-not-existing-reply.msg [new file with mode: 0644]
csit/variables/netconf/MDSAL/remove-not-existing-request.msg [new file with mode: 0644]

index f55064673da82c3e047cf5aad762ab851eec3dc0..183fe586f2291d0e7cf7a770b380f376accbecba 100644 (file)
@@ -43,6 +43,7 @@
 *.cfg text
 *.launch text
 *.target text
+*.msg text
 
 # In this section individual file names and other weird file patterns are
 # declared.
index 06fefb696d8809d21c0aaa62a3331b363e56a6b1..75cc623ebeaa0a88ae9af9509a1348a22ecae1e6 100644 (file)
@@ -221,6 +221,12 @@ Write_Bare_Ctrl_C
     ${ctrl_c}=    BuiltIn.Evaluate    chr(int(3))
     SSHLibrary.Write_Bare    ${ctrl_c}
 
+Write Bare Ctrl D
+    [Documentation]    Construct ctrl+d character and SSH-write it (without endline) to the current SSH connection.
+    ...    Do not read anything yet.
+    ${ctrl_d}=    BuiltIn.Evaluate    chr(int(4))
+    SSHLibrary.Write Bare    ${ctrl_d}
+
 Run Command On Mininet
     [Arguments]    ${system}=${MININET}    ${cmd}=echo    ${user}=${MININET_USER}    ${password}=${MININET_PASSWORD}    ${prompt}=${DEFAULT_LINUX_PROMPT}    ${prompt_timeout}=30s
     [Documentation]    Call Run Comand On Remote System, but with default values suitable for Mininet machine.
diff --git a/csit/suites/netconf/MDSAL/northbound.robot b/csit/suites/netconf/MDSAL/northbound.robot
new file mode 100644 (file)
index 0000000..23b8367
--- /dev/null
@@ -0,0 +1,315 @@
+*** Settings ***
+Documentation     Metconf MDSAL Northbound test suite.
+...
+...               Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+...
+...               This program and the accompanying materials are made available under the
+...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...               and is available at http://www.eclipse.org/legal/epl-v10.html
+Suite Setup       Setup_Everything
+Suite Teardown    Teardown_Everything
+Test Setup        SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
+Test Teardown     FailFast.Start_Failing_Fast_If_This_Failed
+Library           RequestsLibrary
+Library           SSHLibrary
+Resource          ${CURDIR}/../../../libraries/FailFast.robot
+Resource          ${CURDIR}/../../../libraries/SetupUtils.robot
+Resource          ${CURDIR}/../../../libraries/Utils.robot
+Variables         ${CURDIR}/../../../variables/Variables.py
+
+*** Variables ***
+${datadir}        ${CURDIR}/../../../variables/netconf/MDSAL
+${dataext}        msg
+
+*** Test Cases ***
+Connect_To_ODL_Netconf
+    [Documentation]    Connect to ODL Netconf and fail if that is not possible.
+    Open_ODL_Netconf_Connection
+    ${hello_message}=    Get_Data    hello
+    Transmit_Message    ${hello_message}
+
+Get_Config_Running
+    [Documentation]    Make sure the configuration has only the default elements in it.
+    Perform_Test    get-config
+
+Missing_Message_ID_Attribute
+    [Documentation]    Check that messages with missing "message-ID" attribute are rejected with the correct error (RFC 6241, section 4.1).
+    Perform_Test    missing-attr
+
+Additional_Attributes_In_Message
+    [Documentation]    Check that additional attributes in messages are returned properly (RFC 6241, sections 4.1 and 4.2).
+    ${reply}=    Load_And_Send_Message    additional-attr
+    BuiltIn.Should_Contain    ${reply}    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
+    BuiltIn.Should_Contain    ${reply}    message-id="1"
+    BuiltIn.Should_Contain    ${reply}    attribute="something"
+    BuiltIn.Should_Contain    ${reply}    additional="otherthing"
+    BuiltIn.Should_Contain    ${reply}    xmlns:prefix="http://www.example.com/my-schema-example.html"
+
+Edit_Config_Modules_Merge
+    [Documentation]    Request a "merge" operation adding an element in candidate configuration and check the reply.
+    Perform_Test    config-modules-merge-1
+
+Get_Config_Running_To_Confirm_No_Edit_Before_Commit
+    [Documentation]    Make sure the running configuration is still unchanged as the change was not commited yet.
+    Perform_Test    get-config-no-edit-before-commit
+
+Commit_Edit
+    [Documentation]    Commit the change and check the reply.
+    Perform_Test    commit-edit
+
+name0_In_Config_Running_To_Confirm_Edit_After_Commit
+    [Documentation]    Check that the change is now in the configuration.
+    ${reply}=    Load_And_Send_Message    get-config-edit-after-commit
+    BuiltIn.Should_Contain    ${reply}    <name>name0</name>
+
+name0_In_Config_Modules_Via_Restconf
+    [Documentation]    Check that the change is also visible through Restconf.
+    ${data}=    Utils.Get_Data_From_URI    config    config:modules    headers=${ACCEPT_XML}
+    BuiltIn.Should_Contain    ${data}    <name>name0</name>
+
+Edit_Config_Modules_Create_Shall_Fail_Now
+    [Documentation]    Request a "create" operation of an element that already exists and check that it fails with the correct error (RFC 6241, section 7.2, operation "create").
+    Perform_Test    config-modules-create
+
+Delete_Modules
+    [Documentation]    Delete the created element from the candidate configuration and check the reply.
+    Perform_Test    config-modules-delete
+
+Get_Config_Running_To_Confirm_No_Delete_Before_Commit
+    [Documentation]    Make sure the element is still present in the running configuration as the delete command was not committed yet.
+    ${reply}=    Load_And_Send_Message    get-config-no-delete-before-commit
+    BuiltIn.Should_Contain    ${reply}    <name>name0</name>
+
+Commit_Delete
+    [Documentation]    Commit the deletion of the element and check the reply.
+    Perform_Test    commit-delete
+
+Get_Config_Running_To_Confirm_Delete_After_Commit
+    [Documentation]    Check that the element is gone.
+    Perform_Test    get-config-delete-after-commit
+
+Restconf_Get_Modules_Shall_Return_404
+    [Documentation]    Check that "Not Found" is returned when Restconf is asked for the deleted element.
+    ${response}=    RequestsLibrary.Get    config    config:modules    ${ACCEPT_XML}
+    BuiltIn.Should_Be_Equal_As_Strings    ${response.status_code}    404
+
+Commit_No_Transaction
+    [Documentation]    Attempt to perform "commit" when there are no changes in the candidate configuration and check that it fails with the correct error.
+    Test_Commit_With_No_Transactions
+
+Edit_Config_Another_Modules_Merge
+    [Documentation]    Create the element in the candidate configuration again and check the reply.
+    Perform_Test    config-modules-merge-2
+
+Get_Config_Candidate
+    [Documentation]    Check that the element is present in the candidate configuration.
+    ${reply}=    Load_And_Send_Message    get-config-candidate
+    BuiltIn.Should_Contain    ${reply}    <name>name1</name>
+    BuiltIn.Should_Not_Contain    ${reply}    name0
+
+Discard_Changes
+    [Documentation]    Ask the server to discard the candidate and check the reply.
+    Perform_Test    commit-discard
+
+Get_Config_Candidate_To_Confirm_Discard
+    [Documentation]    Check that the element was really discarded.
+    Perform_Test    get-config-candidate-discard
+
+Edit_Config_Modules_Multiple_Modules_Merge_1
+    [Documentation]    Create the element with "name2" subelement again and check the reply.
+    Perform_Test    merge-multiple-1
+
+Edit_Config_Modules_Multiple_Modules_Merge_2
+    [Documentation]    Add a "name3" subelement to the element and check the reply.
+    Perform_Test    merge-multiple-2
+
+Edit_Config_Modules_Multiple_Modules_Merge_3
+    [Documentation]    Add a "name4" subelement to the element and check the reply.
+    Perform_Test    merge-multiple-3
+
+Commit_Multiple_Modules_Merge
+    [Documentation]    Commit the changes and check the reply.
+    Perform_Test    merge-multiple-commit
+
+name2_name3_name4_In_Running_Config
+    [Documentation]    Check that the 3 subelements are now present in the running configuration.
+    ${reply}=    Load_And_Send_Message    merge-multiple-check
+    BuiltIn.Should_Contain    ${reply}    <name>name2</name>
+    BuiltIn.Should_Contain    ${reply}    <name>name3</name>
+    BuiltIn.Should_Contain    ${reply}    <name>name4</name>
+
+name2_name3_name4_In_Config_Modules_Via_Restconf
+    [Documentation]    Check that the 3 subelements are visible via Restconf.
+    ${data}=    Utils.Get_Data_From_URI    config    config:modules    headers=${ACCEPT_XML}
+    BuiltIn.Should_Contain    ${data}    <name>name2</name>
+    BuiltIn.Should_Contain    ${data}    <name>name3</name>
+    BuiltIn.Should_Contain    ${data}    <name>name4</name>
+
+Edit_Multiple_Modules_Merge
+    [Documentation]    Add another subelement named "test" to the element and check the reply.
+    Perform_Test    merge-multiple-edit
+
+Commit_Multiple_Modules_Merge_Edit
+    [Documentation]    Commit the addition of the "test" subelement and check the reply.
+    Perform_Test    merge-multiple-edit-commit
+
+Check_Multiple_Modules_Merge_Edit
+    [Documentation]    Check that the "test" subelement exists and has correct value for "port" subelement.
+    ${reply}=    Load_And_Send_Message    merge-multiple-edit-check
+    BuiltIn.Should_Contain    ${reply}    <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">2022</port>
+
+Update_Multiple_Modules_Merge
+    [Documentation]    Update the value of the "port" subelement of the "test" subelement and check the reply.
+    Perform_Test    merge-multiple-update
+
+Commit_Multiple_Modules_Merge_Update
+    [Documentation]    Commit the update and check the reply.
+    Perform_Test    merge-multiple-update-commit
+
+Check_Multiple_Modules_Merge_Update
+    [Documentation]    Check that the value of the "port" was really updated.
+    ${reply}=    Load_And_Send_Message    merge-multiple-update-check
+    BuiltIn.Should_Contain    ${reply}    <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">3000</port>
+
+Replace_Multiple_Modules_Merge
+    [Documentation]    Replace the content of the "test" with another completely different and check the reply.
+    Perform_Test    merge-multiple-replace
+
+Commit_Multiple_Modules_Merge_Replace
+    [Documentation]    Commit the replace and check the reply.
+    Perform_Test    merge-multiple-replace-commit
+
+Check_Multiple_Modules_Merge_Replace
+    [Documentation]    Check that the new content is there and the old content is gone.
+    ${reply}=    Load_And_Send_Message    merge-multiple-replace-check
+    BuiltIn.Should_Contain    ${reply}    <name>test</name>
+    BuiltIn.Should_Contain    ${reply}    <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">10.194.132.42</address>
+    BuiltIn.Should_Contain    ${reply}    <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
+    BuiltIn.Should_Contain    ${reply}    <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">4000</port>
+    BuiltIn.Should_Contain    ${reply}    <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
+    BuiltIn.Should_Contain    ${reply}    <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
+    BuiltIn.Should_Not_Contain    ${reply}    <name>global-event-executor</name>
+    BuiltIn.Should_Not_Contain    ${reply}    <name>binding-osgi-broker</name>
+    BuiltIn.Should_Not_Contain    ${reply}    <name>dom-broker</name>
+    BuiltIn.Should_Not_Contain    ${reply}    <name>global-netconf-dispatcher</name>
+    BuiltIn.Should_Not_Contain    ${reply}    <name>global-netconf-processing-executor</name>
+
+Remove_Multiple_Modules
+    [Documentation]    Remove the testing "module" element and all its subelements and check the reply.
+    Perform_Test    merge-multiple-remove
+
+Commit_Multiple_Modules_Removal
+    [Documentation]    Commit the removal and check the reply.
+    Perform_Test    merge-multiple-remove-commit
+
+Delete_Not_Existing_Module
+    [Documentation]    Attempt to delete the "module" element again and check that it fails with the correct error.
+    Perform_Test    delete-not-existing
+
+Commit_Delete_Not_Existing_Module
+    [Documentation]    Attempt to commit and check the reply.
+    Test_Commit_With_No_Transactions
+    [Teardown]    Utils.Report_Failure_Due_To_Bug    4455
+
+Remove_Not_Existing_Module
+    [Documentation]    Attempt to remove the "module" element again and check that the operation is "silently ignored".
+    Perform_Test    remove-not-existing
+
+Commit_Remove_Not_Existing_Module
+    [Documentation]    Attempt to commit and check the reply.
+    Perform_Test    remove-not-existing-commit
+
+Close_Session
+    [Documentation]    Close the session and check that it was closed properly.
+    Perform_Test    close-session
+
+*** Keywords ***
+Get_Data
+    [Arguments]    ${name}
+    [Documentation]    Load the specified data from the data directory and return it.
+    ${data}=    OperatingSystem.Get_File    ${datadir}${/}${name}.${dataext}
+    [Return]    ${data}
+
+Open_ODL_Netconf_Connection
+    [Arguments]    ${host}=${CONTROLLER}    ${port}=${ODL_NETCONF_PORT}    ${user}=${ODL_NETCONF_USER}    ${password}=${ODL_NETCONF_PASSWORD}
+    [Documentation]    Open a netconf connecion to the given machine.
+    # The "-s netconf" flag (see the "SSHLibrary.Write" line below)    is not
+    # supported by SSHLibrary, therefore we need to use this elaborate and
+    # pretty tricky way to connect to the ODL Netconf port.
+    # TODO: Extract into NetconfKeywords as there are other tests that are
+    #    going to need to use this operation (Netconf Performance and Scaling
+    #    comes to my mind now as one of the things tested is the performance
+    #    of the direct netconf connection.
+    SSHLibrary.Open_Connection    ${host}    prompt=${ODL_SYSTEM_PROMPT}    timeout=10s
+    Utils.Flexible_Controller_Login
+    SSHLibrary.Write    sshpass -p ${password} ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ${user}\@127.0.0.1 -p ${port} -s netconf
+    ${hello}=    SSHLibrary.Read_Until    ${ODL_NETCONF_PROMPT}
+    [Return]    ${hello}
+
+Transmit_Message
+    [Arguments]    ${message}
+    [Documentation]    Transmit message to Netconf connection and discard the echo of the message.
+    SSHLibrary.Write    ${message}
+    SSHLibrary.Write    ${ODL_NETCONF_PROMPT}
+    SSHLibrary.Read_Until    ${ODL_NETCONF_PROMPT}
+
+Send_Message
+    [Arguments]    ${message}
+    [Documentation]    Send message to Netconf connection and get the reply.
+    Transmit_Message    ${message}
+    ${reply}=    SSHLibrary.Read_Until    ${ODL_NETCONF_PROMPT}
+    [Return]    ${reply}
+
+Prepare_For_Search
+    [Arguments]    ${searched_string}
+    [Documentation]    Prepare the specified string for searching in Netconf connection replies.
+    ...    The string passed to this keyword is coming from a data
+    ...    file which has different end of line conventions than
+    ...    the actual Netconf reply. This keyword patches the string
+    ...    to match what Netconf actually returns.
+    ${result}=    BuiltIn.Evaluate    "\\r\\n".join("""${searched_string}""".split("\\n"))
+    [Return]    ${result}
+
+Load_And_Send_Message
+    [Arguments]    ${name}
+    [Documentation]    Load a message from the data file set, send it to Netconf and return the reply.
+    ${request}=    Get_Data    ${name}-request
+    ${reply}=    Send_Message    ${request}
+    [Return]    ${reply}
+
+Load_Expected_Reply
+    [Arguments]    ${name}
+    [Documentation]    Load the expected reply from the data file set and return it.
+    ${expected_reply}=    Get_Data    ${name}-reply
+    ${expected}=    Prepare_For_Search    ${expected_reply}
+    [Return]    ${expected}
+
+Close_ODL_Netconf_Connection
+    [Documentation]    Correctly close the Netconf connection and make sure it is really dead.
+    Utils.Write_Bare_Ctrl_D
+    SSHLibrary.Read_Until_Prompt
+
+Setup_Everything
+    [Documentation]    Setup resources and create session for Restconf checking.
+    SetupUtils.Setup_Utils_For_Setup_And_Teardown
+    RequestsLibrary.Create_Session    config    http://${CONTROLLER}:${RESTCONFPORT}${CONFIG_API}    auth=${AUTH}
+
+Teardown_Everything
+    [Documentation]    Close the Netconf connection and destroy all sessions in the requests library.
+    Close_ODL_Netconf_Connection
+    RequestsLibrary.Delete_All_Sessions
+
+Perform_Test
+    [Arguments]    ${name}
+    [Documentation]    Load and send the request from the dataset and compare the returned reply to the one stored in the dataset.
+    ${actual}=    Load_And_Send_Message    ${name}
+    ${expected}=    Load_Expected_Reply    ${name}
+    ${newline}=    BuiltIn.Evaluate    "\\r\\n"
+    BuiltIn.Should_Be_Equal    ${actual}    ${newline}${expected}${ODL_NETCONF_PROMPT}
+    [Return]    ${actual}
+
+Test_Commit_With_No_Transactions
+    [Documentation]    Issue a "commit" RPC request and check that it fails with "No current transactions" error.
+    ${reply}=    Load_And_Send_Message    commit-no-transaction
+    ${expected}=    Load_Expected_Reply    commit-no-transaction
+    BuiltIn.Should_Contain    ${reply}    ${expected}
diff --git a/csit/testplans/netconf-MDSAL.txt b/csit/testplans/netconf-MDSAL.txt
new file mode 100644 (file)
index 0000000..970bdd6
--- /dev/null
@@ -0,0 +1,9 @@
+# Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this distribution,
+# and is available at http://www.eclipse.org/legal/epl-v10.html
+
+# Place the suites in run order:
+integration/test/csit/suites/netconf/ready
+integration/test/csit/suites/netconf/MDSAL
diff --git a/csit/variables/netconf/MDSAL/additional-attr-request.msg b/csit/variables/netconf/MDSAL/additional-attr-request.msg
new file mode 100644 (file)
index 0000000..5bcf99e
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1" attribute="something" additional="otherthing" xmlns:prefix="http://www.example.com/my-schema-example.html">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/close-session-reply.msg b/csit/variables/netconf/MDSAL/close-session-reply.msg
new file mode 100644 (file)
index 0000000..5f0fc76
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="999">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/close-session-request.msg b/csit/variables/netconf/MDSAL/close-session-request.msg
new file mode 100644 (file)
index 0000000..74e03eb
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc message-id="999" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+    <close-session/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/commit-delete-reply.msg b/csit/variables/netconf/MDSAL/commit-delete-reply.msg
new file mode 100644 (file)
index 0000000..7c92710
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="8">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/commit-delete-request.msg b/csit/variables/netconf/MDSAL/commit-delete-request.msg
new file mode 100644 (file)
index 0000000..bc74659
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="8">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/commit-discard-reply.msg b/csit/variables/netconf/MDSAL/commit-discard-reply.msg
new file mode 100644 (file)
index 0000000..1df027f
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="22">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/commit-discard-request.msg b/csit/variables/netconf/MDSAL/commit-discard-request.msg
new file mode 100644 (file)
index 0000000..a155baf
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="22">
+    <discard-changes/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/commit-edit-reply.msg b/csit/variables/netconf/MDSAL/commit-edit-reply.msg
new file mode 100644 (file)
index 0000000..5752c8c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="4">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/commit-edit-request.msg b/csit/variables/netconf/MDSAL/commit-edit-request.msg
new file mode 100644 (file)
index 0000000..ce184a0
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="4">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/commit-no-transaction-reply.msg b/csit/variables/netconf/MDSAL/commit-no-transaction-reply.msg
new file mode 100644 (file)
index 0000000..ee6a9ac
--- /dev/null
@@ -0,0 +1,6 @@
+<rpc-reply message-id="10" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<rpc-error>
+<error-type>application</error-type>
+<error-tag>operation-failed</error-tag>
+<error-severity>error</error-severity>
+<error-message>No candidateTransaction found for session
\ No newline at end of file
diff --git a/csit/variables/netconf/MDSAL/commit-no-transaction-request.msg b/csit/variables/netconf/MDSAL/commit-no-transaction-request.msg
new file mode 100644 (file)
index 0000000..ba11ba7
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="10">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/config-modules-create-reply.msg b/csit/variables/netconf/MDSAL/config-modules-create-reply.msg
new file mode 100644 (file)
index 0000000..ffea769
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply message-id="15" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<rpc-error>
+<error-type>protocol</error-type>
+<error-tag>data-exists</error-tag>
+<error-severity>error</error-severity>
+<error-message>Data already exists, cannot execute CREATE operation</error-message>
+</rpc-error>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/config-modules-create-request.msg b/csit/variables/netconf/MDSAL/config-modules-create-request.msg
new file mode 100644 (file)
index 0000000..07e57cf
--- /dev/null
@@ -0,0 +1,17 @@
+<rpc message-id="15" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>create</default-operation>
+<config>
+<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+<module>
+<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">prefix:threadfactory-naming</type>
+<name>name0</name>
+<name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">remote-connector-processing-executor</name-prefix>
+</module>
+</modules>
+</config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/config-modules-delete-reply.msg b/csit/variables/netconf/MDSAL/config-modules-delete-reply.msg
new file mode 100644 (file)
index 0000000..986da44
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="6">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/config-modules-delete-request.msg b/csit/variables/netconf/MDSAL/config-modules-delete-request.msg
new file mode 100644 (file)
index 0000000..fd45b84
--- /dev/null
@@ -0,0 +1,14 @@
+<rpc message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>none</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config" xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="delete"/>
+    </config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/config-modules-merge-1-reply.msg b/csit/variables/netconf/MDSAL/config-modules-merge-1-reply.msg
new file mode 100644 (file)
index 0000000..d5ac17f
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" a="64" message-id="2">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/config-modules-merge-1-request.msg b/csit/variables/netconf/MDSAL/config-modules-merge-1-request.msg
new file mode 100644 (file)
index 0000000..36c764b
--- /dev/null
@@ -0,0 +1,17 @@
+<rpc message-id="2" a="64" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>merge</default-operation>
+<config>
+<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+<module>
+<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">prefix:threadfactory-naming</type>
+<name>name0</name>
+<name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">remote-connector-processing-executor</name-prefix>
+</module>
+</modules>
+</config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/config-modules-merge-2-reply.msg b/csit/variables/netconf/MDSAL/config-modules-merge-2-reply.msg
new file mode 100644 (file)
index 0000000..ae1379b
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="20">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/config-modules-merge-2-request.msg b/csit/variables/netconf/MDSAL/config-modules-merge-2-request.msg
new file mode 100644 (file)
index 0000000..82e937e
--- /dev/null
@@ -0,0 +1,17 @@
+<rpc message-id="20" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>merge</default-operation>
+<config>
+<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+<module>
+<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">prefix:threadfactory-naming</type>
+<name>name1</name>
+<name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">remote-connector-processing-executor</name-prefix>
+</module>
+</modules>
+</config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/delete-not-existing-reply.msg b/csit/variables/netconf/MDSAL/delete-not-existing-reply.msg
new file mode 100644 (file)
index 0000000..ee52828
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<rpc-error>
+<error-type>protocol</error-type>
+<error-tag>data-missing</error-tag>
+<error-severity>error</error-severity>
+<error-message>Data is missing, cannot execute DELETE operation</error-message>
+</rpc-error>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/delete-not-existing-request.msg b/csit/variables/netconf/MDSAL/delete-not-existing-request.msg
new file mode 100644 (file)
index 0000000..dbf4982
--- /dev/null
@@ -0,0 +1,15 @@
+<rpc message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>none</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config" xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="delete">
+        </modules>
+    </config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-candidate-discard-reply.msg b/csit/variables/netconf/MDSAL/get-config-candidate-discard-reply.msg
new file mode 100644 (file)
index 0000000..dc79b7c
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="23">
+<data>
+<network-topology xmlns="urn:TBD:params:xml:ns:yang:network-topology">
+<topology>
+<topology-id>topology-netconf</topology-id>
+<node>
+<node-id>controller-config</node-id>
+</node>
+</topology>
+</network-topology>
+<nodes xmlns="urn:opendaylight:inventory">
+<node>
+<id>controller-config</id>
+</node>
+</nodes>
+</data>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/get-config-candidate-discard-request.msg b/csit/variables/netconf/MDSAL/get-config-candidate-discard-request.msg
new file mode 100644 (file)
index 0000000..49c377f
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="23">
+    <get-config>
+        <source>
+            <candidate/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-candidate-request.msg b/csit/variables/netconf/MDSAL/get-config-candidate-request.msg
new file mode 100644 (file)
index 0000000..f09af61
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="21">
+    <get-config>
+        <source>
+            <candidate/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-delete-after-commit-reply.msg b/csit/variables/netconf/MDSAL/get-config-delete-after-commit-reply.msg
new file mode 100644 (file)
index 0000000..78513c3
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="9">
+<data>
+<network-topology xmlns="urn:TBD:params:xml:ns:yang:network-topology">
+<topology>
+<topology-id>topology-netconf</topology-id>
+<node>
+<node-id>controller-config</node-id>
+</node>
+</topology>
+</network-topology>
+<nodes xmlns="urn:opendaylight:inventory">
+<node>
+<id>controller-config</id>
+</node>
+</nodes>
+</data>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/get-config-delete-after-commit-request.msg b/csit/variables/netconf/MDSAL/get-config-delete-after-commit-request.msg
new file mode 100644 (file)
index 0000000..ec6f28c
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="9">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-edit-after-commit-request.msg b/csit/variables/netconf/MDSAL/get-config-edit-after-commit-request.msg
new file mode 100644 (file)
index 0000000..52649a7
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-no-delete-before-commit-request.msg b/csit/variables/netconf/MDSAL/get-config-no-delete-before-commit-request.msg
new file mode 100644 (file)
index 0000000..47f278c
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="7">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-no-edit-before-commit-reply.msg b/csit/variables/netconf/MDSAL/get-config-no-edit-before-commit-reply.msg
new file mode 100644 (file)
index 0000000..b7810ac
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">
+<data>
+<network-topology xmlns="urn:TBD:params:xml:ns:yang:network-topology">
+<topology>
+<topology-id>topology-netconf</topology-id>
+<node>
+<node-id>controller-config</node-id>
+</node>
+</topology>
+</network-topology>
+<nodes xmlns="urn:opendaylight:inventory">
+<node>
+<id>controller-config</id>
+</node>
+</nodes>
+</data>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/get-config-no-edit-before-commit-request.msg b/csit/variables/netconf/MDSAL/get-config-no-edit-before-commit-request.msg
new file mode 100644 (file)
index 0000000..7cfdec2
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/get-config-reply.msg b/csit/variables/netconf/MDSAL/get-config-reply.msg
new file mode 100644 (file)
index 0000000..afe154c
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
+<data>
+<network-topology xmlns="urn:TBD:params:xml:ns:yang:network-topology">
+<topology>
+<topology-id>topology-netconf</topology-id>
+<node>
+<node-id>controller-config</node-id>
+</node>
+</topology>
+</network-topology>
+<nodes xmlns="urn:opendaylight:inventory">
+<node>
+<id>controller-config</id>
+</node>
+</nodes>
+</data>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/get-config-request.msg b/csit/variables/netconf/MDSAL/get-config-request.msg
new file mode 100644 (file)
index 0000000..7f44358
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/hello.msg b/csit/variables/netconf/MDSAL/hello.msg
new file mode 100644 (file)
index 0000000..1085ef2
--- /dev/null
@@ -0,0 +1,5 @@
+<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<capabilities>
+<capability>urn:ietf:params:netconf:base:1.0</capability>
+</capabilities>
+</hello>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-1-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-1-reply.msg
new file mode 100644 (file)
index 0000000..ed0afaa
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="50">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-1-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-1-request.msg
new file mode 100644 (file)
index 0000000..f7be519
--- /dev/null
@@ -0,0 +1,17 @@
+<rpc message-id="50" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>merge</default-operation>
+<config>
+<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+<module>
+<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">prefix:threadfactory-naming</type>
+<name>name2</name>
+<name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">remote-connector-processing-executor</name-prefix>
+</module>
+</modules>
+</config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-2-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-2-reply.msg
new file mode 100644 (file)
index 0000000..baedeee
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="51">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-2-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-2-request.msg
new file mode 100644 (file)
index 0000000..f3736f4
--- /dev/null
@@ -0,0 +1,17 @@
+<rpc message-id="51" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>merge</default-operation>
+<config>
+<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+<module>
+<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">prefix:threadfactory-naming</type>
+<name>name3</name>
+<name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">remote-connector-processing-executor</name-prefix>
+</module>
+</modules>
+</config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-3-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-3-reply.msg
new file mode 100644 (file)
index 0000000..37be692
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="52">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-3-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-3-request.msg
new file mode 100644 (file)
index 0000000..9abcd0f
--- /dev/null
@@ -0,0 +1,17 @@
+<rpc message-id="52" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+<target>
+<candidate/>
+</target>
+<default-operation>merge</default-operation>
+<config>
+<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+<module>
+<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">prefix:threadfactory-naming</type>
+<name>name4</name>
+<name-prefix xmlns="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">remote-connector-processing-executor</name-prefix>
+</module>
+</modules>
+</config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-check-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-check-request.msg
new file mode 100644 (file)
index 0000000..7c98340
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="54">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-commit-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-commit-reply.msg
new file mode 100644 (file)
index 0000000..5ee2984
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="53">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-commit-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-commit-request.msg
new file mode 100644 (file)
index 0000000..be8b532
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="53">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-edit-check-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-edit-check-request.msg
new file mode 100644 (file)
index 0000000..382ba61
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="41">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-edit-commit-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-edit-commit-reply.msg
new file mode 100644 (file)
index 0000000..005bcb3
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="40">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-edit-commit-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-edit-commit-request.msg
new file mode 100644 (file)
index 0000000..6a0cc4a
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="40">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-edit-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-edit-reply.msg
new file mode 100644 (file)
index 0000000..852c7d6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="abc">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-edit-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-edit-request.msg
new file mode 100644 (file)
index 0000000..b876ede
--- /dev/null
@@ -0,0 +1,44 @@
+<rpc message-id="abc" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>merge</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+            <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+              <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
+              <name>test</name>
+              <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">10.194.132.42</address>
+              <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">2022</port>
+              <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
+              <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
+              <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
+              <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
+                <name>global-event-executor</name>
+              </event-executor>
+              <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>
+                <name>binding-osgi-broker</name>
+              </binding-registry>
+              <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+                <name>dom-broker</name>
+              </dom-registry>
+              <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>
+                <name>global-netconf-dispatcher</name>
+              </client-dispatcher>
+              <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
+                <name>global-netconf-processing-executor</name>
+              </processing-executor>
+            </module>
+        </modules>
+    </config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-remove-commit-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-remove-commit-reply.msg
new file mode 100644 (file)
index 0000000..7c92710
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="8">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-remove-commit-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-remove-commit-request.msg
new file mode 100644 (file)
index 0000000..bc74659
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="8">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-remove-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-remove-reply.msg
new file mode 100644 (file)
index 0000000..986da44
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="6">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-remove-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-remove-request.msg
new file mode 100644 (file)
index 0000000..5d50b4e
--- /dev/null
@@ -0,0 +1,15 @@
+<rpc message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>none</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config" xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="remove">
+        </modules>
+    </config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-replace-check-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-replace-check-request.msg
new file mode 100644 (file)
index 0000000..994cbd5
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="72">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-replace-commit-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-replace-commit-reply.msg
new file mode 100644 (file)
index 0000000..fc67d26
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="71">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-replace-commit-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-replace-commit-request.msg
new file mode 100644 (file)
index 0000000..c7a15d9
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="71">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-replace-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-replace-reply.msg
new file mode 100644 (file)
index 0000000..d2f1e61
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="70">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-replace-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-replace-request.msg
new file mode 100644 (file)
index 0000000..05aa685
--- /dev/null
@@ -0,0 +1,24 @@
+<rpc message-id="70" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>replace</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+            <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
+                          <name>test</name>
+                          <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">10.194.132.42</address>
+                          <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">4000</port>
+                          <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
+                          <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
+                          <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
+                        </module>
+        </modules>
+    </config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-update-check-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-update-check-request.msg
new file mode 100644 (file)
index 0000000..49fc59e
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="44">
+    <get-config>
+        <source>
+            <running/>
+        </source>
+    </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-update-commit-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-update-commit-reply.msg
new file mode 100644 (file)
index 0000000..84f8d27
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="43">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-update-commit-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-update-commit-request.msg
new file mode 100644 (file)
index 0000000..f1ba933
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="43">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-update-reply.msg b/csit/variables/netconf/MDSAL/merge-multiple-update-reply.msg
new file mode 100644 (file)
index 0000000..1876ab4
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="42">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/merge-multiple-update-request.msg b/csit/variables/netconf/MDSAL/merge-multiple-update-request.msg
new file mode 100644 (file)
index 0000000..1cd4b25
--- /dev/null
@@ -0,0 +1,44 @@
+<rpc message-id="42" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>merge</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+            <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
+                          <name>test</name>
+                          <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">10.194.132.42</address>
+                          <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">3000</port>
+                          <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
+                          <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
+                          <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
+                          <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
+                            <name>global-event-executor</name>
+                          </event-executor>
+                          <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>
+                            <name>binding-osgi-broker</name>
+                          </binding-registry>
+                          <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+                            <name>dom-broker</name>
+                          </dom-registry>
+                          <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>
+                            <name>global-netconf-dispatcher</name>
+                          </client-dispatcher>
+                          <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
+                            <name>global-netconf-processing-executor</name>
+                          </processing-executor>
+                        </module>
+        </modules>
+    </config>
+</edit-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/missing-attr-reply.msg b/csit/variables/netconf/MDSAL/missing-attr-reply.msg
new file mode 100644 (file)
index 0000000..a9a4915
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<rpc-error>
+<error-type>protocol</error-type>
+<error-tag>missing-attribute</error-tag>
+<error-severity>error</error-severity>
+<error-message>Missing attributerpc</error-message>
+<error-info>
+<missing_attribute>message-id</missing_attribute>
+</error-info>
+</rpc-error>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/missing-attr-request.msg b/csit/variables/netconf/MDSAL/missing-attr-request.msg
new file mode 100644 (file)
index 0000000..16503d8
--- /dev/null
@@ -0,0 +1,7 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+  <get-config>
+    <source>
+      <running/>
+    </source>
+  </get-config>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/remove-not-existing-commit-reply.msg b/csit/variables/netconf/MDSAL/remove-not-existing-commit-reply.msg
new file mode 100644 (file)
index 0000000..db65496
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="88">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/remove-not-existing-commit-request.msg b/csit/variables/netconf/MDSAL/remove-not-existing-commit-request.msg
new file mode 100644 (file)
index 0000000..072d967
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="88">
+<commit/>
+</rpc>
diff --git a/csit/variables/netconf/MDSAL/remove-not-existing-reply.msg b/csit/variables/netconf/MDSAL/remove-not-existing-reply.msg
new file mode 100644 (file)
index 0000000..986da44
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="6">
+<ok/>
+</rpc-reply>
diff --git a/csit/variables/netconf/MDSAL/remove-not-existing-request.msg b/csit/variables/netconf/MDSAL/remove-not-existing-request.msg
new file mode 100644 (file)
index 0000000..5d50b4e
--- /dev/null
@@ -0,0 +1,15 @@
+<rpc message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+<edit-config>
+    <target>
+        <candidate/>
+    </target>
+    <test-option>
+        set
+    </test-option>
+    <default-operation>none</default-operation>
+    <config>
+        <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config" xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0" a:operation="remove">
+        </modules>
+    </config>
+</edit-config>
+</rpc>