mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
Change build option defaults, warn if operation will be destructive.
This commit is contained in:
parent
0a8ba03474
commit
a2f76419d7
@ -113,6 +113,7 @@ class vmmCreatePool(gobject.GObject):
|
||||
self.window.get_widget("pool-source-path").set_text("")
|
||||
self.window.get_widget("pool-hostname").set_text("")
|
||||
self.window.get_widget("pool-format").set_active(-1)
|
||||
self.window.get_widget("pool-build").set_sensitive(True)
|
||||
self.window.get_widget("pool-build").set_active(False)
|
||||
|
||||
|
||||
@ -195,6 +196,25 @@ class vmmCreatePool(gobject.GObject):
|
||||
return model.get_value(format_combo.get_active_iter(), 0)
|
||||
return None
|
||||
|
||||
def get_build_default(self):
|
||||
""" Return (default value, whether build option can be changed)"""
|
||||
if not self._pool:
|
||||
return (False, False)
|
||||
if self._pool.type in [Storage.StoragePool.TYPE_DIR,
|
||||
Storage.StoragePool.TYPE_FS,
|
||||
Storage.StoragePool.TYPE_NETFS ]:
|
||||
# Building for these simply entails creating a directory
|
||||
return (True, False)
|
||||
elif self._pool.type in [Storage.StoragePool.TYPE_LOGICAL]:
|
||||
# Build not yet implemented in virtinst
|
||||
return (False, False)
|
||||
elif self._pool.type in [Storage.StoragePool.TYPE_DISK]:
|
||||
# This is a dangerous operation, anything (False, True)
|
||||
# should be assumed to be one.
|
||||
return (False, True)
|
||||
else:
|
||||
return (False, False)
|
||||
|
||||
|
||||
def browse_source_path(self, ignore1=None):
|
||||
source = self._browse_file(_("Choose source path"),
|
||||
@ -265,6 +285,7 @@ class vmmCreatePool(gobject.GObject):
|
||||
|
||||
logging.debug("Starting backround pool creation.")
|
||||
build = self.window.get_widget("pool-build").get_active()
|
||||
print "build = %s" % build
|
||||
poolobj = self._pool.install(create=True, meter=meter, build=build)
|
||||
logging.debug("Pool creating succeeded.")
|
||||
except Exception, e:
|
||||
@ -284,6 +305,9 @@ class vmmCreatePool(gobject.GObject):
|
||||
self.show_options_by_pool()
|
||||
self.window.get_widget("pool-target-path").set_text(self._pool.target_path)
|
||||
self.window.get_widget("pool-back").set_sensitive(True)
|
||||
buildret = self.get_build_default()
|
||||
self.window.get_widget("pool-build").set_sensitive(buildret[1])
|
||||
self.window.get_widget("pool-build").set_active(buildret[0])
|
||||
self.window.get_widget("pool-finish").show()
|
||||
self.window.get_widget("pool-forward").hide()
|
||||
|
||||
@ -317,6 +341,13 @@ class vmmCreatePool(gobject.GObject):
|
||||
self._pool.format = format
|
||||
except ValueError, e:
|
||||
return self.err.val_err(_("Pool Parameter Error"), str(e))
|
||||
|
||||
buildval = self.window.get_widget("pool-build").get_active()
|
||||
buildsen = self.window.get_widget("pool-build").get_property("sensitive")
|
||||
if buildsen and buildval:
|
||||
return self.err.yes_no(_("Building a pool of this type will "
|
||||
"format the source device. Are you "
|
||||
"sure you want to 'build' this pool?"))
|
||||
return True
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user