X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FNetconfKeywords.robot;h=ac76e9e6ac451120ba92b52168cf3893e5c3ccaa;hb=41e462fade4e96d033519059d4aee5c8598d25f0;hp=f1418e3d984244f8d8d16c396bbcc291152a138b;hpb=b0e04beb61b97bf71282eb47f882846de1a79ecb;p=integration%2Ftest.git diff --git a/csit/libraries/NetconfKeywords.robot b/csit/libraries/NetconfKeywords.robot index f1418e3d98..ac76e9e6ac 100644 --- a/csit/libraries/NetconfKeywords.robot +++ b/csit/libraries/NetconfKeywords.robot @@ -14,9 +14,11 @@ Documentation Perform complex operations on netconf. Library Collections Library DateTime Library RequestsLibrary +Library SSHLibrary 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 @@ -24,7 +26,7 @@ ${DIRECTORY_WITH_DEVICE_TEMPLATES} ${CURDIR}/../variables/netconf/device ${FIRST_TESTTOOL_PORT} 17830 ${BASE_NETCONF_DEVICE_PORT} 17830 ${DEVICE_NAME_BASE} netconf-scaling-device -${TESTTOOL_DEVICE_TIMEOUT} 60s +${TESTTOOL_BOOT_TIMEOUT} 60s ${ENABLE_NETCONF_TEST_TIMEOUT} ${ENABLE_GLOBAL_TEST_DEADLINES} *** Keywords *** @@ -33,32 +35,33 @@ Setup_NetconfKeywords ${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 @@ -73,7 +76,7 @@ Check_Device_Completely_Gone 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 @@ -137,7 +140,7 @@ NetconfKeywords__Check_Device_Is_Up NetconfKeywords__Wait_Device_Is_Up_And_Running [Arguments] ${device_name} ${number}= BuiltIn.Evaluate '${device_name}'.split('-').pop() - BuiltIn.Wait_Until_Keyword_Succeeds ${TESTTOOL_DEVICE_TIMEOUT} 1s Check_Device_Up_And_Running ${number} + BuiltIn.Wait_Until_Keyword_Succeeds ${TESTTOOL_BOOT_TIMEOUT} 1s Check_Device_Up_And_Running ${number} Install_And_Start_Testtool [Arguments] ${device-count}=10 ${debug}=true ${schemas}=none ${tool_options}=${EMPTY} ${java_options}=${TESTTOOL_DEFAULT_JAVA_OPTIONS} ${mdsal}=true @@ -147,12 +150,14 @@ Install_And_Start_Testtool ... 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. @@ -172,7 +177,7 @@ Stop_Testtool # 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}