diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2014-06-10 17:18:37 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2014-06-11 16:22:25 +0000 |
commit | cc059a443b1dbcd214075dcaf95d601e47ca655f (patch) | |
tree | 0f42c1b156a622612ed29fb9f9d4f0a26260ace7 | |
parent | 6063df929fb29d152b0b1b7fadf2f2c3dc7327c4 (diff) | |
download | definitions-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-x | kvm.check | 2 | ||||
-rwxr-xr-x | openstack.check | 2 | ||||
-rwxr-xr-x | rawdisk.check | 31 | ||||
-rwxr-xr-x | virtualbox-ssh.check | 2 |
4 files changed, 37 insertions, 0 deletions
@@ -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( |