X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fbgpcep%2Ftcpmd5user%2Ftcpmd5user.robot;fp=csit%2Fsuites%2Fbgpcep%2Ftcpmd5user%2Ftcpmd5user.robot;h=d80c561f664e9d05448ef4fa614017966b7d2563;hb=c0d0710464ec2693d92a848a9e56056cda12c8a1;hp=e720c2654fef37704f2ffc02c7bf72ac5b4516dc;hpb=4978f8ad77b30a22da71ade8bdfcea3d3dd5ef75;p=integration%2Ftest.git diff --git a/csit/suites/bgpcep/tcpmd5user/tcpmd5user.robot b/csit/suites/bgpcep/tcpmd5user/tcpmd5user.robot index e720c2654f..d80c561f66 100644 --- a/csit/suites/bgpcep/tcpmd5user/tcpmd5user.robot +++ b/csit/suites/bgpcep/tcpmd5user/tcpmd5user.robot @@ -18,9 +18,8 @@ Documentation TCPMD5 user-facing feature system tests, using PCEP. ... Update the lsp, check a change in pcep-topology. ... Change ODL PCEP configuration to not use password, pcep-topology empties, kill pcep-pcc-mock. ... -... Stable/carbon and stable/nitrogen are using netconf-connector-ssh to send restconf requests. -... Oxygen test cases no longer need netconf-connector-ssh, and they include comparison of -... pcep-session-state, which is exclusive to oxygen. +... Test cases no longer need netconf-connector-ssh, and they include comparison of +... pcep-session-state. Suite Setup Set_It_Up Suite Teardown Tear_It_Down Test Setup FailFast.Fail_This_Fast_On_Previous_Error @@ -28,20 +27,20 @@ Test Teardown FailFast.Start_Failing_Fast_If_This_Failed Library OperatingSystem Library RequestsLibrary Library SSHLibrary prompt=]> +Resource ../../../libraries/CompareStream.robot Resource ../../../libraries/FailFast.robot Resource ../../../libraries/KarafKeywords.robot Resource ../../../libraries/NexusKeywords.robot Resource ../../../libraries/TemplatedRequests.robot -Resource ../../../libraries/WaitForFailure.robot Resource ../../../libraries/RemoteBash.robot -Resource ../../../libraries/CompareStream.robot +Resource ../../../libraries/WaitForFailure.robot +Resource ../../../variables/Variables.robot *** Variables *** ${DIR_WITH_TEMPLATES} ${CURDIR}/../../../variables/tcpmd5user/ ${CONFIG_SESSION} session -${CONNECTOR_FEATURE} odl-netconf-connector-all -${PCEP_FEATURE} odl-bgpcep-pcep -${RESTCONF_FEATURE} odl-restconf-all +${OLD_ERROR_ARGS} \n"last-received-error": {},\n"last-sent-error": {}, +${NEW_ERROR_ARGS} ${EMPTY} *** Test Cases *** Topology_Precondition @@ -62,8 +61,7 @@ Topology_Unauthorized_1 Set_Wrong_Password [Documentation] Configure password in pcep dispatcher for client with Mininet IP address. ... This password does not match what pcc-mock uses. - CompareStream.Run_Keyword_If_At_Least_Oxygen Replace_Password_On_Pcep_Node password=changeme - CompareStream.Run_Keyword_If_Less_Than_Oxygen Set_Password_Less_Than_Oxygen password=changeme + Replace_Password_On_Pcep_Node password=changeme Topology_Unauthorized_2 [Documentation] The same logic as Topology_Unauthorized_1 as incorrect password was provided to ODL. @@ -73,16 +71,11 @@ Topology_Unauthorized_2 Set_Correct_Password [Documentation] Configure password in pcep dispatcher for client with Mininet IP address. ... This password finally matches what pcc-mock uses. - CompareStream.Run_Keyword_If_At_Least_Oxygen Replace_Password_On_Pcep_Node password=topsecret - CompareStream.Run_Keyword_If_Less_Than_Oxygen Set_Password_Less_Than_Oxygen password=topsecret + Replace_Password_On_Pcep_Node password=topsecret Topology_Intercondition [Documentation] Compare pcep-topology/path-computation-client to filled one, which includes a tunnel from pcc-mock. - ... For oxygen compares full pcep-topology including pcep-session-state - &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} CODE=${pcc_name_code} NAME=${pcc_name} IP_ODL=${ODL_SYSTEM_IP} - BuiltIn.Wait_Until_Keyword_Succeeds 10s 1s TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_on ${mapping} ${CONFIG_SESSION} - ... verify=True - CompareStream.Run_Keyword_If_Less_Than_Oxygen BuiltIn.Pass_Execution Rest of the test case valid only for versions oxygen and above. + &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} CODE=${pcc_name_code} NAME=${pcc_name} IP_ODL=${ODL_SYSTEM_IP} ERRORS=${ERROR_ARGS} BuiltIn.Wait_Until_Keyword_Succeeds 30s 1s TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_on_state ${mapping} ${CONFIG_SESSION} ... verify=True @@ -111,16 +104,11 @@ Topology_Unauthorized_4 Set_Correct_Password_2 [Documentation] Configure password in pcep dispatcher for client with Mininet IP address. ... This password again matches what second pcc-mock instance uses. - CompareStream.Run_Keyword_If_At_Least_Oxygen Replace_Password_On_Pcep_Node password=newtopsecret - CompareStream.Run_Keyword_If_Less_Than_Oxygen Set_Password_Less_Than_Oxygen password=newtopsecret + Replace_Password_On_Pcep_Node password=newtopsecret Topology_Intercondition_2 [Documentation] Compare pcep-topology/path-computation-client to filled one, which includes a tunnel from pcc-mock. - ... For oxygen compares full pcep-topology including pcep-session-state - &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} CODE=${pcc_name_code} NAME=${pcc_name} IP_ODL=${ODL_SYSTEM_IP} - BuiltIn.Wait_Until_Keyword_Succeeds 10s 1s TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_on ${mapping} ${CONFIG_SESSION} - ... verify=True - CompareStream.Run_Keyword_If_Less_Than_Oxygen BuiltIn.Pass_Execution Rest of the test case valid only for versions oxygen and above. + &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} CODE=${pcc_name_code} NAME=${pcc_name} IP_ODL=${ODL_SYSTEM_IP} ERRORS=${ERROR_ARGS} BuiltIn.Wait_Until_Keyword_Succeeds 30s 1s TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_on_state ${mapping} ${CONFIG_SESSION} ... verify=True @@ -132,20 +120,15 @@ Update_Delegated Topology_Updated [Documentation] Compare pcep-topology/path-computation-client to default_on_updated, which includes the updated tunnel. - ... For oxygen compares full pcep-topology including pcep-session-state [Tags] critical - &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} CODE=${pcc_name_code} NAME=${pcc_name} IP_ODL=${ODL_SYSTEM_IP} - BuiltIn.Wait_Until_Keyword_Succeeds 10s 1s TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_on_updated ${mapping} ${CONFIG_SESSION} - ... verify=True - CompareStream.Run_Keyword_If_Less_Than_Oxygen BuiltIn.Pass_Execution Rest of the test case valid only for versions oxygen and above. + &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} CODE=${pcc_name_code} NAME=${pcc_name} IP_ODL=${ODL_SYSTEM_IP} ERRORS=${ERROR_ARGS} BuiltIn.Wait_Until_Keyword_Succeeds 30s 1s TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_on_updated_state ${mapping} ${CONFIG_SESSION} ... verify=True Unset_Password [Documentation] De-configure password for pcep dispatcher for client with Mininet IP address. [Setup] FailFast.Run_Even_When_Failing_Fast - CompareStream.Run_Keyword_If_At_Least_Oxygen Unset_Password_On_Pcep_Node - CompareStream.Run_Keyword_If_Less_Than_Oxygen Replace_Password_Xml_Element_In_Pcep_Client_Module_Less_Than_Oxygen + Unset_Password_On_Pcep_Node FailFast.Do_Not_Fail_Fast_From_Now_On # NOTE: It is still possible to remain failing, if both previous and this test failed. [Teardown] FailFast.Do_Not_Start_Failing_If_This_Failed @@ -171,18 +154,15 @@ Topology_Postcondition Delete_Pcep_Client_Module [Documentation] Delete Pcep client module. &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} - CompareStream.Run_Keyword_If_At_Least_Oxygen TemplatedRequests.Delete_Templated ${DIR_WITH_TEMPLATES}${/}pcep_topology_node ${mapping} - CompareStream.Run_Keyword_If_Less_Than_Oxygen TemplatedRequests.Delete_Templated ${DIR_WITH_TEMPLATES}${/}pcep_topology_client_module ${mapping} + TemplatedRequests.Delete_Templated ${DIR_WITH_TEMPLATES}${/}pcep_topology_node ${mapping} *** Keywords *** Set_It_Up [Documentation] Create SSH session to Mininet machine, prepare HTTP client session to Controller. ... Figure out latest pcc-mock version and download it from Nexus to Mininet. ... Also, delete and create directories for json diff handling. - ... Sets up netconf-connector on odl-streams less than oxygen. KarafKeywords.Setup_Karaf_Keywords TemplatedRequests.Create_Default_Session - BuiltIn.Run_Keyword_If """${USE_NETCONF_CONNECTOR}""" == """False""" CompareStream.Run_Keyword_If_Less_Than_Oxygen Install_Netconf_Connector NexusKeywords.Initialize_Artifact_Deployment_And_Usage ${current_connection}= SSHLibrary.Get_Connection ${current_prompt}= BuiltIn.Set_Variable ${current_connection.prompt} @@ -196,6 +176,8 @@ Set_It_Up ${code}= Evaluate binascii.b2a_base64('${pcc_name}')[:-1] modules=binascii BuiltIn.Set_Suite_Variable ${pcc_name_code} ${code} FailFast.Do_Not_Fail_Fast_From_Now_On + ${ERROR_ARGS} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_ERROR_ARGS} ${OLD_ERROR_ARGS} + BuiltIn.Set_Suite_Variable ${ERROR_ARGS} Tear_It_Down [Documentation] Download pccmock.log and Log its contents. @@ -204,42 +186,17 @@ Tear_It_Down SSHLibrary.Get_File pccmock.log ${pccmocklog}= OperatingSystem.Run cat pccmock.log BuiltIn.Log ${pccmocklog} - BuiltIn.Run_Keyword_If """${USE_NETCONF_CONNECTOR}""" == """False""" CompareStream.Run_Keyword_If_Less_Than_Oxygen Uninstall_Netconf_Connector RequestsLibrary.Delete_All_Sessions SSHLibrary.Close_All_Connections -Install_Netconf_Connector - [Documentation] Installs ${CONNECTOR_FEATURE} feature. - # During the netconf connector installation the karaf's ssh is restarted and connection to karaf console is droped. This is causing an error - # which is ignored, because the feature should be installed anyway. - ${status} ${results} = BuiltIn.Run_Keyword_And_Ignore_Error KarafKeywords.Install_A_Feature ${CONNECTOR_FEATURE} - ${status} ${results} = BuiltIn.Run_Keyword_And_Ignore_Error KarafKeywords.Install_A_Feature ${PCEP_FEATURE} - ${status} ${results} = BuiltIn.Run_Keyword_And_Ignore_Error KarafKeywords.Install_A_Feature ${RESTCONF_FEATURE} - BuiltIn.Log ${results} - BuiltIn.Wait_Until_Keyword_Succeeds 240s 3s Check_Netconf_Up_And_Running - -Check_Netconf_Up_And_Running - [Documentation] Make a request to netconf connector's mounted pcep module and expect it is mounted. - TemplatedRequests.Get_From_Uri restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules/module/odl-pcep-topology-provider-cfg:pcep-topology-provider/pcep-topology - -Uninstall_Netconf_Connector - [Documentation] Uninstalls ${CONNECTOR_FEATURE} feature. - ${status} ${results} = BuiltIn.Run_Keyword_And_Ignore_Error KarafKeywords.Uninstall_A_Feature ${CONNECTOR_FEATURE} - BuiltIn.Log ${results} - Test_Unauthorized [Documentation] Try to access pcep topology with wrong password, should get empty topology TemplatedRequests.Get_As_Json_Templated ${DIR_WITH_TEMPLATES}${/}default_off session=${CONFIG_SESSION} verify=True -Set_Password_Less_Than_Oxygen - [Arguments] ${password}=${EMPTY} - ${password_line}= Construct_Password_Element_Line_Using_Password password=${password} - Replace_Password_Xml_Element_In_Pcep_Client_Module_Less_Than_Oxygen ${password_line} - Read_Text_Before_Prompt [Documentation] Log text gathered by SSHLibrary.Read_Until_Prompt. ... This needs to be a separate keyword just because how Read_And_Fail_If_Prompt_Is_Seen is implemented. - ${text}= SSHLibrary.Read_Until_Prompt + ${text} = SSHLibrary.Read_Until_Prompt BuiltIn.Log ${text} Replace_Password_On_Pcep_Node @@ -253,19 +210,6 @@ Unset_Password_On_Pcep_Node &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} TemplatedRequests.Put_As_Xml_Templated ${DIR_WITH_TEMPLATES}${/}pcep_topology_node_empty mapping=${mapping} -Construct_Password_Element_Line_Using_Password - [Arguments] ${password} - [Documentation] Return line with password XML element containing given password, whitespace is there so that data to send looks neat. - ${element}= String.Replace_String ${SPACE}${SPACE}$PASSWORD${\n} $PASSWORD ${password} - BuiltIn.Log ${element} - [Return] ${element} - -Replace_Password_Xml_Element_In_Pcep_Client_Module_Less_Than_Oxygen - [Arguments] ${password_element}=${EMPTY} - [Documentation] Send restconf PUT to replace the config module specifying PCEP password element (may be empty=missing). - &{mapping} BuiltIn.Create_Dictionary IP=${TOOLS_SYSTEM_IP} PASSWD=${password_element} - TemplatedRequests.Put_As_Xml_Templated ${DIR_WITH_TEMPLATES}${/}pcep_topology_client_module mapping=${mapping} - Stop_Pcc_Mock_Tool [Documentation] Send ctrl+c to pcc-mock, fails if no prompt is seen ... after 3 seconds (the default for SSHLibrary)