Kiril Nesenko has uploaded a new change for review.

Change subject: Fix update_engine_params to support repo links
......................................................................

Fix update_engine_params to support repo links

Change-Id: Ie23280488eefc01d33e292789789e3fb90ca4865
Signed-off-by: Kiril Nesenko <[email protected]>
---
M jobs/ovirt_engine_upgrade_params/update_engine_params.sh
1 file changed, 81 insertions(+), 54 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/jenkins refs/changes/91/25291/1

diff --git a/jobs/ovirt_engine_upgrade_params/update_engine_params.sh 
b/jobs/ovirt_engine_upgrade_params/update_engine_params.sh
index ec2057c..149c5c7 100644
--- a/jobs/ovirt_engine_upgrade_params/update_engine_params.sh
+++ b/jobs/ovirt_engine_upgrade_params/update_engine_params.sh
@@ -1,41 +1,71 @@
 #!/bin/bash -x
 # ./update_engine_params.sh <workspace> <from version> <to version>
 
-WORKSPACE=$1
-FROM=$2
-TO=$3
-ANS_FILE="${WORKSPACE}"/jenkins/jobs/ovirt_engine_upgrade_params/answer.file.otopi
-CLEANUP_FILE="${WORKSPACE}"/jenkins/jobs/ovirt_engine_upgrade_params/cleanup.file.otopi
-DATE=$(date +"%a_%b_%d_%H_%M_%S_%Z_%Y")
-LOG="${WORKSPACE}/${DATE}.log"
-HOSTNAME=$(hostname)
-OS="$(awk '{print $1}' /etc/redhat-release | tr -s '[A-Z]' '[a-z]')"
 
-
-validate()
-{
-    if [[ -z "${WORKSPACE}" \
-        || -z "${TO}"  \
-        || -z "${FROM}" ]]; then
-        echo "Please provide 3 parameters to the job"
-        exit 1
-    fi
+die() {
+       local m="${1}"
+       echo "FATAL: ${m}"
+       exit 1
 }
 
+usage() {
+       cat << __EOF__
+    ${0} [options]
+    --workspace         - path to workspace
+    --from-repo-url     - repo to install the from engine
+    --to-repo-url       - repo to engine you want to upgrade to
+__EOF__
+}
 
-init_postgres()
-{
-    local res=0
-       if rpm -q postgresql-server; then
-                service postgresql stop
-                yum remove -y postgresql-server
-        fi
-        ## rm -rf does not complain if the file does not exist
-        rm -rf /var/lib/pgsql/data
-        yum -y install postgresql-server
-        postgresql-setup initdb || res=$(($res + $?))
-        ## ugly fig for the tests to work
-        cat >/var/lib/pgsql/data/pg_hba.conf <<EOF
+get_opts() {
+       while [ -n "${1}" ]; do
+               opt="$1"
+               v="${opt#*=}"
+               shift
+               case "${opt}" in
+                       --workspace=*)
+                               WORKSPACE="${v}"
+                               ;;
+                       --from-repo-url=*)
+                               FROM="${1}"
+                               ;;
+                       --to-repo-url=*)
+                               TO="${TO}"
+                               ;;
+                       *)
+                               usage
+                               die "Wrong option"
+                               ;;
+               esac
+       done
+}
+
+validate() {
+       [ -n "${WORKSPACE}" ] || die "Please specify --workspace= option"
+       [ -n "${TO}" ] || die "Please specify --to-repo-url= option"
+       [ -n "${FROM}" ] || die " Please specify --from-repo-url= option"
+}
+
+configure() {
+       
ANS_FILE="${WORKSPACE}"/jenkins/jobs/ovirt_engine_upgrade_params/answer.file.otopi
+       
CLEANUP_FILE="${WORKSPACE}"/jenkins/jobs/ovirt_engine_upgrade_params/cleanup.file.otopi
+       DATE=$(date +"%a_%b_%d_%H_%M_%S_%Z_%Y")
+       LOG="${WORKSPACE}/${DATE}.log"
+       HOSTNAME="$(hostname)"
+}
+
+init_postgres() {
+       local res=0
+       if rpm -q postgresql-server; then
+               service postgresql stop
+               yum remove -y postgresql-server
+       fi
+       ## rm -rf does not complain if the file does not exist
+       rm -rf /var/lib/pgsql/data
+       yum -y install postgresql-server
+       postgresql-setup initdb || res=$(($res + $?))
+       ## ugly fig for the tests to work
+       cat >/var/lib/pgsql/data/pg_hba.conf <<EOF
 host    all            all        127.0.0.1/0    trust
 host    all            all        ::1/128    trust
 local   all            all        trust
@@ -93,24 +123,14 @@
 }
 
 
-configure_repo()
-{
-    local _release=$1
-    local _os=""
+configure_repo() {
+       local repo="${1}"
+       local release="${2}"
 
-    if [[ "${OS}" == "fedora" ]]; then
-        _os="Fedora"
-    elif [[ "${OS}" == "centos" ]]; then
-        _os="EL"
-    else
-        echo "${_os} is not supported"
-        exit 1
-    fi
-
-    cat << EOF > /etc/yum.repos.d/upgrade_params_${_release}.repo
-[ovirt-engine-${_release}]
-name=oVirt Engine ${_release}
-baseurl=http://ovirt.org/releases/${_release}/rpm/${_os}/\$releasever/
+       cat << EOF > /etc/yum.repos.d/upgrade_params_${release}.repo
+[ovirt-engine-${release}]
+name=oVirt Engine ${release}
+baseurl=${repo}
 enabled=1
 gpgcheck=0
 EOF
@@ -204,9 +224,11 @@
 
 post_clean()
 {
+       local from="${1}"
+       local to="${2}"
     # Cleanup stage
-    rm -f /etc/yum.repos.d/upgrade_params_"${FROM}".repo \
-        /etc/yum.repos.d/upgrade_params_"${TO}".repo
+    rm -f /etc/yum.repos.d/upgrade_params_"${from}".repo \
+        /etc/yum.repos.d/upgrade_params_"${to}".repo
     ${ENGINE_CLEANUP} || echo "CLEANUP_FAILED" >> "${LOG}"
     copy_log
 }
@@ -214,19 +236,24 @@
 
 main()
 {
+       get_opts "${@}"
     validate
+       configure
     pre_clean
     init_postgres
     disable_engine_repos
     prepare_pgpass
-    configure_repo "${FROM}"
+
+       from_release="$(basename "${FROM}")"
+       to_release="$(basename "${TO}")"
+    configure_repo "${FROM}" "${from_release}"
     install_from_engine
-    configure_repo "${TO}"
+    configure_repo "${TO}" "${to_release}"
     engine_upgrade
     check_engine_status
-    post_clean
+    post_clean "${from_release}" "${to_release}"
     enable_engine_repos
     remove_pgpass
 }
 
-main
+main "${@}"


-- 
To view, visit http://gerrit.ovirt.org/25291
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie23280488eefc01d33e292789789e3fb90ca4865
Gerrit-PatchSet: 1
Gerrit-Project: jenkins
Gerrit-Branch: master
Gerrit-Owner: Kiril Nesenko <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to