From 8f67ed747a7ebfa1ccfb452a4e54862d7ac3ec43 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Tue, 20 Oct 2015 16:07:58 +0200 Subject: generate-data: fixes needed for docker Because we usually mount /var/lib/pgsql/data into container, scripts would fail on 'rm -rf /var/lib/pgsql/data'. * generate (GEN_DATA): Use $PGHOME/data/data. (single_task): Generate tarball from proper datadir. * prep: Use 'dnf' when necessary. Use /var/lib/pgsql/data/data directory. --- postgresql-tests/gen-data/generate | 4 ++-- postgresql-tests/gen-data/prep | 44 +++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 5 deletions(-) (limited to 'postgresql-tests') diff --git a/postgresql-tests/gen-data/generate b/postgresql-tests/gen-data/generate index d8ead6b..4269b9e 100755 --- a/postgresql-tests/gen-data/generate +++ b/postgresql-tests/gen-data/generate @@ -1,6 +1,6 @@ #!/bin/bash -GEN_DATADIR=/var/lib/pgsql/data +GEN_DATADIR=/var/lib/pgsql/data/data CACHEDIR=/var/cache/dbt OUTPUTDIR="$(pwd)/results" SRCDIR="$(pwd)" @@ -89,7 +89,7 @@ single_task() service postgresql stop &>/dev/null || die "can't stop postgresql" tarball="$OUTPUTDIR/$task_name.tar.gz" - tar -czf "$tarball" -C /var/lib/pgsql/ data + tar -czf "$tarball" -C /var/lib/pgsql/data data info "result tarball $tarball" rm -rf "$tmpdir" diff --git a/postgresql-tests/gen-data/prep b/postgresql-tests/gen-data/prep index b5b19b5..d83dc6b 100755 --- a/postgresql-tests/gen-data/prep +++ b/postgresql-tests/gen-data/prep @@ -1,5 +1,43 @@ #!/bin/bash -yum install -y wget postgresql-server unzip -echo "LANG=en_US.UTF-8" > /etc/locale.conf -rm -rf /var/lib/pgsql/data +. /etc/os-release 2>/dev/null + +: "${VERSION_ID=0}" + +pkgmanager=yum + +verbose() { echo "$0: $*" ; } +die() { echo "$*" ; exit 1; } + +awk_cmd=' + /^Environment=PGDATA=\/var\/lib\/pgsql\/data$/ { + sub("/data", "/data/data"); + print; + t = 1; + next; + } + /^OOMScoreAdjust=-1000$/ { + next ; + } + { print; } + END {exit (!t)} +' + +test x"${ID}" = xfedora && test "$VERSION_ID" -gt 21 && pkgmanager=dnf + +verbose "installing necessary packages ($pkgmanager)" +$pkgmanager install -y wget postgresql-server unzip initscripts + +verbose "setting up proper datadir" +service_file=/usr/lib/systemd/system/postgresql.service +{ + cp "$service_file" "$service_file~" && \ + awk "$awk_cmd" < "$service_file~" > "$service_file" +} || die "can't set datadir to /var/lib/pgsql/data/data" + +loc="LANG=en_US.UTF-8" +verbose "setting locale to $loc" +echo "$loc" > /etc/locale.conf + +verbose "removing datadir" +rm -rf /var/lib/pgsql/data/data -- cgit