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: if self.storage_browser == None:
self.storage_browser = vmmStorageBrowser(self.config, self.conn) 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_finish_cb(callback)
self.storage_browser.set_browse_reason(reason) self.storage_browser.set_browse_reason(reason)
self.storage_browser.show(self.conn) self.storage_browser.show(self.conn)

View File

@ -55,6 +55,7 @@ class vmmCreateVolume(gobject.GObject):
_("An unexpected error occurred")) _("An unexpected error occurred"))
self.topwin.hide() self.topwin.hide()
self.name_hint = None
self.vol = None self.vol = None
self.vol_class = Storage.StoragePool.get_volume_for_pool(parent_pool.get_type()) 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) self.set_modal(False)
return 1 return 1
def set_name_hint(self, hint):
self.name_hint = hint
def set_modal(self, modal): def set_modal(self, modal):
self.topwin.set_modal(bool(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()) 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): 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.window.get_widget("vol-create").set_sensitive(False)
self.populate_vol_format() self.populate_vol_format()
self.populate_vol_suffix() self.populate_vol_suffix()
@ -137,7 +159,7 @@ class vmmCreateVolume(gobject.GObject):
model.append([f, f]) model.append([f, f])
def populate_vol_suffix(self): def populate_vol_suffix(self):
suffix = "" suffix = self.default_suffix()
if self.vol_class == Storage.FileVolume: if self.vol_class == Storage.FileVolume:
suffix = ".img" suffix = ".img"
self.window.get_widget("vol-name-suffix").set_text(suffix) self.window.get_widget("vol-name-suffix").set_text(suffix)

View File

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