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)
|
||||
return self.nets[uuid]
|
||||
|
||||
def define_domain(self, xml):
|
||||
self.vmm.defineXML(xml)
|
||||
|
||||
def restore(self, frm):
|
||||
status = self.vmm.restore(frm)
|
||||
if(status == 0):
|
||||
|
@ -60,6 +60,12 @@ class vmmDetails(gobject.GObject):
|
||||
topwin.hide()
|
||||
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-uuid").set_text(self.vm.get_uuid())
|
||||
|
||||
@ -316,12 +322,6 @@ class vmmDetails(gobject.GObject):
|
||||
if details.get_current_page() == 0:
|
||||
self.refresh_summary()
|
||||
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
|
||||
hw_list = self.window.get_widget("hw-list")
|
||||
hw_panel = self.window.get_widget("hw-panel")
|
||||
@ -412,7 +412,10 @@ class vmmDetails(gobject.GObject):
|
||||
if active[1] != None:
|
||||
netinfo = active[0].get_value(active[1], 3)
|
||||
self.window.get_widget("network-source-type").set_text(netinfo[0])
|
||||
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-mac-address").set_text(netinfo[3])
|
||||
|
||||
|
@ -91,7 +91,9 @@ class vmmDomain(gobject.GObject):
|
||||
return False
|
||||
|
||||
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)
|
||||
if os_type == "hvm":
|
||||
return True
|
||||
@ -526,11 +528,24 @@ class vmmDomain(gobject.GObject):
|
||||
return nics
|
||||
|
||||
def add_device(self, 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):
|
||||
if self.is_active():
|
||||
self.vm.detachDevice(xml)
|
||||
|
||||
# XXX remove from defined XML. Eek !
|
||||
|
||||
def set_vcpu_count(self, vcpus):
|
||||
vcpus = int(vcpus)
|
||||
self.vm.setVcpus(vcpus)
|
||||
|
Loading…
Reference in New Issue
Block a user