virt-manager/virtman-device-flags.diff
Charles Arnold 6505c36ecc - Upstream bug fixes
virtman-netstats-fix.diff                                                           
  virtman-finish-button-fix.diff                                                      
  virtman-shutoff-fix.diff                                                            
  virtman-set-has-window-fix.diff                                                     
  virtman-grep-fix.diff                                                               
  virtman-no-cd-present-fix.diff                                                      
  virtman-resize-menu-fix.diff                                                        
  virtman-vcpu-count-fix.diff                                                         
  virtman-storage-pool-fix.diff                                                       
  virtman-domain-name-fix.diff                                                        
  virtman-unapplied-changes-fix.diff                                                  
  virtman-details-fix.diff                                                            
  virtman-delete-fix.diff                                                             
  virtman-collidelist-fix.diff                                                        
  virtman-char-device-mode-fix.diff                                                   
  virtinst-hv-version-fix.diff                                                        
  virtinst-initrd-inject-fix.diff                                                     
  virtinst-initrd-inject2-fix.diff                                                    
  virtinst-no-volume-fix.diff                                                         
  virtinst-prompts-fix.diff                                                           
  virtinst-cpu-model-name-fix.diff                                                    
  virtinst-xml-clear-fix.diff                                                         
  virtinst-remote-storage-fix.diff                                                    
  virtinst-error-message-fix.diff                                                     
  virtinst-typo-fix.diff                                                              
  virtinst-cdrom.diff                                                                 
  virtinst-storage-ocfs2.diff

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=63
2011-09-21 16:55:07 +00:00

72 lines
3.0 KiB
Diff

Index: virt-manager-0.9.0/src/virtManager/addhardware.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/addhardware.py
+++ virt-manager-0.9.0/src/virtManager/addhardware.py
@@ -1021,6 +1021,18 @@ class vmmAddHardware(vmmGObjectUI):
self._dev.get_xml_config()
logging.debug("Adding device:\n" + self._dev.get_xml_config())
+ # If vm is active, Try to hotplug the device and modify persistent
+ # config in one go
+ if self.vm.is_active():
+ try:
+ self.vm.attach_device_flags(self._dev, 3)
+ return (False, None)
+ except Exception, e:
+ logging.debug("Could not hotplug device and modify persistent "
+ "config at the same time: %s" % str(e))
+ logging.debug("Trying the operations seperately ...")
+
+ # Try hotplug then modify persistent config
# Hotplug device
attach_err = False
try:
Index: virt-manager-0.9.0/src/virtManager/details.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/details.py
+++ virt-manager-0.9.0/src/virtManager/details.py
@@ -2245,6 +2245,17 @@ class vmmDetails(vmmGObjectUI):
text1=(_("Are you sure you want to remove this device?"))):
return
+ # If vm is running, try to hot remove the device and modify
+ # persistent config in one go
+ if self.vm.is_active():
+ try:
+ self.vm.detach_device_flags(dev_type, dev_id_info, 3)
+ return
+ except Exception, e:
+ logging.debug("Could not hot remove device and modify "
+ "persistent config at the same time: %s" % str(e))
+ logging.debug("Trying the operations seperately ...")
+
# Define the change
try:
self.vm.remove_device(dev_id_info)
Index: virt-manager-0.9.0/src/virtManager/domain.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/domain.py
+++ virt-manager-0.9.0/src/virtManager/domain.py
@@ -697,6 +697,10 @@ class vmmDomain(vmmLibvirtObject):
devxml = devobj.get_xml_config()
self._backend.attachDevice(devxml)
+ def attach_device_flags(self, devobj, flags):
+ xml = devobj.get_xml_config()
+ self._backend.attachDeviceFlags(xml, flags)
+
def detach_device(self, devobj):
"""
Hotunplug device from running guest
@@ -715,6 +719,10 @@ class vmmDomain(vmmLibvirtObject):
xml = devobj.get_xml_config()
self._backend.updateDeviceFlags(xml, flags)
+ def detach_device_flags(self, devtype, dev_id_info, flags):
+ xml = self._get_device_xml(devtype, dev_id_info)
+ self._backend.detachDeviceFlags(xml, flags)
+
def hotplug_vcpus(self, vcpus):
vcpus = int(vcpus)
if vcpus != self.vcpu_count():