summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-06-10 17:18:37 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-06-11 16:22:25 +0000
commitcc059a443b1dbcd214075dcaf95d601e47ca655f (patch)
tree0f42c1b156a622612ed29fb9f9d4f0a26260ace7
parent6063df929fb29d152b0b1b7fadf2f2c3dc7327c4 (diff)
downloaddefinitions-cc059a443b1dbcd214075dcaf95d601e47ca655f.tar.gz
Check for presence of btrfs before trying to use it
If btrfs is not present in the kernel we end up with strange output like this: Error creating disk image2014-06-10 16:00:40 [devel-system-x86_64-generic][my-raw-disk-image][rawdisk.write]Failure to create disk image at /src/tmp/testdev.img ERROR: Command failed: mount -o loop /src/tmp/testdev.img /src/tmp/deployments/tmpQ7wXO1/tmp4lVDcu/tmpvHSzDE mount: mounting /dev/loop0 on /src/tmp/deployments/tmpQ7wXO1/tmp4lVDcu/tmpvHSzDE failed: Device or resource busy To avoid this confusing error, Morph should explicitly check first.
-rwxr-xr-xkvm.check2
-rwxr-xr-xopenstack.check2
-rwxr-xr-xrawdisk.check31
-rwxr-xr-xvirtualbox-ssh.check2
4 files changed, 37 insertions, 0 deletions
diff --git a/kvm.check b/kvm.check
index 957d0893..1bb4007a 100755
--- a/kvm.check
+++ b/kvm.check
@@ -31,6 +31,8 @@ class KvmPlusSshCheckExtension(morphlib.writeexts.WriteExtension):
if len(args) != 1:
raise cliapp.AppException('Wrong number of command line args')
+ self.require_btrfs_in_deployment_host_kernel()
+
upgrade = self.get_environment_boolean('UPGRADE')
if upgrade:
raise cliapp.AppException(
diff --git a/openstack.check b/openstack.check
index a9a8fe1b..b5173011 100755
--- a/openstack.check
+++ b/openstack.check
@@ -26,6 +26,8 @@ class OpenStackCheckExtension(morphlib.writeexts.WriteExtension):
if len(args) != 1:
raise cliapp.AppException('Wrong number of command line args')
+ self.require_btrfs_in_deployment_host_kernel()
+
upgrade = self.get_environment_boolean('UPGRADE')
if upgrade:
raise cliapp.AppException(
diff --git a/rawdisk.check b/rawdisk.check
new file mode 100755
index 00000000..6a656ee7
--- /dev/null
+++ b/rawdisk.check
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+# Copyright (C) 2014 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.
+
+'''Preparatory checks for Morph 'rawdisk' write extension'''
+
+import cliapp
+
+import morphlib.writeexts
+
+
+class RawdiskCheckExtension(morphlib.writeexts.WriteExtension):
+ def process_args(self, args):
+ if len(args) != 1:
+ raise cliapp.AppException('Wrong number of command line args')
+
+ self.require_btrfs_in_deployment_host_kernel()
+
+RawdiskCheckExtension().run()
diff --git a/virtualbox-ssh.check b/virtualbox-ssh.check
index 1aeb8999..57d54db1 100755
--- a/virtualbox-ssh.check
+++ b/virtualbox-ssh.check
@@ -26,6 +26,8 @@ class VirtualBoxPlusSshCheckExtension(morphlib.writeexts.WriteExtension):
if len(args) != 1:
raise cliapp.AppException('Wrong number of command line args')
+ self.require_btrfs_in_deployment_host_kernel()
+
upgrade = self.get_environment_boolean('UPGRADE')
if upgrade:
raise cliapp.AppException(