X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FNexusKeywords.robot;h=7db65e6a63811f1a1ceac612e30f5a03b8ff23ed;hb=70e7e92db781b5840a68491d497ddbb345d26403;hp=9c8fc3f1ebf35c11297f074b93571b46271458eb;hpb=1b53eed8047e2554245b3c263b69a9ff9f79d673;p=integration%2Ftest.git diff --git a/csit/libraries/NexusKeywords.robot b/csit/libraries/NexusKeywords.robot index 9c8fc3f1eb..7db65e6a63 100644 --- a/csit/libraries/NexusKeywords.robot +++ b/csit/libraries/NexusKeywords.robot @@ -26,13 +26,15 @@ Resource ${CURDIR}/SSHKeywords.robot Resource ${CURDIR}/Utils.robot *** Variables *** -&{COMPONENT_MAPPING} netconf=netconf-impl bgpcep=pcep-impl carpeople=clustering-it-model yangtools=yang-data-impl bindingv1=mdsal-binding-generator-impl -@{RELEASE_INTEGRATED_COMPONENTS} mdsal odlparent yangtools carpeople +&{COMPONENT_MAPPING} netconf=netconf-impl bgpcep=pcep-impl carpeople=clustering-it-model yangtools=yang-data-impl bindingv1=mdsal-binding-generator-impl odl-micro=odlmicro-impl +@{RELEASE_INTEGRATED_COMPONENTS} mdsal odlparent yangtools carpeople netconf bgpcep ${JDKVERSION} None ${JAVA_8_HOME_CENTOS} /usr/lib/jvm/java-1.8.0 ${JAVA_8_HOME_UBUNTU} /usr/lib/jvm/java-8-openjdk-amd64 ${JAVA_11_HOME_CENTOS} /usr/lib/jvm/java-11-openjdk ${JAVA_11_HOME_UBUNTU} /usr/lib/jvm/java-11-openjdk-amd64 +${JAVA_17_HOME_CENTOS} /usr/lib/jvm/java-17-openjdk +${JAVA_17_HOME_UBUNTU} /usr/lib/jvm/java-17-openjdk-amd64 ${JAVA_OPTIONS} -Xmx2560m # Note that '-Xmx=3g' is wrong syntax. Also 3GB heap may not fit in 4GB RAM. ${MAVEN_DEFAULT_OUTPUT_FILENAME} default_maven.log ${MAVEN_OPTIONS} -Pq -Djenkins @@ -41,7 +43,7 @@ ${MAVEN_SETTINGS_URL} https://raw.githubusercontent.com/opendaylight/odlparen ${MAVEN_VERSION} 3.3.9 ${NEXUS_FALLBACK_URL} ${NEXUSURL_PREFIX}/content/repositories/opendaylight.snapshot ${NEXUS_RELEASE_BASE_URL} https://nexus.opendaylight.org/content/repositories/opendaylight.release -${NEXUS_RELEASES_URL} ${NEXUS_RELEASE_BASE_URL}/org/opendaylight/integration/opendaylight +${NEXUS_RELEASES_URL} ${NEXUS_RELEASE_BASE_URL}/org/opendaylight/integration/karaf *** Keywords *** Initialize_Artifact_Deployment_And_Usage @@ -99,7 +101,7 @@ Deploy_From_Url [Return] ${filename} Deploy_Artifact - [Arguments] ${component} ${artifact} ${name_prefix}=${artifact}- ${name_suffix}=-executable.jar ${fallback_url}=${NEXUS_FALLBACK_URL} ${explicit_url}=${EMPTY} + [Arguments] ${component} ${artifact} ${name_prefix}=${artifact}- ${name_suffix}=-executable.jar ${fallback_url}=${NEXUS_FALLBACK_URL} ${explicit_url}=${EMPTY} ${build_version}=${EMPTY} ${build_location}=${EMPTY} [Documentation] Deploy the specified artifact from Nexus to the cwd of the machine to which the active SSHLibrary connection points. ... ${component} is a name part of an artifact present in system/ of ODl installation with the same version as ${artifact} should have. ... Must have ${BUNDLE_URL} variable set to the URL from which the @@ -116,8 +118,17 @@ Deploy_Artifact # a released version, not in the snapshots ${urlbase} = BuiltIn.Set_Variable_If '${urlbase}' != '${BUNDLE_URL}' ${urlbase} ${fallback_url} CompareStream.Run_Keyword_If_At_Most_Magnesium Collections.Remove_Values_From_List ${RELEASE_INTEGRATED_COMPONENTS} carpeople - ${urlbase} = BuiltIn.Set_Variable_If '${component}' in @{RELEASE_INTEGRATED_COMPONENTS} ${NEXUS_RELEASE_BASE_URL} ${urlbase} - ${version} ${location} = NexusKeywords__Detect_Version_To_Pull ${component} + CompareStream.Run_Keyword_If_At_Most_Aluminium Collections.Remove_Values_From_List ${RELEASE_INTEGRATED_COMPONENTS} netconf + CompareStream.Run_Keyword_If_At_Most_Silicon Collections.Remove_Values_From_List ${RELEASE_INTEGRATED_COMPONENTS} bgpcep + ${version} ${location} = BuiltIn.Run_Keyword_If '${build_version}'=='${EMPTY}' NexusKeywords__Detect_Version_To_Pull ${component} + ... ELSE BuiltIn.Set_Variable ${build_version} ${build_location} + BuiltIn.Run_Keyword_If 'SNAPSHOT' in '${version}' Collections.Remove_Values_From_List ${RELEASE_INTEGRATED_COMPONENTS} netconf bgpcep + # check if the bundle url is pointing to a staging artifact + # when we are pointing at a staged artifact we need to use the staging repo instead of release/snapshot artifacts + ${is_staged} = BuiltIn.Set_Variable_If "opendaylight.release" not in '${urlbase}' and "opendaylight.snapshot" not in '${urlbase}' "TRUE" "FALSE" + # if we have a staged artifact we need to use the urlbase given to us in the job params + ${is_mri_component} = BuiltIn.Set_Variable_If '${component}' in ${RELEASE_INTEGRATED_COMPONENTS} "TRUE" "FALSE" + ${urlbase} = BuiltIn.Set_Variable_If ${is_mri_component} == "TRUE" and ${is_staged} == "FALSE" ${NEXUS_RELEASE_BASE_URL} ${urlbase} # TODO: Use RequestsLibrary and String instead of curl and bash utilities? ${url} = BuiltIn.Set_Variable ${urlbase}/${location}/${artifact}/${version} # TODO: Review SSHKeywords for current best keywords to call. @@ -130,11 +141,15 @@ Deploy_Artifact ${url} = BuiltIn.Set_Variable ${url}/${filename} ${response} ${result} = SSHLibrary.Execute_Command wget -q -N '${url}' 2>&1 return_rc=True BuiltIn.Log ${response} - BuiltIn.Run_Keyword_If ${result} != 0 BuiltIn.Fail Artifact "${artifact}" in component "${component}" could not be downloaded from ${url} + BuiltIn.Return_From_Keyword_If ${result} == 0 ${filename} + # staged autorelease for non-mri project might not contain the artifact we need so we need to fallback to grabbing it from the release repo + ${release_url} = String.Replace_String_Using_Regexp ${url} autorelease-[0-9]{4} opendaylight.release + ${response} ${result} = SSHLibrary.Execute_Command wget -q -N '${release_url}' 2>&1 return_rc=True + BuiltIn.Run_Keyword_If ${result} != 0 BuiltIn.Fail Artifact "${artifact}" in component "${component}" could not be downloaded from ${release_url} nor ${url} [Return] ${filename} Deploy_Test_Tool - [Arguments] ${component} ${artifact} ${suffix}=executable ${fallback_url}=${NEXUS_FALLBACK_URL} ${explicit_url}=${EMPTY} + [Arguments] ${component} ${artifact} ${suffix}=executable ${fallback_url}=${NEXUS_FALLBACK_URL} ${explicit_url}=${EMPTY} ${build_version}=${EMPTY} ${build_location}=${EMPTY} [Documentation] Deploy a test tool. ... The test tools have naming convention of the form ... "/some/dir/somewhere//--${suffix}.jar" @@ -144,9 +159,10 @@ Deploy_Test_Tool ... "Deploy_Artifact" and then calls "Deploy_Artifact" to do the real ... work of deploying the artifact. ${name_prefix} = BuiltIn.Set_Variable ${artifact}- - ${name_suffix} = BuiltIn.Set_Variable_If "${suffix}" != "" -${suffix}.jar .jar + ${extension} = BuiltIn.Set_Variable_If '${component}'=='odl-micro' tar jar + ${name_suffix} = BuiltIn.Set_Variable_If "${suffix}" != "" -${suffix}.${extension} .${extension} ${filename} = Deploy_Artifact ${component} ${artifact} ${name_prefix} ${name_suffix} ${fallback_url} - ... ${explicit_url} + ... ${explicit_url} ${build_version} ${build_location} [Return] ${filename} Install_And_Start_Java_Artifact @@ -178,6 +194,7 @@ Compose_Base_Java_Command # Check whether the user set the override and return it if yes. BuiltIn.Run_Keyword_And_Return_If """${openjdk}""" == "openjdk8" Compose_Dilemma_Filepath ${JAVA_8_HOME_CENTOS}/bin/java ${JAVA_8_HOME_UBUNTU}/bin/java BuiltIn.Run_Keyword_And_Return_If """${openjdk}""" == "openjdk11" Compose_Dilemma_Filepath ${JAVA_11_HOME_CENTOS}/bin/java ${JAVA_11_HOME_UBUNTU}/bin/java + BuiltIn.Run_Keyword_And_Return_If """${openjdk}""" == "openjdk17" Compose_Dilemma_Filepath ${JAVA_17_HOME_CENTOS}/bin/java ${JAVA_17_HOME_UBUNTU}/bin/java # Attempt to call plain "java" command directly. If it works, return it. ${out} ${rc} = SSHLibrary.Execute_Command java -version 2>&1 return_rc=True BuiltIn.Return_From_Keyword_If ${rc} == 0 java @@ -275,7 +292,7 @@ Get_ODL_Versions_From_Nexus @{elements}= XML.Get_Elements ${root} .//version ${versions}= BuiltIn.Create_List FOR ${element} IN @{elements} - Collections.Append_To_List ${versions} ${element.text} + BuiltIn.Run_Keyword_If 'Carbon' not in $element.text Collections.Append_To_List ${versions} ${element.text} END Collections.Sort_List ${versions} BuiltIn.Log_Many @{versions} @@ -303,7 +320,7 @@ Get_Latest_ODL_Stream_Release_URL [Arguments] ${stream}=latest ${format}=.zip [Documentation] Returns URL for last release for specified stream. Default format is .zip. ${latest_version}= Get_Latest_ODL_Stream_Release ${stream} - ${url}= BuiltIn.Set_Variable ${NEXUS_RELEASES_URL}/${latest_version}/opendaylight-${latest_version}${format} + ${url}= BuiltIn.Set_Variable ${NEXUS_RELEASES_URL}/${latest_version}/karaf-${latest_version}${format} BuiltIn.Log ${url} [Return] ${url} @@ -338,6 +355,6 @@ Get_Latest_ODL_Previous_Stream_Release_URL [Arguments] ${stream}=${ODL_STREAM} ${format}=.zip [Documentation] Returns URL for last release for previous stream of specified stream. Default format is .zip. ${latest_version}= Get_Latest_ODL_Previous_Stream_Release ${stream} - ${url}= BuiltIn.Set_Variable ${NEXUS_RELEASES_URL}/${latest_version}/opendaylight-${latest_version}${format} + ${url}= BuiltIn.Set_Variable ${NEXUS_RELEASES_URL}/${latest_version}/karaf-${latest_version}${format} BuiltIn.Log ${url} [Return] ${url}