summaryrefslogtreecommitdiff
path: root/tests.deploy
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2013-08-16 09:00:35 +0000
committerTiago Gomes <tiago.gomes@codethink.co.uk>2013-08-16 13:05:18 +0000
commitf4b7013c4705dd74624efd0e3d6523c8e1938735 (patch)
treeb67f2867571c4615b4e6d4678cc1096f4a4556a7 /tests.deploy
parent10a788b3642608de1c0ecc7a41055f950c0652dd (diff)
downloadmorph-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-xtests.deploy/deploy-cluster.script46
-rwxr-xr-xtests.deploy/deploy-rawdisk-without-disk-size-fails.script2
-rwxr-xr-xtests.deploy/deploy-rawdisk.script4
-rwxr-xr-xtests.deploy/setup57
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
-