mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
host: Add 'error' page for virtual net and storage
Display a proper error if connection doesn't support network or storage management.
This commit is contained in:
@@ -156,6 +156,8 @@ class vmmHost(gobject.GObject):
|
||||
|
||||
|
||||
def init_net_state(self):
|
||||
self.window.get_widget("network-pages").set_show_tabs(False)
|
||||
|
||||
# [ unique, label, icon name, icon size, is_active ]
|
||||
netListModel = gtk.ListStore(str, str, str, int, bool)
|
||||
self.window.get_widget("net-list").set_model(netListModel)
|
||||
@@ -175,7 +177,14 @@ class vmmHost(gobject.GObject):
|
||||
|
||||
self.populate_networks(netListModel)
|
||||
|
||||
if not self.conn.network_capable:
|
||||
self.set_net_error_page(
|
||||
_("Libvirt connection does not support virtual network "
|
||||
"management."))
|
||||
|
||||
def init_storage_state(self):
|
||||
self.window.get_widget("storage-pages").set_show_tabs(False)
|
||||
|
||||
self.volmenu = gtk.Menu()
|
||||
volCopyPath = gtk.ImageMenuItem(_("Copy Volume Path"))
|
||||
volCopyImage = gtk.Image()
|
||||
@@ -216,6 +225,10 @@ class vmmHost(gobject.GObject):
|
||||
populate_storage_pools(self.window.get_widget("pool-list"),
|
||||
self.conn)
|
||||
|
||||
if not self.conn.storage_capable:
|
||||
self.set_storage_error_page(
|
||||
_("Libvirt connection does not support storage management."))
|
||||
|
||||
def init_interface_state(self):
|
||||
self.window.get_widget("interface-pages").set_show_tabs(False)
|
||||
|
||||
@@ -264,7 +277,7 @@ class vmmHost(gobject.GObject):
|
||||
|
||||
if not self.conn.interface_capable:
|
||||
self.set_interface_error_page(
|
||||
_("Libvirt connection does not have interface support."))
|
||||
_("Libvirt connection does not support interface management."))
|
||||
|
||||
def init_conn_state(self):
|
||||
uri = self.conn.get_uri()
|
||||
@@ -437,13 +450,20 @@ class vmmHost(gobject.GObject):
|
||||
if curruuid == uuid:
|
||||
self.net_selected(sel)
|
||||
|
||||
def set_net_error_page(self, msg):
|
||||
self.reset_net_state()
|
||||
self.window.get_widget("network-pages").set_current_page(1)
|
||||
self.window.get_widget("network-error-label").set_text(msg)
|
||||
|
||||
def net_selected(self, src):
|
||||
selected = src.get_selected()
|
||||
if selected[1] == None or \
|
||||
selected[0].get_value(selected[1], 0) == None:
|
||||
self.reset_net_state()
|
||||
self.set_net_error_page(_("No virtual network selected."))
|
||||
return
|
||||
|
||||
self.window.get_widget("network-pages").set_current_page(0)
|
||||
|
||||
net = self.conn.get_net(selected[0].get_value(selected[1], 0))
|
||||
active = net.is_active()
|
||||
selected[0].set_value(selected[1], 4, bool(active))
|
||||
@@ -657,13 +677,20 @@ class vmmHost(gobject.GObject):
|
||||
_("Never"))
|
||||
self.window.get_widget("pool-apply").set_sensitive(True)
|
||||
|
||||
def set_storage_error_page(self, msg):
|
||||
self.reset_pool_state()
|
||||
self.window.get_widget("storage-pages").set_current_page(1)
|
||||
self.window.get_widget("storage-error-label").set_text(msg)
|
||||
|
||||
def pool_selected(self, src):
|
||||
selected = src.get_selected()
|
||||
if selected[1] is None or \
|
||||
selected[0].get_value(selected[1], 0) is None:
|
||||
self.reset_pool_state()
|
||||
self.set_storage_error_page(_("No storage pool selected."))
|
||||
return
|
||||
|
||||
self.window.get_widget("storage-pages").set_current_page(0)
|
||||
|
||||
uuid = selected[0].get_value(selected[1], 0)
|
||||
pool = self.conn.get_pool(uuid)
|
||||
auto = pool.get_autostart()
|
||||
|
||||
1058
src/vmm-host.glade
1058
src/vmm-host.glade
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user