From 429f08e8cbddd4f108ab125b44c5eb7b7bba3e09 Mon Sep 17 00:00:00 2001 From: Tiago Gomes Date: Tue, 2 Jul 2013 07:24:30 +0000 Subject: Allow to set the number of cpus for virtualbox and kvm deployments. --- morphlib/exts/kvm.write | 7 +++++-- morphlib/exts/virtualbox-ssh.write | 5 ++++- morphlib/writeexts.py | 4 ++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/morphlib/exts/kvm.write b/morphlib/exts/kvm.write index 67ac40e7..9a6be135 100755 --- a/morphlib/exts/kvm.write +++ b/morphlib/exts/kvm.write @@ -113,8 +113,11 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension): ram_mebibytes = str(self.get_ram_size() / (1024**2)) - cmdline = ['virt-install', '--connect', 'qemu:///system', '--import', - '--name', vm_name, '--vnc', '--ram=%s' % ram_mebibytes, + vcpu_count = str(self.get_vcpu_count()) + + cmdline = ['virt-install', '--connect', 'qemu:///system', + '--import', '--name', vm_name, '--vnc', + '--ram', ram_mebibytes, '--vcpus', vcpu_count, '--disk', 'path=%s,bus=ide' % vm_path] + attach_opts if not autostart: cmdline += ['--noreboot'] diff --git a/morphlib/exts/virtualbox-ssh.write b/morphlib/exts/virtualbox-ssh.write index 3ee2eae0..1abe233e 100755 --- a/morphlib/exts/virtualbox-ssh.write +++ b/morphlib/exts/virtualbox-ssh.write @@ -113,12 +113,15 @@ class VirtualBoxPlusSshWriteExtension(morphlib.writeexts.WriteExtension): ram_mebibytes = str(self.get_ram_size() / (1024**2)) + vcpu_count = str(self.get_vcpu_count()) + hostonly_iface = self.get_host_interface(ssh_host) commands = [ ['createvm', '--name', vm_name, '--ostype', 'Linux26_64', '--register'], - ['modifyvm', vm_name, '--ioapic', 'on', '--memory', ram_mebibytes, + ['modifyvm', vm_name, '--ioapic', 'on', + '--memory', ram_mebibytes, '--cpus', vcpu_count, '--nic1', 'hostonly', '--hostonlyadapter1', hostonly_iface, '--nic2', 'nat', '--natnet2', 'default'], ['storagectl', vm_name, '--name', '"SATA Controller"', diff --git a/morphlib/writeexts.py b/morphlib/writeexts.py index 410b8c9f..2a54d757 100644 --- a/morphlib/writeexts.py +++ b/morphlib/writeexts.py @@ -124,6 +124,10 @@ class WriteExtension(cliapp.Application): '''Parse RAM size from environment.''' return self._parse_size_from_environment('RAM_SIZE', '1G') + def get_vcpu_count(self): + '''Parse the virtual cpu count from environment.''' + return self._parse_size_from_environment('VCPUS', '1') + def create_state(self, real_root): '''Create the state subvolumes that are shared between versions''' -- cgit v1.2.1