
Setup the bus for keyboard and mouse to 'usb' by default and prevent the sound configuration to be added for new Power guests. Signed-off-by: Paulo Vital <pvital@linux.vnet.ibm.com> --- src/kimchi/osinfo.py | 13 ++++++++----- src/kimchi/vmtemplate.py | 23 ++++++++++++++++++++++- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py index f92db3d..eff8070 100644 --- a/src/kimchi/osinfo.py +++ b/src/kimchi/osinfo.py @@ -32,21 +32,24 @@ SUPPORTED_ARCHS = {'x86': ('i386', 'x86_64'), 'power': ('ppc', 'ppc64')} common_spec = {'cpus': 1, 'cpu_cores': 1, 'cpu_threads': 1, 'memory': 1024, 'disks': [{'index': 0, 'size': 10}], 'cdrom_bus': 'ide', - 'cdrom_index': 2} + 'cdrom_index': 2, 'mouse_bus': 'ps2'} modern_spec = dict(common_spec, disk_bus='virtio', nic_model='virtio') template_specs = {'x86': {'old': dict(common_spec, disk_bus='ide', - nic_model='e1000'), + nic_model='e1000', sound_model= 'ich6'), 'modern': dict(common_spec, disk_bus='virtio', - nic_model='virtio')}, + nic_model='virtio', + sound_model= 'ich6')}, 'power': {'old': dict(common_spec, disk_bus='scsi', - nic_model='rtl8139', cdrom_bus='scsi'), + nic_model='rtl8139', cdrom_bus='scsi', + kbd_bus='usb', mouse_bus='usb'), 'modern': dict(common_spec, disk_bus='virtio', nic_model='virtio', - cdrom_bus='scsi')}} + cdrom_bus='scsi', kbd_bus='usb', + mouse_bus='usb')}} modern_version_bases = {'debian': '6.0', 'ubuntu': '7.10', 'opensuse': '10.3', diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py index 999473c..de52f40 100644 --- a/src/kimchi/vmtemplate.py +++ b/src/kimchi/vmtemplate.py @@ -241,11 +241,32 @@ class VMTemplate(object): networks += network % net_info return networks + def _get_input_output_xml(self): + sound = """ + <sound model='%(sound_model)s' /> + """ + mouse = """ + <input type='mouse' bus='%(mouse_bus)s'/> + """ + keyboard = """ + <input type='kbd' bus='%(kbd_bus)s'> </input> + """ + + input_output = "" + if 'mouse_bus' in self.info.keys(): + input_output += mouse % self.info + if 'kbd_bus' in self.info.keys(): + input_output += keyboard % self.info + if 'sound_model' in self.info.keys(): + input_output += sound % self.info + return input_output + def to_vm_xml(self, vm_name, vm_uuid, **kwargs): params = dict(self.info) params['name'] = vm_name params['uuid'] = vm_uuid params['networks'] = self._get_networks_xml() + params['input_output'] = self._get_input_output_xml() params['qemu-namespace'] = '' params['cdroms'] = '' params['qemu-stream-cmdline'] = '' @@ -294,7 +315,7 @@ class VMTemplate(object): %(cdroms)s %(networks)s %(graphics)s - <sound model='ich6' /> + %(input_output)s <memballoon model='virtio' /> </devices> </domain> -- 1.8.3.1