Resource NetconfViaRestconf.robot
Resource NexusKeywords.robot
Resource SSHKeywords.robot
+Resource Utils.robot
*** Variables ***
${TESTTOOL_DEFAULT_JAVA_OPTIONS} -Xmx1G -XX:MaxPermSize=256M -Dorg.apache.sshd.registerBouncyCastle=false
${tmp}= BuiltIn.Create_Dictionary
BuiltIn.Set_Suite_Variable ${NetconfKeywords__mounted_device_types} ${tmp}
NetconfViaRestconf.Setup_Netconf_Via_Restconf
+ NexusKeywords.Initialize_Artifact_Deployment_And_Usage
Configure_Device_In_Netconf
- [Arguments] ${device_name} ${device_type}=default ${device_port}=${FIRST_TESTTOOL_PORT}
+ [Arguments] ${device_name} ${device_type}=default ${device_port}=${FIRST_TESTTOOL_PORT} ${device_address}=${TOOLS_SYSTEM_IP} ${device_user}=admin ${device_password}=topsecret
[Documentation] Tell Netconf about the specified device so it can add it into its configuration.
- ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_IP': '${TOOLS_SYSTEM_IP}', 'DEVICE_NAME': '${device_name}', 'DEVICE_PORT': '${device_port}'}
+ ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_IP': '${device_address}', 'DEVICE_NAME': '${device_name}', 'DEVICE_PORT': '${device_port}', 'DEVICE_USER': '${device_user}', 'DEVICE_PASSWORD': '${device_password}'}
NetconfViaRestconf.Put_Xml_Template_Folder_Via_Restconf ${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type} ${template_as_string}
Collections.Set_To_Dictionary ${NetconfKeywords__mounted_device_types} ${device_name} ${device_type}
Count_Netconf_Connectors_For_Device
+ [Arguments] ${device_name}
+ [Documentation] Count all instances of the specified device in the Netconf topology (usually 0 or 1).
# FIXME: This no longer counts netconf connectors, it counts "device instances in Netconf topology".
# This keyword should be renamed but without an automatic keyword naming standards checker this is
# potentially destabilizing change so right now it is as FIXME. Proposed new name:
# Count_Device_Instances_In_Netconf_Topology
- [Arguments] ${device_name}
- [Documentation] Count all instances of the specified device in the Netconf topology (usually 0 or 1).
- ${mounts}= Utils.Get_Data_From_URI operational network-topology:network-topology/topology/topology-netconf
+ ${mounts}= NetconfViaRestconf.Get_Operational_Data_From_URI network-topology:network-topology/topology/topology-netconf
Builtin.Log ${mounts}
${actual_count}= Builtin.Evaluate len('''${mounts}'''.split('"node-id":"${device_name}"'))-1
Builtin.Return_From_Keyword ${actual_count}
Check_Device_Has_No_Netconf_Connector
+ [Arguments] ${device_name}
+ [Documentation] Check that there are no instances of the specified device in the Netconf topology.
# FIXME: Similarlt to "Count_Netconf_Connectors_For_Device", this does not check whether the device has
# no netconf connector but whether the device is present in the netconf topology or not. Rename, proposed
# new name: Check_Device_Not_Present_In_Netconf_Topology
- [Arguments] ${device_name}
- [Documentation] Check that there are no instances of the specified device in the Netconf topology.
${count} Count_Netconf_Connectors_For_Device ${device_name}
Builtin.Should_Be_Equal_As_Strings ${count} 0
Check_Device_Connected
[Arguments] ${device_name}
[Documentation] Check that the specified device is accessible from Netconf.
- ${device_status}= Utils.Get_Data_From_URI operational network-topology:network-topology/topology/topology-netconf/node/${device_name}
+ ${device_status}= NetconfViaRestconf.Get_Operational_Data_From_URI network-topology:network-topology/topology/topology-netconf/node/${device_name}
Builtin.Should_Contain ${device_status} "netconf-node-topology:connection-status":"connected"
Wait_Device_Connected
... for the additional schemas is deleted on the remote machine and
... the additional schemas argument is left out.
# Install test tool on the machine.
- ${filename}= NexusKeywords.Deploy_Test_Tool netconf/netconf-testtool
+ ${filename}= NexusKeywords.Deploy_Test_Tool netconf netconf-testtool
${schemas_option}= NetconfKeywords__Deploy_Additional_Schemas ${schemas}
# Start the testtool
- ${command} BuiltIn.Set_Variable java ${java_options} -jar ${filename} ${tool_options} --device-count ${device-count} --debug ${debug} ${schemas_option} --md-sal ${mdsal}
+ ${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}
- SSHLibrary.Write ${command} >testtool.log 2>&1
+ ${logfile}= Utils.Get_Log_File_Name testtool
+ BuiltIn.Set_Suite_Variable ${testtool_log} ${logfile}
+ SSHLibrary.Write ${command} >${logfile} 2>&1
# Store information needed by other keywords.
BuiltIn.Set_Suite_Variable ${NetconfKeywords__testtool_device_count} ${device-count}
# Wait for the testtool to boot up.
# TODO: Maybe this keyword's content shall be moved into SSHUtils and named somewhat like
# "Interrupt_Program_And_Download_Its_Log" which will get an argument stating the name of
# the log file to get.
- SSHLibrary.Get_File testtool.log
+ SSHLibrary.Get_File ${testtool_log}
NetconfKeywords__Check_Netconf_Test_Timeout_Not_Expired
[Arguments] ${deadline_Date}