From 6a5685635e6fc38ef3138bb12f455bd960cd2ff1 Mon Sep 17 00:00:00 2001 From: Andy Bristol Date: Wed, 25 Apr 2018 14:18:33 -0700 Subject: [PATCH 1/2] [test] include oss tar in packaging tests Add the oss tar distribution to the packaging test plugin. Test the oss tar distribution in the core packaging tests, and the non-oss tar distribution in the x-pack packaging tests. --- .../gradle/vagrant/VagrantTestPlugin.groovy | 18 ++++++++++-------- .../packaging/tests/20_tar_package.bats | 3 ++- .../test/resources/packaging/utils/tar.bash | 6 +++++- .../resources/packaging/tests/10_basic.bats | 1 + .../packaging/tests/bootstrap_password.bash | 1 + .../resources/packaging/tests/certgen.bash | 1 + .../packaging/tests/setup_passwords.bash | 1 + 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy index 4c1decdc3ddf6..7a0b9f96781df 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy @@ -37,8 +37,15 @@ class VagrantTestPlugin implements Plugin { 'ubuntu-1404', ] - /** All onboarded archives by default, available for Bats tests even if not used **/ - static List DISTRIBUTION_ARCHIVES = ['tar', 'rpm', 'deb', 'oss-rpm', 'oss-deb'] + /** All distributions to bring into test VM, whether or not they are used **/ + static List DISTRIBUTIONS = [ + 'archives:tar', + 'archives:oss-tar', + 'packages:rpm', + 'packages:oss-rpm', + 'packages:deb', + 'packages:oss-deb' + ] /** Packages onboarded for upgrade tests **/ static List UPGRADE_FROM_ARCHIVES = ['rpm', 'deb'] @@ -117,13 +124,8 @@ class VagrantTestPlugin implements Plugin { upgradeFromVersion = Version.fromString(upgradeFromVersionRaw) } - DISTRIBUTION_ARCHIVES.each { + DISTRIBUTIONS.each { // Adds a dependency for the current version - if (it == 'tar') { - it = 'archives:tar' - } else { - it = "packages:${it}" - } project.dependencies.add(PACKAGING_CONFIGURATION, project.dependencies.project(path: ":distribution:${it}", configuration: 'default')) } diff --git a/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats b/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats index 3536c2a207ddd..964718a011d48 100644 --- a/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats +++ b/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats @@ -55,7 +55,8 @@ setup() { } @test "[TAR] archive is available" { - count=$(find . -type f -name 'elasticsearch*.tar.gz' | wc -l) + local version=$(cat version) + count=$(find . -type f -name "${ARCHIVE_NAME}-${version}.tar.gz" | wc -l) [ "$count" -eq 1 ] } diff --git a/qa/vagrant/src/test/resources/packaging/utils/tar.bash b/qa/vagrant/src/test/resources/packaging/utils/tar.bash index 9b4bc76d841c9..21fd51a463457 100644 --- a/qa/vagrant/src/test/resources/packaging/utils/tar.bash +++ b/qa/vagrant/src/test/resources/packaging/utils/tar.bash @@ -35,10 +35,12 @@ install_archive() { export ESHOME=${1:-/tmp/elasticsearch} + local version=$(cat version) + echo "Unpacking tarball to $ESHOME" rm -rf /tmp/untar mkdir -p /tmp/untar - tar -xzpf elasticsearch*.tar.gz -C /tmp/untar + tar -xzpf "${ARCHIVE_NAME}-${version}.tar.gz" -C /tmp/untar find /tmp/untar -depth -type d -name 'elasticsearch*' -exec mv {} "$ESHOME" \; > /dev/null @@ -79,6 +81,8 @@ export_elasticsearch_paths() { export ESSCRIPTS="$ESCONFIG/scripts" export ESDATA="$ESHOME/data" export ESLOG="$ESHOME/logs" + + export ARCHIVE_NAME=${ARCHIVE_NAME:-"elasticsearch-oss"} } # Checks that all directories & files are correctly installed diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats b/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats index 796f4509607ff..41f31d462d2bf 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats @@ -19,6 +19,7 @@ load $BATS_UTILS/xpack.bash setup() { skip_not_tar_gz export ESHOME=/tmp/elasticsearch + export ARCHIVE_NAME="elasticsearch" export_elasticsearch_paths export ESPLUGIN_COMMAND_USER=elasticsearch } diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash b/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash index 043a8911ac492..06d9543b0146a 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash @@ -11,6 +11,7 @@ load $BATS_UTILS/xpack.bash setup() { if [ $BATS_TEST_NUMBER == 1 ]; then export PACKAGE_NAME="elasticsearch" + export ARCHIVE_NAME="elasticsearch" clean_before_test install diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash b/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash index d75f75b383ada..d79840bf90e9a 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash @@ -16,6 +16,7 @@ certificates="/tmp/certificates.zip" setup() { export PACKAGE_NAME="elasticsearch" + export ARCHIVE_NAME="elasticsearch" if [ $BATS_TEST_NUMBER == 1 ]; then clean_before_test fi diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash b/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash index 14bd8be682693..70afde4f1f445 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash @@ -12,6 +12,7 @@ load $BATS_UTILS/xpack.bash setup() { if [ $BATS_TEST_NUMBER == 1 ]; then export PACKAGE_NAME="elasticsearch" + export ARCHIVE_NAME="elasticsearch" clean_before_test install From a5d162f57117ac38c2d5e2c410c6b31b27591d8b Mon Sep 17 00:00:00 2001 From: Andy Bristol Date: Wed, 25 Apr 2018 15:44:45 -0700 Subject: [PATCH 2/2] Use PACKAGE_NAME env variable for archives From review --- .../src/test/resources/packaging/tests/20_tar_package.bats | 2 +- qa/vagrant/src/test/resources/packaging/utils/tar.bash | 4 ++-- .../vagrant/src/test/resources/packaging/tests/10_basic.bats | 2 +- .../test/resources/packaging/tests/bootstrap_password.bash | 1 - .../vagrant/src/test/resources/packaging/tests/certgen.bash | 1 - .../src/test/resources/packaging/tests/setup_passwords.bash | 1 - 6 files changed, 4 insertions(+), 7 deletions(-) diff --git a/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats b/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats index 964718a011d48..1a3704c33172f 100644 --- a/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats +++ b/qa/vagrant/src/test/resources/packaging/tests/20_tar_package.bats @@ -56,7 +56,7 @@ setup() { @test "[TAR] archive is available" { local version=$(cat version) - count=$(find . -type f -name "${ARCHIVE_NAME}-${version}.tar.gz" | wc -l) + count=$(find . -type f -name "${PACKAGE_NAME}-${version}.tar.gz" | wc -l) [ "$count" -eq 1 ] } diff --git a/qa/vagrant/src/test/resources/packaging/utils/tar.bash b/qa/vagrant/src/test/resources/packaging/utils/tar.bash index 21fd51a463457..4ded1f73514b2 100644 --- a/qa/vagrant/src/test/resources/packaging/utils/tar.bash +++ b/qa/vagrant/src/test/resources/packaging/utils/tar.bash @@ -40,7 +40,7 @@ install_archive() { echo "Unpacking tarball to $ESHOME" rm -rf /tmp/untar mkdir -p /tmp/untar - tar -xzpf "${ARCHIVE_NAME}-${version}.tar.gz" -C /tmp/untar + tar -xzpf "${PACKAGE_NAME}-${version}.tar.gz" -C /tmp/untar find /tmp/untar -depth -type d -name 'elasticsearch*' -exec mv {} "$ESHOME" \; > /dev/null @@ -82,7 +82,7 @@ export_elasticsearch_paths() { export ESDATA="$ESHOME/data" export ESLOG="$ESHOME/logs" - export ARCHIVE_NAME=${ARCHIVE_NAME:-"elasticsearch-oss"} + export PACKAGE_NAME=${PACKAGE_NAME:-"elasticsearch-oss"} } # Checks that all directories & files are correctly installed diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats b/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats index 41f31d462d2bf..898fedbff794e 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/10_basic.bats @@ -19,7 +19,7 @@ load $BATS_UTILS/xpack.bash setup() { skip_not_tar_gz export ESHOME=/tmp/elasticsearch - export ARCHIVE_NAME="elasticsearch" + export PACKAGE_NAME="elasticsearch" export_elasticsearch_paths export ESPLUGIN_COMMAND_USER=elasticsearch } diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash b/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash index 06d9543b0146a..043a8911ac492 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/bootstrap_password.bash @@ -11,7 +11,6 @@ load $BATS_UTILS/xpack.bash setup() { if [ $BATS_TEST_NUMBER == 1 ]; then export PACKAGE_NAME="elasticsearch" - export ARCHIVE_NAME="elasticsearch" clean_before_test install diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash b/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash index d79840bf90e9a..d75f75b383ada 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/certgen.bash @@ -16,7 +16,6 @@ certificates="/tmp/certificates.zip" setup() { export PACKAGE_NAME="elasticsearch" - export ARCHIVE_NAME="elasticsearch" if [ $BATS_TEST_NUMBER == 1 ]; then clean_before_test fi diff --git a/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash b/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash index 70afde4f1f445..14bd8be682693 100644 --- a/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash +++ b/x-pack/qa/vagrant/src/test/resources/packaging/tests/setup_passwords.bash @@ -12,7 +12,6 @@ load $BATS_UTILS/xpack.bash setup() { if [ $BATS_TEST_NUMBER == 1 ]; then export PACKAGE_NAME="elasticsearch" - export ARCHIVE_NAME="elasticsearch" clean_before_test install