Resource RemoteBash.robot
*** Variables ***
-${TESTTOOL_DEFAULT_JAVA_OPTIONS} -Xmx1G -XX:MaxPermSize=256M -Dorg.apache.sshd.registerBouncyCastle=false
+${TESTTOOL_DEFAULT_JAVA_OPTIONS} -Xmx1G -XX:MaxPermSize=256M
${DIRECTORY_WITH_DEVICE_TEMPLATES} ${CURDIR}/../variables/netconf/device
${FIRST_TESTTOOL_PORT} 17830
${BASE_NETCONF_DEVICE_PORT} 17830
Configure_Device_In_Netconf
[Arguments] ${device_name} ${device_type}=default ${device_port}=${FIRST_TESTTOOL_PORT} ${device_address}=${TOOLS_SYSTEM_IP} ${device_user}=admin ${device_password}=topsecret
- ... ${session}=default ${schema_directory}=/tmp/schema ${http_timeout}=${EMPTY}
+ ... ${device_key}=device-key ${session}=default ${schema_directory}=/tmp/schema ${http_timeout}=${EMPTY} ${http_method}=put
[Documentation] Tell Netconf about the specified device so it can add it into its configuration.
${mapping}= BuiltIn.Create_dictionary DEVICE_IP=${device_address} DEVICE_NAME=${device_name} DEVICE_PORT=${device_port} DEVICE_USER=${device_user} DEVICE_PASSWORD=${device_password}
- ... SCHEMA_DIRECTORY=${schema_directory}
+ ... DEVICE_KEY=${device_key} SCHEMA_DIRECTORY=${schema_directory}
# TODO: Is it possible to use &{kwargs} as a mapping directly?
- TemplatedRequests.Put_As_Xml_Templated folder=${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type} mapping=${mapping} session=${session} http_timeout=${http_timeout}
+ Run Keyword if '${http_method}'=='post' TemplatedRequests.Post_As_Xml_Templated folder=${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type} mapping=${mapping} session=${session} http_timeout=${http_timeout}
+ ... ELSE TemplatedRequests.Put_As_Xml_Templated folder=${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type} mapping=${mapping} session=${session} http_timeout=${http_timeout}
Collections.Set_To_Dictionary ${NetconfKeywords__mounted_device_types} ${device_name} ${device_type}
Count_Netconf_Connectors_For_Device
Builtin.Should_Contain ${device_status} "netconf-node-topology:connection-status": "connected"
Wait_Device_Connected
- [Arguments] ${device_name} ${timeout}=10s ${period}=1s ${session}=default
+ [Arguments] ${device_name} ${timeout}=20s ${period}=1s ${session}=default
[Documentation] Wait for the device to become connected.
... It is more readable to use this keyword in a test case than to put the whole WUKS below into it.
BuiltIn.Wait_Until_Keyword_Succeeds ${timeout} ${period} Check_Device_Connected ${device_name} session=${session}
Remove_Device_From_Netconf
- [Arguments] ${device_name} ${session}=default
+ [Arguments] ${device_name} ${session}=default ${location}=location
[Documentation] Tell Netconf to deconfigure the specified device
${device_type}= Collections.Pop_From_Dictionary ${NetconfKeywords__mounted_device_types} ${device_name}
${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${device_name}'}
- TemplatedRequests.Delete_Templated ${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type} ${template_as_string} session=${session}
+ TemplatedRequests.Delete_Templated ${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type} ${template_as_string} session=${session} location=${location}
Wait_Device_Fully_Removed
[Arguments] ${device_name} ${timeout}=10s ${period}=1s ${session}=default
Install_And_Start_Testtool
[Arguments] ${device-count}=10 ${debug}=true ${schemas}=none ${tool_options}=${EMPTY} ${java_options}=${TESTTOOL_DEFAULT_JAVA_OPTIONS} ${mdsal}=true
- [Documentation] Install and run testtool. Also arrange to collect its output into a log file.
- ... When the ${schemas} argument is set to 'none', it signifies that
- ... there are no additional schemas to be deployed, so the directory
- ... for the additional schemas is deleted on the remote machine and
- ... the additional schemas argument is left out.
- # Install test tool on the machine.
+ [Documentation] Install and run testtool.
${filename}= NexusKeywords.Deploy_Test_Tool netconf netconf-testtool
+ Start_Testtool ${filename} ${device-count} ${debug} ${schemas} ${tool_options} ${java_options}
+ ... ${mdsal}
+
+Start_Testtool
+ [Arguments] ${filename} ${device-count}=10 ${debug}=true ${schemas}=none ${tool_options}=${EMPTY} ${java_options}=${TESTTOOL_DEFAULT_JAVA_OPTIONS}
+ ... ${mdsal}=true
+ [Documentation] Arrange to collect tool's output into a log file.
+ ... Will use specific ${schemas} unless argument resolves to 'none',
+ ... which signifies that there are no additional schemas to be deployed.
+ ... If so the directory for the additional schemas is deleted on the
+ ... remote machine and the additional schemas argument is left out.
${schemas_option}= NetconfKeywords__Deploy_Additional_Schemas ${schemas}
- # Start the testtool
${command}= NexusKeywords.Compose_Full_Java_Command ${java_options} -jar ${filename} ${tool_options} --device-count ${device-count} --debug ${debug} ${schemas_option} --md-sal ${mdsal}
BuiltIn.Log Running testtool: ${command}
${logfile}= Utils.Get_Log_File_Name testtool