Library OperatingSystem
Library SSHLibrary
Library String
+Library XML
+Library Collections
+Library RequestsLibrary
Resource ${CURDIR}/SSHKeywords.robot
Resource ${CURDIR}/Utils.robot
*** Variables ***
-&{COMPONENT_MAPPING} netconf=netconf-impl bgpcep=pcep-impl yangtools=yang-data-impl carpeople=clustering-it-model
+&{COMPONENT_MAPPING} netconf=netconf-impl bgpcep=pcep-impl carpeople=clustering-it-model yangtools=yang-data-impl bindingv1=mdsal-binding-generator-impl
${JDKVERSION} None
${JAVA_7_HOME_CENTOS} /usr/lib/jvm/java-1.7.0
${JAVA_7_HOME_UBUNTU} /usr/lib/jvm/java-7-openjdk-amd64
${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
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}