diff options
author | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2013-08-16 09:00:35 +0000 |
---|---|---|
committer | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2013-08-16 13:05:18 +0000 |
commit | f4b7013c4705dd74624efd0e3d6523c8e1938735 (patch) | |
tree | b67f2867571c4615b4e6d4678cc1096f4a4556a7 /tests.deploy | |
parent | 10a788b3642608de1c0ecc7a41055f950c0652dd (diff) | |
download | morph-f4b7013c4705dd74624efd0e3d6523c8e1938735.tar.gz |
Rework `morph deploy` to work with cluster morphologies.
From now on, `morph deploy` will work to only accept a cluster
morphology as argument. A cluster morphology defines a list of
systems to built, and for each system a list of ways to deploy
them. We will not support the old syntax anymore.
- Update `morph deploy` docstring with the new syntax, including
an explanation of cluster morphologies (also document `tar`
deployments).
- Fix tests that used the old syntax.
- Add tests for cluster deployments.
Diffstat (limited to 'tests.deploy')
-rwxr-xr-x | tests.deploy/deploy-cluster.script | 46 | ||||
-rwxr-xr-x | tests.deploy/deploy-rawdisk-without-disk-size-fails.script | 2 | ||||
-rwxr-xr-x | tests.deploy/deploy-rawdisk.script | 4 | ||||
-rwxr-xr-x | tests.deploy/setup | 57 |
4 files changed, 105 insertions, 4 deletions
diff --git a/tests.deploy/deploy-cluster.script b/tests.deploy/deploy-cluster.script new file mode 100755 index 00000000..917ac717 --- /dev/null +++ b/tests.deploy/deploy-cluster.script @@ -0,0 +1,46 @@ +#!/bin/bash +# +# Copyright (C) 2013 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +# Test "morph deploy" by deploying the systems in cluster morphology. + + +set -eu + + +. "$SRCDIR/tests.deploy/setup-build" + +cd "$DATADIR/workspace/branch1" + +"$SRCDIR/scripts/test-morph" build hello-system + +"$SRCDIR/scripts/test-morph" build linux-system + +"$SRCDIR/scripts/test-morph" --log "$DATADIR/deploy.log" \ + deploy test_cluster \ + linux-system-2.HOSTNAME="baserock-rocks-even-more" \ + > /dev/null + +test -e hello-system.img +test -e linux-system-1.tar +test -e linux-system-2.tar + +hostname1=$(tar -xf linux-system-1.tar ./etc/hostname -O) +hostname2=$(tar -xf linux-system-2.tar ./etc/hostname -O) + +[ "$hostname1" = baserock-rocks ] +[ "$hostname2" = baserock-rocks-even-more ] diff --git a/tests.deploy/deploy-rawdisk-without-disk-size-fails.script b/tests.deploy/deploy-rawdisk-without-disk-size-fails.script index 94084a5c..035557dd 100755 --- a/tests.deploy/deploy-rawdisk-without-disk-size-fails.script +++ b/tests.deploy/deploy-rawdisk-without-disk-size-fails.script @@ -25,6 +25,6 @@ set -eu cd "$DATADIR/workspace/branch1" "$SRCDIR/scripts/test-morph" build linux-system ! "$SRCDIR/scripts/test-morph" --log "$DATADIR/deploy.log" \ - deploy rawdisk linux-system "$DATADIR/disk.img" > /dev/null 2>&1 + deploy rawdisk_test_cluster_without_disk_size > /dev/null 2>&1 test ! -e "$DATADIR/disk.img" diff --git a/tests.deploy/deploy-rawdisk.script b/tests.deploy/deploy-rawdisk.script index bead945b..ebda50c7 100755 --- a/tests.deploy/deploy-rawdisk.script +++ b/tests.deploy/deploy-rawdisk.script @@ -26,6 +26,6 @@ set -eu cd "$DATADIR/workspace/branch1" "$SRCDIR/scripts/test-morph" build linux-system "$SRCDIR/scripts/test-morph" --log "$DATADIR/deploy.log" \ - deploy rawdisk linux-system "$DATADIR/disk.img" DISK_SIZE=1G > /dev/null -test -e "$DATADIR/disk.img" + deploy rawdisk_test_cluster > /dev/null +test -e disk.img diff --git a/tests.deploy/setup b/tests.deploy/setup index 584ce039..88488a91 100755 --- a/tests.deploy/setup +++ b/tests.deploy/setup @@ -166,11 +166,67 @@ cat <<EOF > linux-system.morph "repo": "test:morphs", "ref": "master" } + ], + "configuration-extensions": [ + set-hostname ] + } EOF git add linux-system.morph + +cat <<EOF > rawdisk_test_cluster.morph +name: rawdisk_test_cluster +kind: cluster +systems: + - morph: linux-system + deploy: + linux-system-1: + type: rawdisk + location: disk.img + DISK_SIZE: 1G +EOF +git add rawdisk_test_cluster.morph + +cat <<EOF > rawdisk_test_cluster_without_disk_size.morph +name: rawdisk_test_cluster_without_disk_size +kind: cluster +systems: + - morph: linux-system + deploy: + linux-system-1: + type: rawdisk + location: disk.img +EOF +git add rawdisk_test_cluster_without_disk_size.morph + +cat <<EOF > test_cluster.morph +name: test_cluster +kind: cluster +systems: + - morph: hello-system + deploy-defaults: + type: tar + deploy: + hello-system: + type: rawdisk + location: hello-system.img + DISK_SIZE: 1G + - morph: linux-system + deploy-defaults: + HOSTNAME: "baserock-rocks" + deploy: + linux-system-1: + type: tar + location: linux-system-1.tar + linux-system-2: + type: tar + location: linux-system-2.tar +EOF +git add test_cluster.morph + + git commit --quiet -m "add morphs" # Make a dummy kernel chunk. @@ -202,4 +258,3 @@ no-distcc = true quiet = true log = /tmp/morph.log EOF - |