From 5d9b6bcf238bd6249eb8e874c71e73f7ee526676 Mon Sep 17 00:00:00 2001 From: sdevaraj Date: Fri, 2 Dec 2016 00:40:34 -0800 Subject: [PATCH] Import Cases and refactoring - Fixed tidy script issues - Added requestslibrary, made jsons pretty under variables/daexim/daexim folder,replaced tabs with spaces. - Added a controller restart for the import test cases - Increased the loop of querying netconf device - Added a looping mechanism to check netconf mount status - Added new test case for import - Added a case for export with a netconf mount. Netconf endpoint is the controller itself mounted - Replace backup with export and restore with Import as these terms are more relevant to the project - Added new test suites into the testplan Change-Id: I28b6c56f9ed88eac8a76837379f4e8d636eeff23 Signed-off-by: sdevaraj --- csit/libraries/DaeximKeywords.robot | 162 +++++--- csit/suites/daexim/010-special-export.robot | 68 ++-- csit/suites/daexim/020-import-basic.robot | 16 + csit/suites/daexim/030-export-basic.robot | 16 + csit/testplans/daexim-basic.txt | 2 + csit/variables/daexim/DaeximVariables.robot | 32 +- .../daexim/daexim/odl_backup_config.json | 16 + .../daexim/daexim/odl_backup_models.json | 357 ++++++++++++++++++ .../daexim/daexim/odl_backup_operational.json | 299 +++++++++++++++ csit/variables/daexim/import.json | 6 + csit/variables/daexim/netconf_mount.json | 11 + ...edule_backup.json => schedule_export.json} | 0 ...lude.json => schedule_export_exclude.json} | 0 13 files changed, 896 insertions(+), 89 deletions(-) create mode 100644 csit/suites/daexim/020-import-basic.robot create mode 100644 csit/suites/daexim/030-export-basic.robot create mode 100644 csit/variables/daexim/daexim/odl_backup_config.json create mode 100644 csit/variables/daexim/daexim/odl_backup_models.json create mode 100644 csit/variables/daexim/daexim/odl_backup_operational.json create mode 100644 csit/variables/daexim/import.json create mode 100644 csit/variables/daexim/netconf_mount.json rename csit/variables/daexim/{schedule_backup.json => schedule_export.json} (100%) rename csit/variables/daexim/{schedule_backup_exclude.json => schedule_export_exclude.json} (100%) diff --git a/csit/libraries/DaeximKeywords.robot b/csit/libraries/DaeximKeywords.robot index 2df02cf1ca..b31a2efae9 100644 --- a/csit/libraries/DaeximKeywords.robot +++ b/csit/libraries/DaeximKeywords.robot @@ -1,100 +1,105 @@ *** Settings *** Library OperatingSystem Library SSHLibrary +Library Collections +Library RequestsLibrary Resource ClusterManagement.robot -Resource ../variables/Variables.robot Resource ../variables/daexim/DaeximVariables.robot -Variables ../variables/Variables.py Resource ../variables/Variables.robot Resource Utils.robot *** Keywords *** -Verify Backup Files +Verify Export Files [Arguments] ${host_index} [Documentation] Verify if the backedup files are present in the controller ${host_index} Builtin.Convert To Integer ${host_index} - ${cfg} ${rc} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER}/daexim/${BKP_DATA_FILE} ${host_index} - Builtin.Run Keyword If "${rc}" != "0" Builtin.Fail Return code is not equal to zero on this command - ... ELSE Builtin.Log ${cfg} - ${mdl} ${rc} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER}/daexim/${MODELS_FILE} ${host_index} - Builtin.Run Keyword If "${rc}" != "0" Builtin.Fail Return code is not equal to zero on this command - ... ELSE Builtin.Log ${mdl} - ${opr} ${rc} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER}/daexim/${BKP_OPER_FILE} ${host_index} - Builtin.Run Keyword If "${rc}" != "0" Builtin.Fail Return code is not equal to zero on this command - ... ELSE Builtin.Log ${opr} - -Cleanup The Backup Files + ${cfg} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER}/daexim/${EXP_DATA_FILE} ${host_index} + Builtin.Log ${cfg} + Builtin.Should Match Regexp ${cfg} .*${EXP_DATA_FILE} + ${mdl} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER}/daexim/${MODELS_FILE} ${host_index} + Builtin.Log ${mdl} + Builtin.Should Match Regexp ${mdl} .*${MODELS_FILE} + ${opr} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER}/daexim/${EXP_OPER_FILE} ${host_index} + Builtin.Log ${opr} + Builtin.Should Match Regexp ${opr} .*${EXP_OPER_FILE} + +Cleanup The Export Files [Arguments] ${host_index} - [Documentation] Verify if the backup directory exists and delete the files if needed + [Documentation] Verify if the export directory exists and delete the files if needed ${host_index} Builtin.Convert To Integer ${host_index} - ${output} ${rc} ClusterManagement.Run Bash Command On Member sudo rm -rf ${WORKSPACE}/${BUNDLEFOLDER}/daexim ${host_index} - Builtin.Run Keyword If "${rc}" != "0" Fail Return code is not equal to zero on this command - ... ELSE Builtin.Log ${output} + Builtin.Run Keyword And Ignore Error ClusterManagement.Delete_And_Check_Member_List_Or_All ${TOPOLOGY_URL} ${host_index} + ${output1} ClusterManagement.Run Bash Command On Member sudo rm -rf ${WORKSPACE}/${BUNDLEFOLDER}/daexim;clear ${host_index} + ${output} ClusterManagement.Run Bash Command On Member ls -lart ${WORKSPACE}/${BUNDLEFOLDER} ${host_index} + Builtin.Log ${output} + Builtin.Should Not Match Regexp ${output} daexim -Verify Backup Status +Verify Export Status [Arguments] ${status} ${controller_index} - [Documentation] Verify backup status is as expected - ${response_json} ClusterManagement.Post As Json To Member ${STATUS_BACKUP_URL} ${EMPTY} ${controller_index} + [Documentation] Verify export status is as expected + ${response_json} ClusterManagement.Post_As_Json_To_Member ${STATUS_EXPORT_URL} ${EMPTY} ${controller_index} Builtin.Log ${response_json} ${response_json} Builtin.Convert To String ${response_json} - Verify Backup Status Message ${status} ${response_json} + Verify Export Status Message ${status} ${response_json} -Verify Scheduled Backup Timestamp +Verify Scheduled Export Timestamp [Arguments] ${controller_index} ${time} - [Documentation] Verify backup timestamp is as expected - ${response_json} ClusterManagement.Post As Json To Member ${STATUS_BACKUP_URL} ${EMPTY} ${controller_index} + [Documentation] Verify export timestamp is as expected + ${response_json} ClusterManagement.Post_As_Json_To_Member ${STATUS_EXPORT_URL} ${EMPTY} ${controller_index} Builtin.Log ${response_json} ${response_json} Builtin.Convert To String ${response_json} Builtin.Should Match Regexp ${response_json} .*"run-at": "${time}" -Verify Backup Status Message +Verify Export Status Message [Arguments] ${status} ${output} - [Documentation] Verify backup restconf response message is as expected + [Documentation] Verify export restconf response message is as expected Builtin.Should Match Regexp ${output} "status": "${status}" Builtin.Run Keyword If "${status}" == "initial" or "${status}" == "scheduled" Verify Json Files Not Present ${output} ... ELSE Verify Json Files Present ${output} Verify Json Files Present - [Arguments] ${output} ${config_json}=${BKP_DATA_FILE} ${models_json}=${MODELS_FILE} ${operational_json}=${BKP_OPER_FILE} - [Documentation] Verify if the json files are generated after a backup/export + [Arguments] ${output} ${config_json}=${EXP_DATA_FILE} ${models_json}=${MODELS_FILE} ${operational_json}=${EXP_OPER_FILE} + [Documentation] Verify if the json files are generated after a export/export Builtin.Should Match Regexp ${output} .*${config_json} Builtin.Should Match Regexp ${output} .*${models_json} Builtin.Should Match Regexp ${output} .*${operational_json} Builtin.Log Found all Json Files Verify Json Files Not Present - [Arguments] ${output} ${config_json}=${BKP_DATA_FILE} ${models_json}=${MODELS_FILE} ${operational_json}=${BKP_OPER_FILE} + [Arguments] ${output} ${config_json}=${EXP_DATA_FILE} ${models_json}=${MODELS_FILE} ${operational_json}=${EXP_OPER_FILE} [Documentation] Verify if the json files are not present under the daexim folder Builtin.Should Not Match Regexp ${output} .*${config_json} Builtin.Should Not Match Regexp ${output} .*${models_json} Builtin.Should Not Match Regexp ${output} .*${operational_json} Builtin.Log Did not Find all Json Files -Schedule Backup +Schedule Export [Arguments] ${controller_index} ${TIME}=500 ${exclude}=${FALSE} ${MODULE}=${EMPTY} ${STORE}=${EMPTY} - ${file} Builtin.Set Variable If ${exclude} ${BACKUP_EXCLUDE_FILE} ${BACKUP_FILE} + [Documentation] Schedule Export job + ${file} Builtin.Set Variable If ${exclude} ${EXPORT_EXCLUDE_FILE} ${EXPORT_FILE} ${JSON1} OperatingSystem.Get File ${file} ${JSON2} Builtin.Replace Variables ${JSON1} - Cleanup The Backup Files ${controller_index} - ${response_json} ClusterManagement.Post As Json To Member ${SCHEDULE_BACKUP_URL} ${JSON2} ${controller_index} + Cleanup The Export Files ${controller_index} + ${response_json} ClusterManagement.Post_As_Json_To_Member ${SCHEDULE_EXPORT_URL} ${JSON2} ${controller_index} + Builtin.Log ${response_json} -Schedule Exclude Backup +Schedule Exclude Export [Arguments] ${controller_index} ${store} ${module} - [Documentation] Schedules a backup with exclude option. Returns the file that has the excluded backup. + [Documentation] Schedules a export with exclude option. Returns the file that has the excluded export. ${controller_index} Builtin.Convert To Integer ${controller_index} ${host} ClusterManagement.Resolve IP Address For Member ${controller_index} - Schedule Backup ${controller_index} 500 ${TRUE} ${module} ${store} - Builtin.Wait Until Keyword Succeeds 10 sec 5 sec Verify Backup Status complete ${controller_index} - Verify Backup Files ${controller_index} - Copy Backup Directory To Test VM ${host} - ${backup_file} Builtin.Set Variable If '${store}' == 'operational' ${BKP_OPER_FILE} ${BKP_DATA_FILE} - ${file_path} OperatingSystem.Join Path ${BKP_DIR}${host} ${backup_file} + Schedule Export ${controller_index} 500 ${TRUE} ${module} ${store} + Builtin.Wait Until Keyword Succeeds 10 sec 5 sec Verify Export Status complete ${controller_index} + Verify Export Files ${controller_index} + Copy Export Directory To Test VM ${host} + ${export_file} Builtin.Set Variable If '${store}' == 'operational' ${EXP_OPER_FILE} ${EXP_DATA_FILE} + ${file_path} OperatingSystem.Join Path ${EXP_DIR}${host} ${export_file} [Return] ${file_path} -Cancel Backup +Cancel Export [Arguments] ${controller_index} [Documentation] Cancel the export job - ClusterManagement.Post As Json To Member ${CANCEL_BACKUP_URL} ${EMPTY} ${controller_index} + ${response_json} ClusterManagement.Post_As_Json_To_Member ${CANCEL_EXPORT_URL} ${EMPTY} ${controller_index} + Builtin.Log ${response_json} Return ConnnectionID [Arguments] ${system}=${ODL_SYSTEM_IP} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=${DEFAULT_TIMEOUT} ${user}=${ODL_SYSTEM_USER} ${password}=${ODL_SYSTEM_PASSWORD} @@ -109,10 +114,10 @@ Cleanup Directory OperatingSystem.Empty Directory ${dir} OperatingSystem.Remove Directory ${dir} -Copy Backup Directory To Test VM +Copy Export Directory To Test VM [Arguments] ${host} [Documentation] This keyword copies the daexim folder genereated in the controller to robot vm. This is done to editing if needed on the json files - ${new_dir} Builtin.Set Variable ${BKP_DIR}${host} + ${new_dir} Builtin.Set Variable ${EXP_DIR}${host} ${directory_exist} Builtin.Run Keyword And Return Status OperatingSystem.Directory Should Exist ${new_dir} Builtin.Run Keyword If ${directory_exist} Cleanup Directory ${new_dir} ${connections} Return ConnnectionID ${host} @@ -122,5 +127,68 @@ Copy Backup Directory To Test VM SSHLibrary.Close Connection ${output} OperatingSystem.List Files In Directory ${new_dir} Builtin.Log ${output} - ${fl} OperatingSystem.Get File ${new_dir}/${BKP_DATA_FILE} + ${fl} OperatingSystem.Get File ${new_dir}/${EXP_DATA_FILE} Builtin.Log ${fl} + +Copy Config Data To Controller + [Arguments] ${host_index} + [Documentation] This keyword copies the daexim folder under variables folder to the Controller + ${host_index} Builtin.Convert To Integer ${host_index} + ${host} ClusterManagement.Resolve IP Address For Member ${host_index} + ${connections} Return ConnnectionID ${host} + SSHLibrary.Switch Connection ${connections} + SSHLibrary.Put Directory ${CURDIR}/${DAEXIM_DATA_DIRECTORY} ${WORKSPACE}/${BUNDLEFOLDER}/ mode=664 + SSHLibrary.Close Connection + +Mount Netconf Endpoint + [Arguments] ${endpoint} ${host_index} + [Documentation] Mount a netconf endpoint + ${ENDPOINT} Builtin.Set Variable ${endpoint} + ${JSON1} OperatingSystem.Get File ${CURDIR}/${NETCONF_PAYLOAD_JSON} + ${JSON2} Builtin.Replace Variables ${JSON1} + Builtin.Log ${JSON2} + ${resp} ClusterManagement.Put_As_Json_To_Member ${NETCONF_MOUNT_URL}${endpoint} ${JSON2} ${host_index} + Builtin.Log ${resp} + +Fetch Status Information From Netconf Endpoint + [Arguments] ${endpoint} ${host_index} + [Documentation] This keyword fetches netconf endpoint information + ${resp} ClusterManagement.Get_From_Member ${NTCF_TPLG_OPR_URL}${endpoint} ${host_index} + ${output1} Builtin.Set Variable ${resp} + ${output} RequestsLibrary.To Json ${output1} + Builtin.Log ${output} + ${status} Collections.Get From Dictionary ${output['node'][0]} netconf-node-topology:connection-status + [Return] ${status} ${output} + +Verify Status Information + [Arguments] ${endpoint} ${host_index} ${itr}=50 + [Documentation] Verify if a netconf endpoint status is connected by running in a loop + : FOR ${i} IN RANGE ${itr} + \ ${sts} ${op} Fetch Status Information From Netconf Endpoint ${endpoint} ${host_index} + \ Builtin.Log ${i} + \ Builtin.Exit For Loop If "${sts}" == "${NTCF_OPR_STATUS}" + [Return] ${sts} ${op} + +Verify Netconf Mount + [Arguments] ${endpoint} ${host_index} + [Documentation] Verify if a netconf endpoint is mounted + ${sts1} ${output} Verify Status Information ${endpoint} ${host_index} + ${ep} Collections.Get From Dictionary ${output['node'][0]} node-id + ${port} Collections.Get From Dictionary ${output['node'][0]} netconf-node-topology:port + ${port} Builtin.Convert To String ${port} + Builtin.Should Be Equal ${endpoint} ${ep} + Builtin.Should Be Equal ${port} ${NETCONF_PORT} + +Schedule Import + [Arguments] ${host_index} ${result}=true ${reason}=${EMPTY} ${mdlflag}=${MDL_DEF_FLAG} ${strflag}=${STR_DEF_FLAG} + [Documentation] Schedule an Import API + ${MODELFLAG} Builtin.Set Variable ${mdlflag} + ${STOREFLAG} Builtin.Set Variable ${strflag} + ${JSON1} OperatingSystem.Get File ${CURDIR}/${IMPORT_PAYLOAD} + ${JSON2} Builtin.Replace Variables ${JSON1} + Builtin.Log ${JSON2} + ${resp} Builtin.Wait Until Keyword Succeeds 120 seconds 10 seconds ClusterManagement.Post_As_Json_To_Member ${IMPORT_URL} ${JSON2} + ... ${host_index} + Builtin.Log ${resp} + Builtin.Should Match Regexp ${resp} .*"result": ${result} + Builtin.Run Keyword If "${reason}" != "${EMPTY}" Builtin.Should Match Regexp ${response_json} .*"reason":"${reason} diff --git a/csit/suites/daexim/010-special-export.robot b/csit/suites/daexim/010-special-export.robot index de90ab87ad..95e7c22feb 100644 --- a/csit/suites/daexim/010-special-export.robot +++ b/csit/suites/daexim/010-special-export.robot @@ -1,5 +1,5 @@ *** Settings *** -Documentation Test suite for backing up data and models +Documentation Test suite for verifying basic variations of export API including checking statuses Suite Setup ClusterManagement Setup Suite Teardown Delete All Sessions Library OperatingSystem @@ -7,52 +7,52 @@ Library DateTime Resource ../../libraries/DaeximKeywords.robot *** Test Cases *** -Create and Cancel Backup - [Documentation] schedule and cancel backup of a cluster - [Tags] cancel backup - DaeximKeywords.Verify Backup Status initial 1 - DaeximKeywords.Schedule Backup 1 - DaeximKeywords.Verify Backup Status scheduled 1 - DaeximKeywords.Cancel Backup 1 - DaeximKeywords.Verify Backup Status initial 1 +Create and Cancel Export + [Documentation] schedule and cancel export of a cluster + [Tags] cancel export + DaeximKeywords.Verify Export Status ${EXPORT_INITIAL_STATUS} ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Schedule Export ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Verify Export Status ${EXPORT_SCHEDULED_STATUS} ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Cancel Export ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Verify Export Status ${EXPORT_INITIAL_STATUS} ${FIRST_CONTROLLER_INDEX} -Schedule Absolute Time Backup With UTC - [Documentation] Schedule backup at a particular time - [Tags] absolute time backup +Schedule Absolute Time Export With UTC + [Documentation] Schedule export at a particular time + [Tags] absolute time export ${time} DateTime.Get Current Date UTC 00:00:10 %Y-%m-%dT%H:%M:%SZ ${FALSE} - DaeximKeywords.Schedule Backup 1 ${time} - BuiltIn.Wait Until Keyword Succeeds 20 sec 5 sec DaeximKeywords.Verify Scheduled Backup Timestamp 1 ${time} - Builtin.Wait Until Keyword Succeeds 20 sec 5 sec DaeximKeywords.Verify Backup Status complete 1 - DaeximKeywords.Verify Backup Files 1 + DaeximKeywords.Schedule Export ${FIRST_CONTROLLER_INDEX} ${time} + BuiltIn.Wait Until Keyword Succeeds 20 sec 5 sec DaeximKeywords.Verify Scheduled Export Timestamp ${FIRST_CONTROLLER_INDEX} ${time} + Builtin.Wait Until Keyword Succeeds 20 sec 5 sec DaeximKeywords.Verify Export Status ${EXPORT_COMPLETE_STATUS} ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Verify Export Files ${FIRST_CONTROLLER_INDEX} -Schedule Absolute Time Backup With Localtime - [Documentation] Schedule backup at a particular time - [Tags] absolute time backup +Schedule Absolute Time Export With Localtime + [Documentation] Schedule export at a particular time + [Tags] absolute time export ${time} DateTime.Get Current Date local 00:00:10 %Y-%m-%dT%H:%M:%S+000 ${FALSE} - Builtin.Run Keyword And Expect Error * Schedule Backup 1 ${time} + Builtin.Run Keyword And Expect Error * Schedule Export ${FIRST_CONTROLLER_INDEX} ${time} -Schedule Absolute Time Backup In Past - [Documentation] Schedule backup at a particular time - [Tags] absolute time backup +Schedule Absolute Time Export In Past + [Documentation] Schedule export at a particular time + [Tags] absolute time export ${time} DateTime.Get Current Date UTC -00:00:10 %Y-%m-%dT%H:%M:%SZ ${FALSE} - Builtin.Run Keyword And Expect Error * Schedule Backup 1 ${time} + Builtin.Run Keyword And Expect Error * Schedule Export ${FIRST_CONTROLLER_INDEX} ${time} -Create Module Exclude Backup - [Documentation] schedule backup with exclude option on a cluster - [Tags] exclude backup - ${file1} DaeximKeywords.Schedule Exclude Backup 1 config network-topology +Create Module Exclude Export + [Documentation] schedule export with exclude option on a cluster + [Tags] exclude export + ${file1} DaeximKeywords.Schedule Exclude Export ${FIRST_CONTROLLER_INDEX} config network-topology ${lines1} OperatingSystem.Grep File ${file1} network-topology: Builtin.Should Be Empty ${lines1} - ${file2} DaeximKeywords.Schedule Exclude Backup 1 operational opendaylight-inventory + ${file2} DaeximKeywords.Schedule Exclude Export ${FIRST_CONTROLLER_INDEX} operational opendaylight-inventory ${lines2} OperatingSystem.Grep File ${file2} opendaylight-inventory: Builtin.Should Be Empty ${lines2} -Create Wildcard Exclude Backup - [Documentation] schedule backup with wildstar exclude option - [Tags] wildcard exclude backup - ${file1} DaeximKeywords.Schedule Exclude Backup 1 config * +Create Wildcard Exclude Export + [Documentation] schedule export with wildstar exclude option + [Tags] wildcard exclude export + ${file1} DaeximKeywords.Schedule Exclude Export ${FIRST_CONTROLLER_INDEX} config * ${lines1} Operating System.Get File ${file1} Builtin.Should Be Equal ${lines1} {} - ${file2} Schedule Exclude Backup 1 operational * + ${file2} Schedule Exclude Export ${FIRST_CONTROLLER_INDEX} operational * ${lines2} Operating System.Get File ${file2} Builtin.Should Be Equal ${lines2} {} diff --git a/csit/suites/daexim/020-import-basic.robot b/csit/suites/daexim/020-import-basic.robot new file mode 100644 index 0000000000..0fdd8194ba --- /dev/null +++ b/csit/suites/daexim/020-import-basic.robot @@ -0,0 +1,16 @@ +*** Settings *** +Documentation Test suite for verifying basic import +Suite Setup ClusterManagement Setup +Suite Teardown Delete All Sessions +Resource ../../libraries/DaeximKeywords.robot + +*** Test Cases *** +Create Basic Import + [Documentation] schedule a basic import/restore with data containg controller mounting itself as a netconf device + [Tags] create restore + DaeximKeywords.Cleanup The Export Files ${FIRST_CONTROLLER_INDEX} + ClusterManagement.Stop_Members_From_List_Or_All + ClusterManagement.Start_Members_From_List_Or_All + DaeximKeywords.Copy Config Data To Controller ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Schedule Import ${FIRST_CONTROLLER_INDEX} + Builtin.Wait Until Keyword Succeeds 30 sec 5 sec DaeximKeywords.Verify Netconf Mount ${NETCONF_EP_NAME} ${FIRST_CONTROLLER_INDEX} diff --git a/csit/suites/daexim/030-export-basic.robot b/csit/suites/daexim/030-export-basic.robot new file mode 100644 index 0000000000..963d1037eb --- /dev/null +++ b/csit/suites/daexim/030-export-basic.robot @@ -0,0 +1,16 @@ +*** Settings *** +Documentation Test suite for verifying basic export with a netconf mount +Suite Setup ClusterManagement Setup +Suite Teardown Delete All Sessions +Resource ../../libraries/DaeximKeywords.robot + +*** Test Cases *** +Create Basic Export + [Documentation] schedule a basic export/backup with controller mounting itself as a netconf device + [Tags] create backup + DaeximKeywords.Mount Netconf Endpoint ${NETCONF_EP_NAME} ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Schedule Export ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Verify Export Status ${EXPORT_SCHEDULED_STATUS} ${FIRST_CONTROLLER_INDEX} + Builtin.Wait Until Keyword Succeeds 10 sec 5 sec DaeximKeywords.Verify Export Status ${EXPORT_COMPLETE_STATUS} ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Verify Export Files ${FIRST_CONTROLLER_INDEX} + DaeximKeywords.Verify Netconf Mount ${NETCONF_EP_NAME} ${FIRST_CONTROLLER_INDEX} diff --git a/csit/testplans/daexim-basic.txt b/csit/testplans/daexim-basic.txt index 0698923ae1..169ba8b52d 100644 --- a/csit/testplans/daexim-basic.txt +++ b/csit/testplans/daexim-basic.txt @@ -1 +1,3 @@ test/csit/suites/daexim/010-special-export.robot +test/csit/suites/daexim/020-import-basic.robot +test/csit/suites/daexim/030-export-basic.robot diff --git a/csit/variables/daexim/DaeximVariables.robot b/csit/variables/daexim/DaeximVariables.robot index 484e746909..56738ee41a 100644 --- a/csit/variables/daexim/DaeximVariables.robot +++ b/csit/variables/daexim/DaeximVariables.robot @@ -2,12 +2,28 @@ Documentation Resource consisting purely of variable definitions useful for multiple project suites. *** Variables *** -${CANCEL_BACKUP_URL} /restconf/operations/data-export-import:cancel-export -${BACKUP_FILE} ${CURDIR}/schedule_backup.json -${BKP_DIR} /tmp/Backup -${BACKUP_EXCLUDE_FILE} ${CURDIR}/schedule_backup_exclude.json -${SCHEDULE_BACKUP_URL} /restconf/operations/data-export-import:schedule-export -${BKP_DATA_FILE} odl_backup_config.json -${BKP_OPER_FILE} odl_backup_operational.json +${CANCEL_EXPORT_URL} /restconf/operations/data-export-import:cancel-export +${EXPORT_FILE} ${CURDIR}/schedule_export.json +${EXP_DIR} /tmp/Export +${EXPORT_EXCLUDE_FILE} ${CURDIR}/schedule_export_exclude.json +${SCHEDULE_EXPORT_URL} /restconf/operations/data-export-import:schedule-export +${EXP_DATA_FILE} odl_backup_config.json +${EXP_OPER_FILE} odl_backup_operational.json ${MODELS_FILE} odl_backup_models.json -${STATUS_BACKUP_URL} /restconf/operations/data-export-import:status-export +${STATUS_EXPORT_URL} /restconf/operations/data-export-import:status-export +${NETCONF_PAYLOAD_JSON} ../variables/daexim/netconf_mount.json +${NETCONF_MOUNT_URL} /restconf/config/network-topology:network-topology/topology/topology-netconf/node/ +${TOPOLOGY_URL} /restconf/config/network-topology:network-topology/ +${NETCONF_EP_NAME} CONTROLLER1 +${EXPORT_INITIAL_STATUS} initial +${EXPORT_SCHEDULED_STATUS} scheduled +${EXPORT_COMPLETE_STATUS} complete +${FIRST_CONTROLLER_INDEX} 1 +${NTCF_TPLG_OPR_URL} /restconf/operational/network-topology:network-topology/topology/topology-netconf/node/ +${NETCONF_PORT} 1830 +${NTCF_OPR_STATUS} connected +${DAEXIM_DATA_DIRECTORY} ../variables/daexim/daexim +${MDL_DEF_FLAG} true +${STR_DEF_FLAG} data +${IMPORT_PAYLOAD} ../variables/daexim/import.json +${IMPORT_URL} /restconf/operations/data-export-import:immediate-import diff --git a/csit/variables/daexim/daexim/odl_backup_config.json b/csit/variables/daexim/daexim/odl_backup_config.json new file mode 100644 index 0000000000..dfe6be7c1f --- /dev/null +++ b/csit/variables/daexim/daexim/odl_backup_config.json @@ -0,0 +1,16 @@ +{ + "network-topology:network-topology": { + "topology": [{ + "topology-id": "topology-netconf", + "node": [{ + "node-id": "CONTROLLER1", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:port": 1830, + "netconf-node-topology:username": "admin", + "netconf-node-topology:password": "admin", + "netconf-node-topology:tcp-only": false, + "netconf-node-topology:keepalive-delay": 0 + }] + }] + } +} diff --git a/csit/variables/daexim/daexim/odl_backup_models.json b/csit/variables/daexim/daexim/odl_backup_models.json new file mode 100644 index 0000000000..a246f775f7 --- /dev/null +++ b/csit/variables/daexim/daexim/odl_backup_models.json @@ -0,0 +1,357 @@ +[{ + "module": "credential-store", + "namespace": "urn:opendaylight:params:xml:ns:yang:aaa:credential-store", + "revision-date": "2015-02-26" +}, { + "module": "ietf-inet-types", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types", + "revision-date": "2013-07-15" +}, { + "module": "ietf-netconf", + "namespace": "urn:ietf:params:xml:ns:netconf:base:1.0", + "revision-date": "2011-06-01" +}, { + "module": "ietf-inet-types", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types", + "revision-date": "2010-09-24" +}, { + "module": "network-topology", + "namespace": "urn:TBD:params:xml:ns:yang:network-topology", + "revision-date": "2013-07-12" +}, { + "module": "ted", + "namespace": "urn:TBD:params:xml:ns:yang:network:ted", + "revision-date": "2013-10-21" +}, { + "module": "ted", + "namespace": "urn:TBD:params:xml:ns:yang:network:ted", + "revision-date": "2013-07-12" +}, { + "module": "opendaylight-md-sal-common", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:common", + "revision-date": "2013-10-28" +}, { + "module": "network-topology", + "namespace": "urn:TBD:params:xml:ns:yang:network-topology", + "revision-date": "2013-10-21" +}, { + "module": "instance-identifier-patch-module", + "namespace": "instance:identifier:patch:module", + "revision-date": "2015-11-21" +}, { + "module": "opendaylight-l2-types", + "namespace": "urn:opendaylight:l2:types", + "revision-date": "2013-08-27" +}, { + "module": "subscribe-to-notification", + "namespace": "subscribe:to:notification", + "revision-date": "2016-10-28" +}, { + "module": "cluster-admin", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin", + "revision-date": "2015-10-13" +}, { + "module": "ietf-netconf-notifications", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications", + "revision-date": "2012-02-06" +}, { + "module": "rpc-context", + "namespace": "urn:ietf:params:xml:ns:yang:rpc-context", + "revision-date": "2013-06-17" +}, { + "module": "ietf-yang-types", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", + "revision-date": "2010-09-24" +}, { + "module": "odl-general-entity", + "namespace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity", + "revision-date": "2015-09-30" +}, { + "module": "config", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config", + "revision-date": "2013-04-05" +}, { + "module": "odl-netconf-cfg", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:netconf", + "revision-date": "2014-04-08" +}, { + "module": "threadpool", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:threadpool", + "revision-date": "2013-04-09" +}, { + "module": "threadpool-impl-flexible", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible", + "revision-date": "2013-12-01" +}, { + "module": "threadpool-impl-fixed", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:fixed", + "revision-date": "2013-12-01" +}, { + "module": "actor-system-provider-service", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:service", + "revision-date": "2015-10-05" +}, { + "module": "actor-system-provider-impl", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl", + "revision-date": "2015-10-05" +}, { + "module": "sal-remote", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote", + "revision-date": "2014-01-14" +}, { + "module": "sal-remote-augment", + "namespace": "urn:sal:restconf:event:subscription", + "revision-date": "2014-07-08" +}, { + "module": "opendaylight-entity-ownership-service", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service", + "revision-date": "2015-08-10" +}, { + "module": "l3-unicast-igp-topology", + "namespace": "urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology", + "revision-date": "2013-10-21" +}, { + "module": "ospf-topology", + "namespace": "urn:TBD:params:xml:ns:yang:ospf-topology", + "revision-date": "2013-10-21" +}, { + "module": "threadpool-impl", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl", + "revision-date": "2013-04-05" +}, { + "module": "ietf-yang-types", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", + "revision-date": "2013-07-15" +}, { + "module": "ietf-restconf", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-restconf", + "revision-date": "2013-10-19" +}, { + "module": "cluster-singleton-service-spi", + "namespace": "urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service", + "revision-date": "2016-07-18" +}, { + "module": "cluster-singleton-service-impl", + "namespace": "urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service", + "revision-date": "2016-07-18" +}, { + "module": "opendaylight-legacy-entity-ownership-service-provider", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider", + "revision-date": "2016-02-26" +}, { + "module": "opendaylight-md-sal-binding", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding", + "revision-date": "2013-10-28" +}, { + "module": "ietf-yang-library", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", + "revision-date": "2016-04-09" +}, { + "module": "opendaylight-md-sal-dom", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom", + "revision-date": "2013-10-28" +}, { + "module": "opendaylight-rest-connector", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector", + "revision-date": "2014-07-24" +}, { + "module": "data-export-import", + "namespace": "urn:opendaylight:daexim", + "revision-date": "2016-09-21" +}, { + "module": "ietf-netconf-monitoring", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring", + "revision-date": "2010-10-04" +}, { + "module": "ietf-netconf-monitoring-extension", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension", + "revision-date": "2013-12-10" +}, { + "module": "netconf-northbound", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound", + "revision-date": "2015-01-14" +}, { + "module": "opendaylight-config-dom-datastore", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store", + "revision-date": "2014-06-17" +}, { + "module": "data-export-import-spi", + "namespace": "urn:opendaylight:daexim-spi", + "revision-date": "2016-08-16" +}, { + "module": "data-export-import-cfg", + "namespace": "urn:opendaylight:daexim-config", + "revision-date": "2016-08-03" +}, { + "module": "isis-topology", + "namespace": "urn:TBD:params:xml:ns:yang:network:isis-topology", + "revision-date": "2013-10-21" +}, { + "module": "ietf-interfaces", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-interfaces", + "revision-date": "2014-05-08" +}, { + "module": "iana-if-type", + "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type", + "revision-date": "2014-05-08" +}, { + "module": "ietf-packet-fields", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-packet-fields", + "revision-date": "2016-02-18" +}, { + "module": "ietf-access-control-list", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-access-control-list", + "revision-date": "2016-02-18" +}, { + "module": "notifications", + "namespace": "urn:ietf:params:xml:ns:netconf:notification:1.0", + "revision-date": "2008-07-14" +}, { + "module": "nc-notifications", + "namespace": "urn:ietf:params:xml:ns:netmod:notification", + "revision-date": "2008-07-14" +}, { + "module": "data-export-import-internal", + "namespace": "urn:opendaylight:daexim-internal", + "revision-date": "2016-09-21" +}, { + "module": "l3-unicast-igp-topology", + "namespace": "urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology", + "revision-date": "2013-07-12" +}, { + "module": "isis-topology", + "namespace": "urn:TBD:params:xml:ns:yang:network:isis-topology", + "revision-date": "2013-07-12" +}, { + "module": "ospf-topology", + "namespace": "urn:ietf:params:xml:ns:yang:ospf-topology", + "revision-date": "2013-07-12" +}, { + "module": "yang-ext", + "namespace": "urn:opendaylight:yang:extension:yang-ext", + "revision-date": "2013-07-09" +}, { + "module": "netconf-node-topology", + "namespace": "urn:opendaylight:netconf-node-topology", + "revision-date": "2015-01-14" +}, { + "module": "opendaylight-inventory", + "namespace": "urn:opendaylight:inventory", + "revision-date": "2013-08-19" +}, { + "module": "netconf-node-inventory", + "namespace": "urn:opendaylight:netconf-node-inventory", + "revision-date": "2014-01-08" +}, { + "module": "iana-afn-safi", + "namespace": "urn:ietf:params:xml:ns:yang:iana-afn-safi", + "revision-date": "2013-07-04" +}, { + "module": "opendaylight-operational-dom-datastore", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store", + "revision-date": "2014-06-17" +}, { + "module": "cluster-admin-provider", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:cluster-admin-provider", + "revision-date": "2015-10-13" +}, { + "module": "distributed-datastore-provider", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", + "revision-date": "2014-06-12" +}, { + "module": "opendaylight-sal-dom-broker-impl", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl", + "revision-date": "2013-10-28" +}, { + "module": "odl-concurrent-data-broker-cfg", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker", + "revision-date": "2014-11-24" +}, { + "module": "netconf-auth", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth", + "revision-date": "2015-07-15" +}, { + "module": "opendaylight-inmemory-datastore-provider", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider", + "revision-date": "2014-06-17" +}, { + "module": "netconf-northbound-notification", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification", + "revision-date": "2015-08-06" +}, { + "module": "entity-owners", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners", + "revision-date": "2015-08-04" +}, { + "module": "general-entity", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity", + "revision-date": "2015-08-20" +}, { + "module": "opendaylight-md-sal-binding-v1-codec", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec", + "revision-date": "2016-07-14" +}, { + "module": "opendaylight-sal-binding-broker-impl", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl", + "revision-date": "2013-10-28" +}, { + "module": "opendaylight-pingpong-broker", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong", + "revision-date": "2014-11-07" +}, { + "module": "netty", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:netty", + "revision-date": "2013-11-19" +}, { + "module": "threadgroup", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup", + "revision-date": "2013-11-07" +}, { + "module": "netty-event-executor", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor", + "revision-date": "2013-11-12" +}, { + "module": "protocol-framework", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:protocol:framework", + "revision-date": "2014-03-13" +}, { + "module": "odl-sal-netconf-connector-cfg", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf", + "revision-date": "2015-08-03" +}, { + "module": "netty-timer", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:netty:timer", + "revision-date": "2013-11-19" +}, { + "module": "sal-restconf-service", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service", + "revision-date": "2015-07-08" +}, { + "module": "ietf-network", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-network", + "revision-date": "2015-06-08" +}, { + "module": "ietf-network-topology", + "namespace": "urn:ietf:params:xml:ns:yang:ietf-network-topology", + "revision-date": "2015-06-08" +}, { + "module": "netconf-northbound-mapper", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper", + "revision-date": "2015-01-14" +}, { + "module": "shutdown", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:shutdown", + "revision-date": "2013-12-18" +}, { + "module": "shutdown-impl", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl", + "revision-date": "2013-12-18" +}, { + "module": "threadpool-impl-scheduled", + "namespace": "urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:scheduled", + "revision-date": "2013-12-01" +}, { + "module": "data-export-import-akka-info-provider-cfg", + "namespace": "urn:opendaylight:daexim:akka-info-provider", + "revision-date": "2016-08-16" +}] diff --git a/csit/variables/daexim/daexim/odl_backup_operational.json b/csit/variables/daexim/daexim/odl_backup_operational.json new file mode 100644 index 0000000000..43f8264800 --- /dev/null +++ b/csit/variables/daexim/daexim/odl_backup_operational.json @@ -0,0 +1,299 @@ +{ + "network-topology:network-topology": { + "topology": [{ + "topology-id": "topology-netconf", + "node": [{ + "node-id": "CONTROLLER1", + "netconf-node-topology:host": "127.0.0.1", + "netconf-node-topology:connection-status": "connected", + "netconf-node-topology:port": 1830, + "netconf-node-topology:available-capabilities": { + "available-capability": [{ + "capability": "urn:ietf:params:netconf:base:1.0", + "capability-origin": "device-advertised" + }, { + "capability": "urn:ietf:params:netconf:base:1.1", + "capability-origin": "device-advertised" + }, { + "capability": "urn:ietf:params:netconf:capability:exi:1.0", + "capability-origin": "device-advertised" + }, { + "capability": "urn:ietf:params:netconf:capability:candidate:1.0", + "capability-origin": "device-advertised" + }, { + "capability": "urn:ietf:params:netconf:capability:notification:1.0", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-07-12)network-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?revision=2013-10-28)opendaylight-md-sal-common", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:scheduled?revision=2013-12-01)threadpool-impl-scheduled", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-restconf?revision=2013-10-19)ietf-restconf", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:l2:types?revision=2013-08-27)opendaylight-l2-types", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?revision=2010-10-04)ietf-netconf-monitoring", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service?revision=2015-08-10)opendaylight-entity-ownership-service", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)ietf-interfaces", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ospf-topology?revision=2013-07-12)ospf-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec?revision=2016-07-14)opendaylight-md-sal-binding-v1-codec", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners?revision=2015-08-04)entity-owners", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:network:ted?revision=2013-07-12)ted", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:protocol:framework?revision=2014-03-13)protocol-framework", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-library?revision=2016-04-09)ietf-yang-library", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector?revision=2014-07-24)opendaylight-rest-connector", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider?revision=2016-02-26)opendaylight-legacy-entity-ownership-service-provider", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:iana-afn-safi?revision=2013-07-04)iana-afn-safi", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:sal:restconf:event:subscription?revision=2014-07-08)sal-remote-augment", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:netconf?revision=2014-04-08)odl-netconf-cfg", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2010-09-24)ietf-yang-types", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:service?revision=2015-10-05)actor-system-provider-service", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:daexim-config?revision=2016-08-03)data-export-import-cfg", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup?revision=2013-11-07)threadgroup", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:fixed?revision=2013-12-01)threadpool-impl-fixed", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:netconf-node-inventory?revision=2014-01-08)netconf-node-inventory", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:network:isis-topology?revision=2013-10-21)isis-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound?revision=2015-01-14)netconf-northbound", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)ietf-netconf-notifications", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:daexim-spi?revision=2016-08-16)data-export-import-spi", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin?revision=2015-10-13)cluster-admin", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:netconf-node-topology?revision=2015-01-14)netconf-node-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2010-09-24)ietf-inet-types", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:netconf:base:1.0?revision=2011-06-01)ietf-netconf", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?revision=2013-10-28)opendaylight-md-sal-dom", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf?revision=2015-08-03)odl-sal-netconf-connector-cfg", + "capability-origin": "device-advertised" + }, { + "capability": "(instance:identifier:patch:module?revision=2015-11-21)instance-identifier-patch-module", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl?revision=2013-04-05)threadpool-impl", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth?revision=2015-07-15)netconf-auth", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible?revision=2013-12-01)threadpool-impl-flexible", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:yang:extension:yang-ext?revision=2013-07-09)yang-ext", + "capability-origin": "device-advertised" + }, { + "capability": "(subscribe:to:notification?revision=2016-10-28)subscribe-to-notification", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:rpc-context?revision=2013-06-17)rpc-context", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-access-control-list?revision=2016-02-18)ietf-access-control-list", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:inventory?revision=2013-08-19)opendaylight-inventory", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl?revision=2013-12-18)shutdown-impl", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology?revision=2013-10-21)l3-unicast-igp-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:daexim-internal?revision=2016-09-21)data-export-import-internal", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-packet-fields?revision=2016-02-18)ietf-packet-fields", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:threadpool?revision=2013-04-09)threadpool", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong?revision=2014-11-07)opendaylight-pingpong-broker", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper?revision=2015-01-14)netconf-northbound-mapper", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:network:ted?revision=2013-10-21)ted", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store?revision=2014-06-17)opendaylight-operational-dom-datastore", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker?revision=2014-11-24)odl-concurrent-data-broker-cfg", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:netconf:notification:1.0?revision=2008-07-14)notifications", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service?revision=2016-07-18)cluster-singleton-service-spi", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-network-topology?revision=2015-06-08)ietf-network-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension?revision=2013-12-10)ietf-netconf-monitoring-extension", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:shutdown?revision=2013-12-18)shutdown", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:aaa:credential-store?revision=2015-02-26)credential-store", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:network:isis-topology?revision=2013-07-12)isis-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:netmod:notification?revision=2008-07-14)nc-notifications", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)config", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store?revision=2014-06-17)opendaylight-config-dom-datastore", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service?revision=2015-07-08)sal-restconf-service", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?revision=2013-10-28)opendaylight-sal-binding-broker-impl", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity?revision=2015-09-30)odl-general-entity", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider?revision=2014-06-12)distributed-datastore-provider", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:cluster-admin-provider?revision=2015-10-13)cluster-admin-provider", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology?revision=2013-07-12)l3-unicast-igp-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service?revision=2016-07-18)cluster-singleton-service-impl", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?revision=2013-10-28)opendaylight-md-sal-binding", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)sal-remote", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl?revision=2015-10-05)actor-system-provider-impl", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)general-entity", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider?revision=2014-06-17)opendaylight-inmemory-datastore-provider", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?revision=2013-10-28)opendaylight-sal-dom-broker-impl", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:iana-if-type?revision=2014-05-08)iana-if-type", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:TBD:params:xml:ns:yang:ospf-topology?revision=2013-10-21)ospf-topology", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:ietf:params:xml:ns:yang:ietf-network?revision=2015-06-08)ietf-network", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:netty:timer?revision=2013-11-19)netty-timer", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?revision=2013-11-12)netty-event-executor", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:daexim:akka-info-provider?revision=2016-08-16)data-export-import-akka-info-provider-cfg", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification?revision=2015-08-06)netconf-northbound-notification", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:params:xml:ns:yang:controller:netty?revision=2013-11-19)netty", + "capability-origin": "device-advertised" + }, { + "capability": "(urn:opendaylight:daexim?revision=2016-09-21)data-export-import", + "capability-origin": "device-advertised" + }] + }, + "netconf-node-topology:unavailable-capabilities": {} + }] + }] + } +} diff --git a/csit/variables/daexim/import.json b/csit/variables/daexim/import.json new file mode 100644 index 0000000000..d915cc2c4a --- /dev/null +++ b/csit/variables/daexim/import.json @@ -0,0 +1,6 @@ +{ + "input" : { + "check-models" : "${MODELFLAG}", + "clear-stores" : "${STOREFLAG}" + } +} diff --git a/csit/variables/daexim/netconf_mount.json b/csit/variables/daexim/netconf_mount.json new file mode 100644 index 0000000000..619e1dbe03 --- /dev/null +++ b/csit/variables/daexim/netconf_mount.json @@ -0,0 +1,11 @@ +{ + "node": { + "node-id": "${ENDPOINT}", + "host": "127.0.0.1", + "port": "1830", + "username": "admin", + "password": "admin", + "tcp-only": "false", + "keepalive-delay": "0" + } +} diff --git a/csit/variables/daexim/schedule_backup.json b/csit/variables/daexim/schedule_export.json similarity index 100% rename from csit/variables/daexim/schedule_backup.json rename to csit/variables/daexim/schedule_export.json diff --git a/csit/variables/daexim/schedule_backup_exclude.json b/csit/variables/daexim/schedule_export_exclude.json similarity index 100% rename from csit/variables/daexim/schedule_backup_exclude.json rename to csit/variables/daexim/schedule_export_exclude.json -- 2.36.6