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(a)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