You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by se...@apache.org on 2017/02/14 22:34:14 UTC
aurora-packaging git commit: Add basic test scripts for RPM and DEB
packages
Repository: aurora-packaging
Updated Branches:
refs/heads/0.17.x 2b19410bf -> b9d9fdb69
Add basic test scripts for RPM and DEB packages
This reduces some of the manual effort for verifying the binary packages.
Testing Done:
See the distribution specific README.md.
Reviewed at https://reviews.apache.org/r/56577/
Project: http://git-wip-us.apache.org/repos/asf/aurora-packaging/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora-packaging/commit/b9d9fdb6
Tree: http://git-wip-us.apache.org/repos/asf/aurora-packaging/tree/b9d9fdb6
Diff: http://git-wip-us.apache.org/repos/asf/aurora-packaging/diff/b9d9fdb6
Branch: refs/heads/0.17.x
Commit: b9d9fdb6968b363a23d44d7b349e9eab17af0fb1
Parents: 2b19410
Author: Stephan Erb <se...@apache.org>
Authored: Tue Feb 14 23:34:07 2017 +0100
Committer: Stephan Erb <se...@apache.org>
Committed: Tue Feb 14 23:34:07 2017 +0100
----------------------------------------------------------------------
.gitignore | 1 +
build-artifact.sh | 2 +-
test/deb/debian-jessie/README.md | 50 +++--------
test/deb/debian-jessie/Vagrantfile | 5 +-
test/deb/debian-jessie/install-aurora.sh | 17 ++++
test/deb/debian-jessie/provision.sh | 11 +--
test/deb/ubuntu-trusty/README.md | 48 +++-------
test/deb/ubuntu-trusty/Vagrantfile | 3 +
test/deb/ubuntu-trusty/install-aurora.sh | 17 ++++
test/deb/ubuntu-trusty/provision.sh | 10 +--
test/deb/ubuntu-xenial/README.md | 51 +++--------
test/deb/ubuntu-xenial/Vagrantfile | 3 +
test/deb/ubuntu-xenial/install-aurora.sh | 20 +++++
test/deb/ubuntu-xenial/provision.sh | 2 +-
test/rpm/centos-7/README.md | 47 +++-------
test/rpm/centos-7/Vagrantfile | 3 +
test/rpm/centos-7/install-aurora.sh | 20 +++++
test/test-artifact.sh | 50 +++++++++++
test/test-aurora.sh | 122 ++++++++++++++++++++++++++
19 files changed, 317 insertions(+), 165 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 2d30051..a60a052 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
dist/
+artifacts/
.vagrant
/build-support/*.venv
/build-support/virtualenv-*
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/build-artifact.sh
----------------------------------------------------------------------
diff --git a/build-artifact.sh b/build-artifact.sh
index e4efe5f..61edcaf 100755
--- a/build-artifact.sh
+++ b/build-artifact.sh
@@ -30,7 +30,7 @@ run_build() {
IMAGE_NAME="aurora-$(basename $BUILDER_DIR)"
echo "Using docker image $IMAGE_NAME"
- docker build -t "$IMAGE_NAME" "$BUILDER_DIR"
+ docker build --pull -t "$IMAGE_NAME" "$BUILDER_DIR"
docker run \
-e AURORA_VERSION=$AURORA_VERSION \
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/debian-jessie/README.md
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/README.md b/test/deb/debian-jessie/README.md
index 2e9bcb7..0a7ea3d 100644
--- a/test/deb/debian-jessie/README.md
+++ b/test/deb/debian-jessie/README.md
@@ -1,62 +1,34 @@
# Installing Aurora
-## Install packages
+## Testing packages
Two methods are described, one for installing locally built packages, the other
for installing released packages or release candidate packages.
+
### Locally built
- # Install vagrant scp
- vagrant plugin install vagrant-scp
+Run this from the toplevel repository:
- # Scp over the newly built packages
- for deb in ../../../artifacts/aurora-debian-jessie/dist/*.deb; do
- vagrant scp $deb :$(basename $deb)
- done
+ ./test/test-artifact.sh test/deb/debian-jessie /repo/artifacts/aurora-debian-jessie/dist
- # Install each rpm
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- sudo dpkg -i *.deb
### Released
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- version=0.15.0
+Run this from the toplevel repository:
+
+ version=0.17.0
pkg_root="https://apache.bintray.com/aurora/debian-jessie/"
+
for deb in \
aurora-scheduler_${version}_amd64.deb \
aurora-executor_${version}_amd64.deb \
aurora-tools_${version}_amd64.deb; do
- wget $pkg_root/$deb
- sudo dpkg -i $deb
- done
-
-## Initialize and start
-The scheduler and observer will automatically start when installed. However, the replicated log
-has to be initialized manually:
-
- sudo systemctl stop aurora-scheduler
- sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
- sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db
- sudo systemctl start aurora-scheduler
-
-To make the Thermos observer work, you will have to follow the instructions of our
-[Install Guide](https://github.com/apache/aurora/blob/master/docs/operations/installation.md#configuration).
-
-## Create a job
-
-```
-echo "
-task = SequentialTask(
- processes = [Process(name = 'hello', cmdline = 'echo hello')],
- resources = Resources(cpu = 0.5, ram = 128*MB, disk = 128*MB))
-jobs = [Service(
- task = task, cluster = 'example', role = 'vagrant', environment = 'prod', name = 'hello')]" > hello_world.aurora
+ wget $pkg_root/$deb -P artifacts/aurora-debian-jessie/${version}
+ done
-aurora job create example/vagrant/prod/hello hello_world.aurora
-```
+ ./test/test-artifact.sh test/deb/debian-jessie /repo/artifacts/aurora-debian-jessie/${version}
## Troubleshooting
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/debian-jessie/Vagrantfile
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/Vagrantfile b/test/deb/debian-jessie/Vagrantfile
index f79c337..66fe79a 100644
--- a/test/deb/debian-jessie/Vagrantfile
+++ b/test/deb/debian-jessie/Vagrantfile
@@ -2,10 +2,13 @@ Vagrant.require_version ">= 1.5.0"
Vagrant.configure(2) do |config|
config.vm.define "aurora_jessie"
- config.vm.box = "debian/jessie64"
+ config.vm.box = "debian/contrib-jessie64" # contrib contains the vboxsf module
config.vm.hostname = "localhost"
+ # Mount the entire aurora-packaging folder at /repo
+ config.vm.synced_folder "../../../", "/repo"
+
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "4096"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/debian-jessie/install-aurora.sh
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/install-aurora.sh b/test/deb/debian-jessie/install-aurora.sh
new file mode 100755
index 0000000..8781a90
--- /dev/null
+++ b/test/deb/debian-jessie/install-aurora.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+DIST_DIR=$1
+PACKAGES=$(ls $DIST_DIR/*.deb)
+
+if [ -z "$PACKAGES" ]
+ then
+ echo "No packages found to be installed. Aborting."
+ exit 1
+fi
+
+sudo dpkg -i $PACKAGES
+
+sudo systemctl stop aurora-scheduler
+sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
+sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db || true
+sudo systemctl start aurora-scheduler
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/debian-jessie/provision.sh
----------------------------------------------------------------------
diff --git a/test/deb/debian-jessie/provision.sh b/test/deb/debian-jessie/provision.sh
index 175f1ba..62e6489 100644
--- a/test/deb/debian-jessie/provision.sh
+++ b/test/deb/debian-jessie/provision.sh
@@ -2,17 +2,18 @@
echo "deb http://http.debian.net/debian jessie-backports main" | sudo tee -a /etc/apt/sources.list
apt-get update
-apt-get install -y openjdk-8-jre libcurl4-nss-dev libcurl3 libevent-dev libsvn1 zookeeperd
+apt-get install -y openjdk-8-jre-headless -t jessie-backports
+apt-get install -y zookeeperd curl
update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+# NOTE: This appears to be a missing dependency of the mesos deb package and is needed
+# for the python mesos native bindings.
+aptitude -y install libcurl4-nss-dev libcurl3 libevent-dev libsvn1
+
package=mesos_1.1.0-2.0.107.debian81_amd64.deb
wget -c http://repos.mesosphere.com/debian/pool/main/m/mesos/$package
dpkg -i $package
-# NOTE: This appears to be a missing dependency of the mesos deb package and is needed
-# for the python mesos native bindings.
-sudo apt-get -y install libcurl4-nss-dev
-
systemctl start mesos-master
systemctl start mesos-slave
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-trusty/README.md
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-trusty/README.md b/test/deb/ubuntu-trusty/README.md
index 116ae8e..61cfeda 100644
--- a/test/deb/ubuntu-trusty/README.md
+++ b/test/deb/ubuntu-trusty/README.md
@@ -1,62 +1,36 @@
# Installing Aurora
-## Install packages
+## Testing packages
Two methods are described, one for installing locally built packages, the other
for installing released packages or release candidate packages.
+
### Locally built
- # Install vagrant scp
- vagrant plugin install vagrant-scp
+Run this from the toplevel repository:
- # Scp over the newly built packages
- for deb in ../../../artifacts/aurora-ubuntu-trusty/dist/*.deb; do
- vagrant scp $deb :$(basename $deb)
- done
+ ./test/test-artifact.sh test/deb/ubuntu-trusty /repo/artifacts/aurora-ubuntu-trusty/dist
- # Install each rpm
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- sudo dpkg -i *.deb
### Released
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- version=0.15.0
+Run this from the toplevel repository:
+
+ version=0.17.0
pkg_root="https://apache.bintray.com/aurora/ubuntu-trusty/"
+
for deb in \
aurora-scheduler_${version}_amd64.deb \
aurora-executor_${version}_amd64.deb \
aurora-tools_${version}_amd64.deb; do
- wget $pkg_root/$deb
- sudo dpkg -i $deb
- done
-## Initialize and start
-
-The scheduler and observer will automatically start when installed. However, the replicated log
-has to be initialized manually:
-
- sudo stop aurora-scheduler
- sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
- sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db
- sudo start aurora-scheduler
-
-To make the Thermos observer work, you will have to follow the instructions of our
-[Install Guide](https://github.com/apache/aurora/blob/master/docs/operations/installation.md#configuration).
+ wget $pkg_root/$deb -P artifacts/aurora-ubuntu-trusty/${version}
+ done
-## Create a job
+ ./test/test-artifact.sh test/deb/ubuntu-trusty /repo/artifacts/aurora-ubuntu-trusty/${version}
-```
-echo "
-task = SequentialTask(
- processes = [Process(name = 'hello', cmdline = 'echo hello')],
- resources = Resources(cpu = 0.5, ram = 128*MB, disk = 128*MB))
-jobs = [Service(
- task = task, cluster = 'example', role = 'vagrant', environment = 'prod', name = 'hello')]" > hello_world.aurora
-aurora job create example/vagrant/prod/hello hello_world.aurora
-```
## Troubleshooting
* Mesos: `/var/log/mesos`
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-trusty/Vagrantfile
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-trusty/Vagrantfile b/test/deb/ubuntu-trusty/Vagrantfile
index ed5ec8e..f050ef2 100644
--- a/test/deb/ubuntu-trusty/Vagrantfile
+++ b/test/deb/ubuntu-trusty/Vagrantfile
@@ -6,6 +6,9 @@ Vagrant.configure(2) do |config|
config.vm.hostname = "localhost"
+ # Mount the entire aurora-packaging folder at /repo
+ config.vm.synced_folder "../../../", "/repo"
+
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "4096"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-trusty/install-aurora.sh
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-trusty/install-aurora.sh b/test/deb/ubuntu-trusty/install-aurora.sh
new file mode 100755
index 0000000..ecff474
--- /dev/null
+++ b/test/deb/ubuntu-trusty/install-aurora.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+DIST_DIR=$1
+PACKAGES=$(ls $DIST_DIR/*.deb)
+
+if [ -z "$PACKAGES" ]
+ then
+ echo "No packages found to be installed. Aborting."
+ exit 1
+fi
+
+sudo dpkg -i $PACKAGES
+
+sudo stop aurora-scheduler
+sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
+sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db || true
+sudo start aurora-scheduler
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-trusty/provision.sh
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-trusty/provision.sh b/test/deb/ubuntu-trusty/provision.sh
index 123590e..1d48e49 100644
--- a/test/deb/ubuntu-trusty/provision.sh
+++ b/test/deb/ubuntu-trusty/provision.sh
@@ -2,17 +2,17 @@
add-apt-repository ppa:openjdk-r/ppa -y
apt-get update
-apt-get install -y openjdk-8-jre libcurl4-nss-dev libevent-dev libsvn1 zookeeperd
+apt-get install -y openjdk-8-jre zookeeperd
update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+# NOTE: This appears to be a missing dependency of the mesos deb package and is needed
+# for the python mesos native bindings.
+sudo apt-get -y install libcurl4-nss-dev libevent-dev libsvn1
+
package=mesos_1.1.0-2.0.107.ubuntu1404_amd64.deb
wget -c http://repos.mesosphere.com/ubuntu/pool/main/m/mesos/$package
dpkg -i $package
-# NOTE: This appears to be a missing dependency of the mesos deb package and is needed
-# for the python mesos native bindings.
-sudo apt-get -y install libcurl4-nss-dev
-
start mesos-master
start mesos-slave
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-xenial/README.md
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-xenial/README.md b/test/deb/ubuntu-xenial/README.md
index a5284ec..91c81f6 100644
--- a/test/deb/ubuntu-xenial/README.md
+++ b/test/deb/ubuntu-xenial/README.md
@@ -1,65 +1,36 @@
# Installing Aurora
-## Install packages
+## Testing packages
Two methods are described, one for installing locally built packages, the other
for installing released packages or release candidate packages.
+
### Locally built
- # Install vagrant scp
- vagrant plugin install vagrant-scp
+Run this from the toplevel repository:
- # Scp over the newly built packages
- for deb in ../../../artifacts/aurora-ubuntu-xenial/dist/*.deb; do
- vagrant scp $deb :$(basename $deb);
- done
+ ./test/test-artifact.sh test/deb/ubuntu-xenial /repo/artifacts/aurora-ubuntu-xenial/dist
- # Install each deb
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- sudo dpkg -i aurora*.deb thermos*.deb
### Released
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- version=0.15.0
+Run this from the toplevel repository:
+
+ version=0.17.0
pkg_root="https://apache.bintray.com/aurora/ubuntu-xenial/"
+
for deb in \
aurora-scheduler_${version}_amd64.deb \
aurora-executor_${version}_amd64.deb \
aurora-tools_${version}_amd64.deb; do
- wget $pkg_root/$deb
- sudo dpkg -i $deb
- done
-## Initialize and start
-
-The replicated log has to be initialized manually:
-
- # Stop services first
- sudo systemctl stop aurora-scheduler
- sudo systemctl stop thermos
-
- sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
- sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db
- sudo systemctl start aurora-scheduler
- sudo systemctl start thermos
-
-To make the Thermos observer work, you will have to follow the instructions of our
-[Install Guide](https://github.com/apache/aurora/blob/master/docs/operations/installation.md#configuration).
+ wget $pkg_root/$deb -P artifacts/aurora-ubuntu-xenial/${version}
+ done
-## Create a job
+ ./test/test-artifact.sh test/deb/ubuntu-xenial /repo/artifacts/aurora-ubuntu-xenial/${version}
-```
-echo "
-task = SequentialTask(
- processes = [Process(name = 'hello', cmdline = 'echo hello')],
- resources = Resources(cpu = 0.5, ram = 128*MB, disk = 128*MB))
-jobs = [Service(
- task = task, cluster = 'example', role = 'vagrant', environment = 'prod', name = 'hello')]" > hello_world.aurora
-aurora job create example/vagrant/prod/hello hello_world.aurora
-```
## Troubleshooting
* Mesos: `/var/log/mesos`
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-xenial/Vagrantfile
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-xenial/Vagrantfile b/test/deb/ubuntu-xenial/Vagrantfile
index 3ce6209..e8fa9ed 100644
--- a/test/deb/ubuntu-xenial/Vagrantfile
+++ b/test/deb/ubuntu-xenial/Vagrantfile
@@ -6,6 +6,9 @@ Vagrant.configure(2) do |config|
config.vm.hostname = "localhost"
+ # Mount the entire aurora-packaging folder at /repo
+ config.vm.synced_folder "../../../", "/repo"
+
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "4096"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-xenial/install-aurora.sh
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-xenial/install-aurora.sh b/test/deb/ubuntu-xenial/install-aurora.sh
new file mode 100755
index 0000000..b8ff606
--- /dev/null
+++ b/test/deb/ubuntu-xenial/install-aurora.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+DIST_DIR=$1
+PACKAGES=$(ls $DIST_DIR/*.deb)
+
+if [ -z "$PACKAGES" ]
+ then
+ echo "No packages found to be installed. Aborting."
+ exit 1
+fi
+
+sudo dpkg -i $PACKAGES
+
+sudo systemctl stop aurora-scheduler
+sudo systemctl stop thermos
+
+sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
+sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db || true
+sudo systemctl start aurora-scheduler
+sudo systemctl start thermos
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/deb/ubuntu-xenial/provision.sh
----------------------------------------------------------------------
diff --git a/test/deb/ubuntu-xenial/provision.sh b/test/deb/ubuntu-xenial/provision.sh
index eda79f6..ecdc0bd 100644
--- a/test/deb/ubuntu-xenial/provision.sh
+++ b/test/deb/ubuntu-xenial/provision.sh
@@ -9,7 +9,7 @@ update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
# Mesos dependencies
apt-get -y install libcurl3 libevent-dev libsvn1 libcurl4-nss-dev
-package=mesos_1.0.0-2.0.86.ubuntu1604_amd64.deb
+package=mesos_1.1.0-2.0.107.ubuntu1604_amd64.deb
wget -c http://repos.mesosphere.com/ubuntu/pool/main/m/mesos/$package
dpkg -i $package
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/rpm/centos-7/README.md
----------------------------------------------------------------------
diff --git a/test/rpm/centos-7/README.md b/test/rpm/centos-7/README.md
index 7fcd5a0..3f33d69 100644
--- a/test/rpm/centos-7/README.md
+++ b/test/rpm/centos-7/README.md
@@ -1,60 +1,35 @@
# Installing Aurora
-## Install packages
+## Testing packages
Two methods are described, one for installing locally built packages, the other
for installing released packages or release candidate packages.
+
### Locally built
- # Install vagrant scp
- vagrant plugin install vagrant-scp
+Run this from the toplevel repository:
- # Scp over the newly built packages
- for rpm in ../../../artifacts/aurora-centos-7/dist/rpmbuild/RPMS/x86_64/*.rpm; do
- vagrant scp $rpm :$(basename $rpm)
- done
+ ./test/test-artifact.sh test/rpm/centos-7 /repo/artifacts/aurora-centos-7/dist/rpmbuild/RPMS/x86_64
- # Install each rpm
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- sudo yum install -y *.rpm
### Released
- vagrant ssh -- -L8081:localhost:8081 -L1338:localhost:1338
- version=0.15.0
+Run this from the toplevel repository:
+
+ version=0.17.0
pkg_root="https://apache.bintray.com/aurora/centos-7/"
+
for rpm in \
aurora-scheduler-${version}-1.el7.centos.aurora.x86_64.rpm \
aurora-executor-${version}-1.el7.centos.aurora.x86_64.rpm \
aurora-tools-${version}-1.el7.centos.aurora.x86_64.rpm; do
- wget $pkg_root/$rpm
- sudo yum install -y $rpm
- done
-## Initialize and start
-
- sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
- sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db
- sudo systemctl start aurora-scheduler
- sudo systemctl start thermos
-
-To make the Thermos observer work, you will have to follow the instructions of our
-[Install Guide](https://github.com/apache/aurora/blob/master/docs/operations/installation.md#configuration).
-
-
-## Create a job
+ wget $pkg_root/$rpm -P artifacts/aurora-centos-7/${version}
+ done
-```
-echo "
-task = SequentialTask(
- processes = [Process(name = 'hello', cmdline = 'echo hello')],
- resources = Resources(cpu = 0.5, ram = 128*MB, disk = 128*MB))
-jobs = [Service(
- task = task, cluster = 'example', role = 'vagrant', environment = 'prod', name = 'hello')]" > hello_world.aurora
+ ./test/test-artifact.sh test/rpm/centos-7 /repo/artifacts/aurora-centos-7/${version}
-aurora job create example/vagrant/prod/hello hello_world.aurora
-```
## Troubleshooting
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/rpm/centos-7/Vagrantfile
----------------------------------------------------------------------
diff --git a/test/rpm/centos-7/Vagrantfile b/test/rpm/centos-7/Vagrantfile
index 5059b84..8342b09 100644
--- a/test/rpm/centos-7/Vagrantfile
+++ b/test/rpm/centos-7/Vagrantfile
@@ -6,6 +6,9 @@ Vagrant.configure(2) do |config|
config.vm.hostname = "localhost"
+ # Mount the entire aurora-packaging folder at /repo
+ config.vm.synced_folder "../../../", "/repo"
+
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "4096"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/rpm/centos-7/install-aurora.sh
----------------------------------------------------------------------
diff --git a/test/rpm/centos-7/install-aurora.sh b/test/rpm/centos-7/install-aurora.sh
new file mode 100755
index 0000000..b056ec5
--- /dev/null
+++ b/test/rpm/centos-7/install-aurora.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+DIST_DIR=$1
+PACKAGES=$(ls $DIST_DIR/*.rpm)
+
+if [ -z "$PACKAGES" ]
+ then
+ echo "No packages found to be installed. Aborting."
+ exit 1
+fi
+
+sudo yum install -y $PACKAGES
+
+sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
+sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db || true
+sudo systemctl start aurora-scheduler
+sudo systemctl start thermos
+
+# Ensure compatibility so that our test-aurora.sh script works on all distributions.
+sudo ln -sf /usr/bin/aurora_admin /usr/bin/aurora-admin
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/test-artifact.sh
----------------------------------------------------------------------
diff --git a/test/test-artifact.sh b/test/test-artifact.sh
new file mode 100755
index 0000000..6b527c9
--- /dev/null
+++ b/test/test-artifact.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+run_test() {
+ TEST_DIR=$1
+ DIST_DIR=$2
+
+ pushd $TEST_DIR
+ vagrant up --provision
+
+ # Install Aurora using the distribution specific install script
+ vagrant ssh -c "/vagrant/install-aurora.sh $DIST_DIR"
+
+ # Verify Aurora using the generic test script
+ vagrant ssh -c "/repo/test/test-aurora.sh" -- -L8081:localhost:8081 -L1338:localhost:1338
+
+ vagrant halt --force
+ popd
+}
+
+case $# in
+ 2)
+ run_test "$@"
+ ;;
+
+ *)
+ echo 'Usage to test a specific artifact:'
+ echo " $0 TEST_DIR DIST_DIR"
+ echo
+ echo 'Where TEST_DIR is any distribution subfolder with a Vagrantfile'
+ echo ' and where DIST_DIR is location within the Vagrant box where packages should be installed from.'
+ echo
+ echo 'Example:'
+ echo ' ./test/test-artifact.sh test/deb/ubuntu-trusty/ /repo/artifacts/aurora-ubuntu-trusty/dist'
+ exit 1
+ ;;
+esac
http://git-wip-us.apache.org/repos/asf/aurora-packaging/blob/b9d9fdb6/test/test-aurora.sh
----------------------------------------------------------------------
diff --git a/test/test-aurora.sh b/test/test-aurora.sh
new file mode 100755
index 0000000..465d149
--- /dev/null
+++ b/test/test-aurora.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+if [[ "$USER" != "vagrant" ]]; then
+ echo "This script is supposed to run within Vagrant in order to verify an Aurora installation."
+ exit 1
+fi
+
+set -u -e -x
+set -o pipefail
+
+readonly TEST_SLAVE_IP=127.0.0.1
+
+_curl() { curl --silent --fail --retry 4 --retry-delay 10 "$@" ; }
+
+
+tear_down() {
+ aurora job killall --no-batching example/vagrant/test/hello_world >/dev/null 2>&1
+}
+
+
+collect_result() {
+ set +x # Disable command echo, as this makes it more difficult see which command failed.
+ if [[ $RETCODE = 0 ]]
+ then
+ echo "OK (all tests passed)"
+ else
+ echo "!!! FAIL (something returned non-zero) for $BASH_COMMAND"
+ fi
+ # Attempt to clean up any state we left behind.
+ tear_down
+ exit $RETCODE
+}
+
+
+check_url_live() {
+ [[ $(curl -sL -w '%{http_code}' $1 -o /dev/null) == 200 ]]
+}
+
+
+test_create_job() {
+ echo "
+task = SequentialTask(
+ processes = [Process(name = 'hello', cmdline = 'echo hello; sleep 120')],
+ resources = Resources(cpu = 0.5, ram = 128*MB, disk = 128*MB))
+jobs = [Service(
+ task = task, cluster = 'example', role = 'vagrant', environment = 'test', name = 'hello_world')]" > hello_world.aurora
+
+ aurora job create example/vagrant/test/hello_world hello_world.aurora
+}
+
+
+test_job_status() {
+ local _cluster=$1 _role=$2 _env=$3 _job=$4
+ local _jobkey="$_cluster/$_role/$_env/$_job"
+
+ echo "== Checking job status"
+ aurora job list $_cluster/$_role/$_env | grep "$_jobkey"
+ aurora job status $_jobkey
+}
+
+
+test_scheduler_ui() {
+ local _role=$1 _env=$2 _job=$3
+
+ # Check that scheduler UI pages shown
+ base_url="$TEST_SLAVE_IP:8081"
+ check_url_live "$base_url/leaderhealth"
+ check_url_live "$base_url/scheduler"
+ check_url_live "$base_url/scheduler/$_role"
+ check_url_live "$base_url/scheduler/$_role/$_env/$_job"
+}
+
+
+test_observer_ui() {
+ local _cluster=$1 _role=$2 _job=$3
+
+ # Check the observer page
+ observer_url="$TEST_SLAVE_IP:1338"
+ check_url_live "$observer_url"
+
+ # Poll the observer, waiting for it to receive and show information about the task.
+ local _success=0
+ for i in $(seq 1 120); do
+ task_id=$(aurora-admin query -l '%taskId%' --shards=0 --states=RUNNING $_cluster $_role $_job)
+ if check_url_live "$observer_url/task/$task_id"; then
+ _success=1
+ break
+ else
+ sleep 1
+ fi
+ done
+
+ if [[ "$_success" -ne "1" ]]; then
+ echo "Observer task detail page is not available."
+ exit 1
+ fi
+}
+
+
+RETCODE=1
+trap collect_result EXIT
+
+test_create_job
+test_job_status example vagrant test hello_world
+test_scheduler_ui vagrant test hello_world
+test_observer_ui example vagrant hello_world
+
+RETCODE=0