storagebrowser: If creating new VM, have new vol name be based on vm name.

This commit is contained in:
Cole Robinson 2009-11-15 15:57:38 -05:00
parent 0bf2924a33
commit 90732990e0
3 changed files with 33 additions and 2 deletions

View File

@ -1679,6 +1679,7 @@ class vmmCreate(gobject.GObject):
if self.storage_browser == None:
self.storage_browser = vmmStorageBrowser(self.config, self.conn)
self.storage_browser.set_vm_name(self.get_config_name())
self.storage_browser.set_finish_cb(callback)
self.storage_browser.set_browse_reason(reason)
self.storage_browser.show(self.conn)

View File

@ -55,6 +55,7 @@ class vmmCreateVolume(gobject.GObject):
_("An unexpected error occurred"))
self.topwin.hide()
self.name_hint = None
self.vol = None
self.vol_class = Storage.StoragePool.get_volume_for_pool(parent_pool.get_type())
@ -92,6 +93,9 @@ class vmmCreateVolume(gobject.GObject):
self.set_modal(False)
return 1
def set_name_hint(self, hint):
self.name_hint = hint
def set_modal(self, modal):
self.topwin.set_modal(bool(modal))
@ -100,8 +104,26 @@ class vmmCreateVolume(gobject.GObject):
self.vol_class = Storage.StoragePool.get_volume_for_pool(self.parent_pool.get_type())
def default_vol_name(self):
if not self.name_hint:
return ""
suffix = self.default_suffix()
try:
return Storage.StorageVolume.find_free_name(self.name_hint,
pool_object=self.parent_pool.pool,
suffix=suffix)
except:
return ""
def default_suffix(self):
suffix = ""
if self.vol_class == Storage.FileVolume:
suffix = ".img"
return suffix
def reset_state(self):
self.window.get_widget("vol-name").set_text("")
self.window.get_widget("vol-name").set_text(self.default_vol_name())
self.window.get_widget("vol-create").set_sensitive(False)
self.populate_vol_format()
self.populate_vol_suffix()
@ -137,7 +159,7 @@ class vmmCreateVolume(gobject.GObject):
model.append([f, f])
def populate_vol_suffix(self):
suffix = ""
suffix = self.default_suffix()
if self.vol_class == Storage.FileVolume:
suffix = ".img"
self.window.get_widget("vol-name-suffix").set_text(suffix)

View File

@ -61,6 +61,10 @@ class vmmStorageBrowser(gobject.GObject):
# Add Volume wizard
self.addvol = None
# Name of VM we are choosing storage for, can be used to recommend
# volume name if creating
self.vm_name = None
# Arguments to pass to util.browse_local for local storage
self.browse_reason = None
self.local_args = {}
@ -98,6 +102,9 @@ class vmmStorageBrowser(gobject.GObject):
def set_local_arg(self, arg, val):
self.local_args[arg] = val
def set_vm_name(self, name):
self.vm_name = name
def set_initial_state(self):
pool_list = self.window.get_widget("pool-list")
virtManager.host.init_pool_list(pool_list, self.pool_selected)
@ -253,6 +260,7 @@ class vmmStorageBrowser(gobject.GObject):
else:
self.addvol.set_parent_pool(pool)
self.addvol.set_modal(True)
self.addvol.set_name_hint(self.vm_name)
self.addvol.show()
except Exception, e:
self.show_err(_("Error launching volume wizard: %s") % str(e),