X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FNexusKeywords.robot;h=09f2a4fb6279a9096c3e911ff7b8cb2a9241b7e0;hb=93e84bcbc3fb72540051be9b4b82425a2fcbe307;hp=8d73afabf936e25050aceb5167e247fbb166bf2e;hpb=d8ad395bd8e06735e716d1f81586bb4510c7c4ac;p=integration%2Ftest.git diff --git a/csit/libraries/NexusKeywords.robot b/csit/libraries/NexusKeywords.robot index 8d73afabf9..09f2a4fb62 100644 --- a/csit/libraries/NexusKeywords.robot +++ b/csit/libraries/NexusKeywords.robot @@ -18,6 +18,9 @@ Library Collections Library OperatingSystem Library SSHLibrary Library String +Library XML +Library Collections +Library RequestsLibrary Resource ${CURDIR}/SSHKeywords.robot Resource ${CURDIR}/Utils.robot @@ -36,6 +39,8 @@ ${MAVEN_REPOSITORY_PATH} /tmp/r ${MAVEN_SETTINGS_URL} https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml ${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/distribution-karaf *** Keywords *** Initialize_Artifact_Deployment_And_Usage @@ -259,3 +264,68 @@ Run_Maven SSHKeywords.Execute_Command_At_Cwd_Should_Pass mkdir -p '${MAVEN_REPOSITORY_PATH}' ${maven_repository_options} = BuiltIn.Set_Variable -Dmaven.repo.local=${MAVEN_REPOSITORY_PATH} -Dorg.ops4j.pax.url.mvn.localRepository=${MAVEN_REPOSITORY_PATH} SSHKeywords.Execute_Command_At_Cwd_Should_Pass ${maven_bash_command} clean install dependency:tree -V -B -DoutputFile=dependency_tree.log -s './settings.xml' -f '${pom_file}' ${MAVEN_OPTIONS} ${maven_repository_options} > '${log_file}' + +Get_ODL_Versions_From_Nexus + [Documentation] Returns name of last release found on nexus and list of all versions. + RequestsLibrary.Create_Session nexus ${NEXUS_RELEASES_URL} verify=${TRUE} + ${uri}= BuiltIn.Set_Variable maven-metadata.xml + ${response}= RequestsLibrary.Get_Request nexus ${uri} + BuiltIn.Log ${response.text} + ${root}= XML.Parse_XML ${response.text} + ${element}= XML.Get_Element ${root} versioning/latest + ${latest}= BuiltIn.Set_Variable ${element.text} + BuiltIn.Log ${latest} + @{elements}= XML.Get_Elements ${root} .//version + ${versions}= BuiltIn.Create_List + : FOR ${element} IN @{elements} + \ Collections.Append_To_List ${versions} ${element.text} + Collections.Sort_List ${versions} + BuiltIn.Log_Many @{versions} + [Return] ${latest} @{versions} + +Get_Latest_ODL_Release_From_Nexus + [Documentation] Returns name of last release found on nexus + ${latest} @{versions}= Get_ODL_Versions_From_Nexus + [Return] ${latest} + +Get_Latest_ODL_Stream_Release + [Arguments] ${stream}=latest + [Documentation] Returns name for last release for specified stream. + ${latest} @{versions}= Get_ODL_Versions_From_Nexus + BuiltIn.Return_From_Keyword_If '${stream}'=='latest' ${latest} + ${latest_version}= BuiltIn.Set_Variable xxx + : FOR ${version} IN @{versions} + \ ${latest_version}= BuiltIn.Set_Variable_If '${stream}'.title() in '${version}' ${version} ${latest_version} + BuiltIn.Run_Keyword_If '${latest_version}'=='xxx' BuiltIn.Fail Could not find latest release for stream ${stream} + BuiltIn.Log ${latest_version} + [Return] ${latest_version} + +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}/distribution-karaf-${latest_version}${format} + BuiltIn.Log ${url} + [Return] ${url} + +Get_Latest_ODL_Previous_Stream_Release + [Arguments] ${stream}=${ODL_STREAM} + [Documentation] Returns name for last release for previous stream of specified stream. + ... Note: If specified stream is not found on nexus, then it is taken as new one (not released yet). + ... So in this case, latest release version is return. + ${latest} @{versions}= Get_ODL_Versions_From_Nexus + ${latest_version}= BuiltIn.Set_Variable xxx + : FOR ${version} IN @{versions} + \ BuiltIn.Exit_For_Loop_If '${stream}'.title() in '${version}' + \ ${latest_version}= BuiltIn.Set_Variable ${version} + BuiltIn.Run_Keyword_If '${latest_version}'=='xxx' BuiltIn.Fail Could not find latest previous release for stream ${stream} + BuiltIn.Log ${latest_version} + [Return] ${latest_version} + +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}/distribution-karaf-${latest_version}${format} + BuiltIn.Log ${url} + [Return] ${url}