mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
Persist changes to device config when adding devices. Disable hotplug for dom0
This commit is contained in:
parent
d263695fa4
commit
f1e8204440
@ -254,6 +254,9 @@ class vmmConnection(gobject.GObject):
|
|||||||
self.emit("net-started", self.uri, uuid)
|
self.emit("net-started", self.uri, uuid)
|
||||||
return self.nets[uuid]
|
return self.nets[uuid]
|
||||||
|
|
||||||
|
def define_domain(self, xml):
|
||||||
|
self.vmm.defineXML(xml)
|
||||||
|
|
||||||
def restore(self, frm):
|
def restore(self, frm):
|
||||||
status = self.vmm.restore(frm)
|
status = self.vmm.restore(frm)
|
||||||
if(status == 0):
|
if(status == 0):
|
||||||
|
@ -60,6 +60,12 @@ class vmmDetails(gobject.GObject):
|
|||||||
topwin.hide()
|
topwin.hide()
|
||||||
topwin.set_title(self.vm.get_name() + " " + topwin.get_title())
|
topwin.set_title(self.vm.get_name() + " " + topwin.get_title())
|
||||||
|
|
||||||
|
# Don't allowing changing network/disks for Dom0
|
||||||
|
if self.vm.is_management_domain():
|
||||||
|
self.window.get_widget("add-hardware-button").set_sensitive(False)
|
||||||
|
else:
|
||||||
|
self.window.get_widget("add-hardware-button").set_sensitive(True)
|
||||||
|
|
||||||
self.window.get_widget("overview-name").set_text(self.vm.get_name())
|
self.window.get_widget("overview-name").set_text(self.vm.get_name())
|
||||||
self.window.get_widget("overview-uuid").set_text(self.vm.get_uuid())
|
self.window.get_widget("overview-uuid").set_text(self.vm.get_uuid())
|
||||||
|
|
||||||
@ -316,12 +322,6 @@ class vmmDetails(gobject.GObject):
|
|||||||
if details.get_current_page() == 0:
|
if details.get_current_page() == 0:
|
||||||
self.refresh_summary()
|
self.refresh_summary()
|
||||||
else:
|
else:
|
||||||
#XXX for this week this only works for active domains, and it's temporary.
|
|
||||||
if self.vm.is_active():
|
|
||||||
self.window.get_widget("add-hardware-button").set_sensitive(True)
|
|
||||||
else:
|
|
||||||
self.window.get_widget("add-hardware-button").set_sensitive(False)
|
|
||||||
|
|
||||||
# reload the hw model, go to the correct page, and refresh that page
|
# reload the hw model, go to the correct page, and refresh that page
|
||||||
hw_list = self.window.get_widget("hw-list")
|
hw_list = self.window.get_widget("hw-list")
|
||||||
hw_panel = self.window.get_widget("hw-panel")
|
hw_panel = self.window.get_widget("hw-panel")
|
||||||
@ -412,7 +412,10 @@ class vmmDetails(gobject.GObject):
|
|||||||
if active[1] != None:
|
if active[1] != None:
|
||||||
netinfo = active[0].get_value(active[1], 3)
|
netinfo = active[0].get_value(active[1], 3)
|
||||||
self.window.get_widget("network-source-type").set_text(netinfo[0])
|
self.window.get_widget("network-source-type").set_text(netinfo[0])
|
||||||
self.window.get_widget("network-source-device").set_text(netinfo[1])
|
if netinfo[1] is not None:
|
||||||
|
self.window.get_widget("network-source-device").set_text(netinfo[1])
|
||||||
|
else:
|
||||||
|
self.window.get_widget("network-source-device").set_text("-")
|
||||||
self.window.get_widget("network-target-device").set_text(netinfo[2])
|
self.window.get_widget("network-target-device").set_text(netinfo[2])
|
||||||
self.window.get_widget("network-mac-address").set_text(netinfo[3])
|
self.window.get_widget("network-mac-address").set_text(netinfo[3])
|
||||||
|
|
||||||
|
@ -91,7 +91,9 @@ class vmmDomain(gobject.GObject):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def is_hvm(self):
|
def is_hvm(self):
|
||||||
os_type = self.vm.OSType()
|
os_type = self.get_xml_string("/domain/os/type")
|
||||||
|
# XXX libvirt bug - doesn't work for inactive guests
|
||||||
|
#os_type = self.vm.OSType()
|
||||||
logging.debug("OS Type: %s" % os_type)
|
logging.debug("OS Type: %s" % os_type)
|
||||||
if os_type == "hvm":
|
if os_type == "hvm":
|
||||||
return True
|
return True
|
||||||
@ -526,10 +528,23 @@ class vmmDomain(gobject.GObject):
|
|||||||
return nics
|
return nics
|
||||||
|
|
||||||
def add_device(self, xml):
|
def add_device(self, xml):
|
||||||
self.vm.attachDevice(xml)
|
if self.is_active():
|
||||||
|
self.vm.attachDevice(xml)
|
||||||
|
|
||||||
|
vmxml = self.vm.XMLDesc(0)
|
||||||
|
|
||||||
|
index = vmxml.find("</devices>")
|
||||||
|
newxml = vmxml[0:index] + xml + vmxml[index:]
|
||||||
|
|
||||||
|
logging.debug("Redefine with " + newxml)
|
||||||
|
|
||||||
|
self.get_connection().define_domain(newxml)
|
||||||
|
|
||||||
def remove_device(self, xml):
|
def remove_device(self, xml):
|
||||||
self.vm.detachDevice(xml)
|
if self.is_active():
|
||||||
|
self.vm.detachDevice(xml)
|
||||||
|
|
||||||
|
# XXX remove from defined XML. Eek !
|
||||||
|
|
||||||
def set_vcpu_count(self, vcpus):
|
def set_vcpu_count(self, vcpus):
|
||||||
vcpus = int(vcpus)
|
vcpus = int(vcpus)
|
||||||
|
Loading…
Reference in New Issue
Block a user