summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-02-17 15:36:56 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-03-04 13:17:06 +0000
commitd2168a0fe0bc7f05caaeaf81681d0c3d17731e14 (patch)
tree6f8ea1e234ddc0b644aa35c72d79e88d0222e655
parent976db9042d851de2c70e2719c32f611d68681209 (diff)
downloadmorph-d2168a0fe0bc7f05caaeaf81681d0c3d17731e14.tar.gz
Make parse_autostart() into more general get_environment_boolean()
Also, be more flexible when parsing environment booleans -- convert to lower case and match 0/1 and true/false as well as yes/no.
-rwxr-xr-xmorphlib/exts/kvm.write4
-rwxr-xr-xmorphlib/exts/rawdisk.write2
-rwxr-xr-xmorphlib/exts/virtualbox-ssh.write2
-rw-r--r--morphlib/writeexts.py14
4 files changed, 11 insertions, 11 deletions
diff --git a/morphlib/exts/kvm.write b/morphlib/exts/kvm.write
index 4f877c22..94560972 100755
--- a/morphlib/exts/kvm.write
+++ b/morphlib/exts/kvm.write
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2012-2013 Codethink Limited
+# Copyright (C) 2012-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
@@ -56,7 +56,7 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension):
temp_root, location = args
ssh_host, vm_name, vm_path = self.parse_location(location)
- autostart = self.parse_autostart()
+ autostart = self.get_environment_boolean('AUTOSTART')
fd, raw_disk = tempfile.mkstemp()
os.close(fd)
diff --git a/morphlib/exts/rawdisk.write b/morphlib/exts/rawdisk.write
index 1b4d58c0..bde9d67d 100755
--- a/morphlib/exts/rawdisk.write
+++ b/morphlib/exts/rawdisk.write
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2012-2013 Codethink Limited
+# Copyright (C) 2012-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
diff --git a/morphlib/exts/virtualbox-ssh.write b/morphlib/exts/virtualbox-ssh.write
index 204b2447..2a2f3f7b 100755
--- a/morphlib/exts/virtualbox-ssh.write
+++ b/morphlib/exts/virtualbox-ssh.write
@@ -62,7 +62,7 @@ class VirtualBoxPlusSshWriteExtension(morphlib.writeexts.WriteExtension):
temp_root, location = args
ssh_host, vm_name, vdi_path = self.parse_location(location)
- autostart = self.parse_autostart()
+ autostart = self.get_environment_boolean('AUTOSTART')
fd, raw_disk = tempfile.mkstemp()
os.close(fd)
diff --git a/morphlib/writeexts.py b/morphlib/writeexts.py
index a07c697f..1849f406 100644
--- a/morphlib/writeexts.py
+++ b/morphlib/writeexts.py
@@ -402,14 +402,14 @@ class WriteExtension(cliapp.Application):
return value == 'yes'
- def parse_autostart(self):
- '''Parse $AUTOSTART to determine if VMs should be started.'''
+ def get_environment_boolean(self, variable):
+ '''Parse a yes/no boolean passed through the environment.'''
- autostart = os.environ.get('AUTOSTART', 'no')
- if autostart == 'no':
+ value = os.environ.get(variable, 'no').lower()
+ if value in ['no', '0', 'false']:
return False
- elif autostart == 'yes':
+ elif value in ['yes', '1', 'true']:
return True
else:
- raise cliapp.AppException('Unexpected value for AUTOSTART: %s' %
- autostart)
+ raise cliapp.AppException('Unexpected value for %s: %s' %
+ (variable, value))