summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Firth <dan.firth@codethink.co.uk>2013-10-15 11:47:47 +0000
committerDaniel Firth <dan.firth@codethink.co.uk>2013-10-30 12:20:00 +0000
commite9b3dbbe18d9a465148cc8df494971054b87654a (patch)
treef14833385ddae3463a63f30eec753503772bfe29
parent6a315135ac6273c90f7dc35b7d4c49da158be487 (diff)
downloadmorph-e9b3dbbe18d9a465148cc8df494971054b87654a.tar.gz
Deploying a non-cluster morphology now displays an error message
-rw-r--r--morphlib/plugins/deploy_plugin.py4
-rw-r--r--yarns/deployment.yarn10
-rw-r--r--yarns/implementations.yarn9
3 files changed, 22 insertions, 1 deletions
diff --git a/morphlib/plugins/deploy_plugin.py b/morphlib/plugins/deploy_plugin.py
index 35bb2b6e..825b0124 100644
--- a/morphlib/plugins/deploy_plugin.py
+++ b/morphlib/plugins/deploy_plugin.py
@@ -274,6 +274,10 @@ class DeployPlugin(cliapp.Plugin):
root_repo_dir = self.other.find_repository(branch_dir, root_repo)
data = self.other.load_morphology(root_repo_dir, cluster)
+ if data['kind'] != 'cluster':
+ raise cliapp.AppException(
+ "Error: morph deploy is only supported for cluster"
+ " morphologies.")
for system in data['systems']:
self.deploy_system(system, env_vars)
diff --git a/yarns/deployment.yarn b/yarns/deployment.yarn
new file mode 100644
index 00000000..0fb3fb72
--- /dev/null
+++ b/yarns/deployment.yarn
@@ -0,0 +1,10 @@
+Morph Deployment Tests
+======================
+
+ SCENARIO deploying a non-cluster morphology
+ GIVEN a workspace
+ AND a git server
+ WHEN checking out the master system branch
+ AND attempting to deploy the system test-system in branch master
+ THEN morph failed
+ AND the deploy error message includes the string "morph deploy is only supported for cluster morphologies"
diff --git a/yarns/implementations.yarn b/yarns/implementations.yarn
index 7efff54e..22120130 100644
--- a/yarns/implementations.yarn
+++ b/yarns/implementations.yarn
@@ -453,10 +453,17 @@ Implementation sections for building
cd "$DATADIR/workspace/$MATCH_2"
attempt_morph build "$MATCH_1"
+Implementation sections for deployment
+======================================
+
+ IMPLEMENTS WHEN attempting to deploy the (system|cluster) (\S+) in branch (\S+)
+ cd "$DATADIR/workspace/$MATCH_3"
+ attempt_morph deploy "$MATCH_2"
+
Implementations sections for reading error messages
===================================================
- IMPLEMENTS THEN the (init|build|checkout|branch) error message includes the string "(.*)"
+ IMPLEMENTS THEN the (init|build|checkout|branch|deploy) error message includes the string "(.*)"
grep "$MATCH_2" "$DATADIR/result-$MATCH_1"
IMPLEMENTS for test file and directory handling