X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FNetconfKeywords.robot;h=1d01d25366c6e85dc62f43977bf3c33a143da361;hb=293646a0b064801271ff868cb2b5b7f321f89caa;hp=39b75226d2806429a9f31d76ff7a41a44b2b2485;hpb=93f5338fc291aa090b64bc6f33302a333b987afa;p=integration%2Ftest.git diff --git a/csit/libraries/NetconfKeywords.robot b/csit/libraries/NetconfKeywords.robot index 39b75226d2..1d01d25366 100644 --- a/csit/libraries/NetconfKeywords.robot +++ b/csit/libraries/NetconfKeywords.robot @@ -21,6 +21,8 @@ Resource NexusKeywords.robot Resource SSHKeywords.robot Resource TemplatedRequests.robot Resource Utils.robot +Resource RemoteBash.robot +Resource CompareStream.robot *** Variables *** ${TESTTOOL_DEFAULT_JAVA_OPTIONS} -Xmx1G -XX:MaxPermSize=256M -Dorg.apache.sshd.registerBouncyCastle=false @@ -28,6 +30,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_DEFAULT_URL} https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/netconf/netconf-testtool/1.3.2/netconf-testtool-1.3.2-executable.jar ${TESTTOOL_BOOT_TIMEOUT} 60s ${ENABLE_NETCONF_TEST_TIMEOUT} ${ENABLE_GLOBAL_TEST_DEADLINES} @@ -42,12 +45,13 @@ Setup_NetconfKeywords 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 + ... ${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} + 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 @@ -87,17 +91,17 @@ Check_Device_Connected 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 @@ -157,7 +161,9 @@ 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 + # Note that after nitrogen we have to use nitrogen release version because tool is broken in oxygen onwards. + ${explicit_url}= CompareStream.Set_Variable_If_At_Most_Nitrogen ${EMPTY} ${TESTTOOL_DEFAULT_URL} + ${filename}= NexusKeywords.Deploy_Test_Tool netconf netconf-testtool explicit_url=${explicit_url} ${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} @@ -178,7 +184,7 @@ Check_Device_Up_And_Running Stop_Testtool [Documentation] Stop testtool and download its log. - Utils.Write_Bare_Ctrl_C + RemoteBash.Write_Bare_Ctrl_C SSHLibrary.Read_Until_Prompt # TODO: Unify with play.py and pcc-mock handling. # TODO: Maybe this keyword's content shall be moved into SSHUtils and named somewhat like