... netconf operations into reusable keywords to make writing netconf
... test suites easier.
Library Collections
+Library DateTime
Library RequestsLibrary
Resource NetconfViaRestconf.robot
+Resource NexusKeywords.robot
Resource SSHKeywords.robot
*** Variables ***
... for the additional schemas is deleted on the remote machine and
... the additional schemas argument is left out.
# Install test tool on the machine.
- # TODO: The "urlbase" line is very similar to what pcep suites do. Reduce this code duplication.
- ${urlbase}= BuiltIn.Set_Variable ${NEXUSURL_PREFIX}/content/repositories/opendaylight.snapshot/org/opendaylight/netconf/netconf-testtool
- ${version}= SSHLibrary.Execute_Command curl ${urlbase}/maven-metadata.xml | grep '<version>' | cut -d '>' -f 2 | cut -d '<' -f 1
- BuiltIn.Log ${version}
- ${namepart}= SSHLibrary.Execute_Command curl ${urlbase}/${version}/maven-metadata.xml | grep value | head -n 1 | cut -d '>' -f 2 | cut -d '<' -f 1
- BuiltIn.Log ${namepart}
- BuiltIn.Set_Suite_Variable ${filename} netconf-testtool-${namepart}-executable.jar
- BuiltIn.Log ${filename}
- ${response}= SSHLibrary.Execute_Command curl ${urlbase}/${version}/${filename} >${filename}
- BuiltIn.Log ${response}
+ ${filename}= NexusKeywords.Deploy_Test_Tool netconf/netconf-testtool
${schemas_option}= NetconfKeywords__Deploy_Additional_Schemas ${schemas}
# Start the testtool
${command} BuiltIn.Set_Variable java -Xmx1G -XX:MaxPermSize=256M -jar ${filename} ${options} --device-count ${device-count} --debug ${debug} ${schemas_option}
SSHLibrary.Get_File testtool.log
NetconfKeywords__Perform_Operation_With_Checking_On_Next_Device
- [Arguments] ${operation}
+ [Arguments] ${operation} ${deadline_Date}
+ ${current_Date}= DateTime.Get_Current_Date
+ ${ellapsed_seconds}= DateTime.Subtract_Date_From_Date ${deadline_Date} ${current_Date}
+ BuiltIn.Run_Keyword_If ${ellapsed_seconds}<0 Fail The global time out period expired
${number}= BuiltIn.Evaluate ${current_port}-${BASE_NETCONF_DEVICE_PORT}+1
BuiltIn.Wait_Until_Keyword_Succeeds 10s 1s NetconfKeywords.Check_Device_Up_And_Running ${number}
BuiltIn.Run_Keyword ${operation} ${DEVICE_NAME_BASE}-${number}
BuiltIn.Set_Suite_Variable ${current_port} ${next}
Perform_Operation_On_Each_Device
- [Arguments] ${operation} ${count}=${DEVICE_COUNT}
+ [Arguments] ${operation} ${count}=${DEVICE_COUNT} ${timeout}=30m
+ ${current_Date}= DateTime.Get_Current_Date
+ ${deadline_Date}= DateTime.Add_Time_To_Date ${current_Date} ${timeout}
BuiltIn.Set_Suite_Variable ${current_port} ${BASE_NETCONF_DEVICE_PORT}
- BuiltIn.Repeat_Keyword ${count} times NetconfKeywords__Perform_Operation_With_Checking_On_Next_Device ${operation}
+ BuiltIn.Repeat_Keyword ${count} times NetconfKeywords__Perform_Operation_With_Checking_On_Next_Device ${operation} ${deadline_Date}