summaryrefslogtreecommitdiff
path: root/kvm.write
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2013-05-08 17:04:45 +0100
committerTiago Gomes <tiago.gomes@codethink.co.uk>2013-05-08 16:54:17 +0000
commit937544ac7a370f433eda4240148a33c64ff43c56 (patch)
treef23fc8544e67ef6eece737d1f9f1697a9c00f17b /kvm.write
parente1ceaaf5547d4ea030fbe0dee5f46aab67c974de (diff)
downloaddefinitions-937544ac7a370f433eda4240148a33c64ff43c56.tar.gz
Add AUTOSTART to kvm and libvirt write extensions
If AUTOSTART is 'yes' then the VM will be started once it is created. If it is 'no' or undefined, then it will need to be manually started. If it is any other value, then an exception is raised.
Diffstat (limited to 'kvm.write')
-rwxr-xr-xkvm.write19
1 files changed, 10 insertions, 9 deletions
diff --git a/kvm.write b/kvm.write
index 630f6ae7..e2f7435c 100755
--- a/kvm.write
+++ b/kvm.write
@@ -56,6 +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()
fd, raw_disk = tempfile.mkstemp()
os.close(fd)
@@ -63,7 +64,7 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension):
try:
self.transfer(raw_disk, ssh_host, vm_path)
- self.create_libvirt_guest(ssh_host, vm_name, vm_path)
+ self.create_libvirt_guest(ssh_host, vm_name, vm_path, autostart)
except BaseException:
sys.stderr.write('Error deploying to libvirt')
os.remove(raw_disk)
@@ -95,7 +96,7 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension):
with open(raw_disk, 'rb') as f:
cliapp.runcmd(['rsync', '-zS', raw_disk, target])
- def create_libvirt_guest(self, ssh_host, vm_name, vm_path):
+ def create_libvirt_guest(self, ssh_host, vm_name, vm_path, autostart):
'''Create the libvirt virtual machine.'''
self.status(msg='Creating libvirt/kvm virtual machine')
@@ -107,13 +108,13 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension):
ram_mebibytes = str(self.get_ram_size() / (1024**2))
- cliapp.runcmd(
- ['ssh', ssh_host,
- 'virt-install', '--connect qemu:///system', '--import',
- '--name', vm_name, '--vnc', '--noreboot',
- '--ram=%s' % ram_mebibytes,
- '--disk path=%s,bus=ide' % vm_path] +
- attach_opts)
+ cmdline = ['ssh', ssh_host,
+ 'virt-install', '--connect qemu:///system', '--import',
+ '--name', vm_name, '--vnc', '--ram=%s' % ram_mebibytes,
+ '--disk path=%s,bus=ide' % vm_path] + attach_opts
+ if not autostart:
+ cmdline += '--noreboot'
+ cliapp.runcmd(cmdline)
KvmPlusSshWriteExtension().run()