mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
create: Don't reprompt about ideal path before 'customize'
This commit is contained in:
parent
eec72ee5b1
commit
ec84fc7d86
@ -1441,16 +1441,16 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
|
|
||||||
return guest
|
return guest
|
||||||
|
|
||||||
def validate(self, pagenum, revalidate=False):
|
def validate(self, pagenum, oldguest=None):
|
||||||
try:
|
try:
|
||||||
if pagenum == PAGE_NAME:
|
if pagenum == PAGE_NAME:
|
||||||
return self.validate_name_page()
|
return self.validate_name_page()
|
||||||
elif pagenum == PAGE_INSTALL:
|
elif pagenum == PAGE_INSTALL:
|
||||||
return self.validate_install_page(revalidate=revalidate)
|
return self.validate_install_page(oldguest=oldguest)
|
||||||
elif pagenum == PAGE_MEM:
|
elif pagenum == PAGE_MEM:
|
||||||
return self.validate_mem_page()
|
return self.validate_mem_page()
|
||||||
elif pagenum == PAGE_STORAGE:
|
elif pagenum == PAGE_STORAGE:
|
||||||
return self.validate_storage_page(revalidate=revalidate)
|
return self.validate_storage_page(oldguest=oldguest)
|
||||||
elif pagenum == PAGE_FINISH:
|
elif pagenum == PAGE_FINISH:
|
||||||
return self.validate_final_page()
|
return self.validate_final_page()
|
||||||
|
|
||||||
@ -1470,7 +1470,7 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def validate_install_page(self, revalidate=True):
|
def validate_install_page(self, oldguest=None):
|
||||||
instmethod = self.get_config_install_page()
|
instmethod = self.get_config_install_page()
|
||||||
installer = None
|
installer = None
|
||||||
location = None
|
location = None
|
||||||
@ -1578,10 +1578,10 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
# Kind of wonky, run storage validation now, which will assign
|
# Kind of wonky, run storage validation now, which will assign
|
||||||
# the import path. Import installer skips the storage page.
|
# the import path. Import installer skips the storage page.
|
||||||
if is_import:
|
if is_import:
|
||||||
if not self.validate_storage_page(revalidate):
|
if not self.validate_storage_page(oldguest=oldguest):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if not revalidate:
|
if not oldguest:
|
||||||
if self.guest.installer.scratchdir_required():
|
if self.guest.installer.scratchdir_required():
|
||||||
path = self.guest.installer.scratchdir
|
path = self.guest.installer.scratchdir
|
||||||
elif instmethod == INSTALL_PAGE_ISO:
|
elif instmethod == INSTALL_PAGE_ISO:
|
||||||
@ -1618,7 +1618,7 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def validate_storage_page(self, revalidate=True):
|
def validate_storage_page(self, oldguest=None):
|
||||||
use_storage = self.widget("enable-storage").get_active()
|
use_storage = self.widget("enable-storage").get_active()
|
||||||
instcd = self.get_config_install_page() == INSTALL_PAGE_ISO
|
instcd = self.get_config_install_page() == INSTALL_PAGE_ISO
|
||||||
|
|
||||||
@ -1626,6 +1626,10 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
if instcd:
|
if instcd:
|
||||||
self.guest.installer.livecd = not use_storage
|
self.guest.installer.livecd = not use_storage
|
||||||
|
|
||||||
|
usepath = None
|
||||||
|
if oldguest and self.disk:
|
||||||
|
usepath = self.disk.path
|
||||||
|
|
||||||
if self.disk and self.disk in self.guest.get_devices("disk"):
|
if self.disk and self.disk in self.guest.get_devices("disk"):
|
||||||
self.guest.remove_device(self.disk)
|
self.guest.remove_device(self.disk)
|
||||||
self.disk = None
|
self.disk = None
|
||||||
@ -1644,7 +1648,9 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
# This can error out
|
# This can error out
|
||||||
diskpath, disksize, sparse = self.get_storage_info()
|
diskpath, disksize, sparse = self.get_storage_info()
|
||||||
|
|
||||||
if self.is_default_storage() and not revalidate:
|
if usepath:
|
||||||
|
diskpath = usepath
|
||||||
|
elif self.is_default_storage() and not oldguest:
|
||||||
# See if the ideal disk path (/default/pool/vmname.img)
|
# See if the ideal disk path (/default/pool/vmname.img)
|
||||||
# exists, and if unused, prompt the use for using it
|
# exists, and if unused, prompt the use for using it
|
||||||
ideal = util.get_ideal_path(self.conn,
|
ideal = util.get_ideal_path(self.conn,
|
||||||
@ -1682,21 +1688,21 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
return self.verr(_("Storage parameter error."), str(e))
|
return self.verr(_("Storage parameter error."), str(e))
|
||||||
|
|
||||||
isfatal, errmsg = disk.is_size_conflict()
|
isfatal, errmsg = disk.is_size_conflict()
|
||||||
if not revalidate and not isfatal and errmsg:
|
if not oldguest and not isfatal and errmsg:
|
||||||
# Fatal errors are reported when setting 'size'
|
# Fatal errors are reported when setting 'size'
|
||||||
res = self.err.ok_cancel(_("Not Enough Free Space"), errmsg)
|
res = self.err.ok_cancel(_("Not Enough Free Space"), errmsg)
|
||||||
if not res:
|
if not res:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Disk collision
|
# Disk collision
|
||||||
if not revalidate and disk.is_conflict_disk(self.guest.conn):
|
if not oldguest and disk.is_conflict_disk(self.guest.conn):
|
||||||
res = self.err.yes_no(_('Disk "%s" is already in use by another '
|
res = self.err.yes_no(_('Disk "%s" is already in use by another '
|
||||||
'guest!' % disk.path),
|
'guest!' % disk.path),
|
||||||
_("Do you really want to use the disk?"))
|
_("Do you really want to use the disk?"))
|
||||||
if not res:
|
if not res:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if not revalidate:
|
if not oldguest:
|
||||||
uihelpers.check_path_search_for_qemu(self.topwin,
|
uihelpers.check_path_search_for_qemu(self.topwin,
|
||||||
self.conn, disk.path)
|
self.conn, disk.path)
|
||||||
|
|
||||||
@ -1766,8 +1772,9 @@ class vmmCreate(vmmGObjectUI):
|
|||||||
|
|
||||||
def rebuild_guest(self):
|
def rebuild_guest(self):
|
||||||
pagenum = 0
|
pagenum = 0
|
||||||
|
guest = self.guest
|
||||||
while True:
|
while True:
|
||||||
self.validate(pagenum, revalidate=False)
|
self.validate(pagenum, oldguest=guest)
|
||||||
if pagenum >= PAGE_FINISH:
|
if pagenum >= PAGE_FINISH:
|
||||||
break
|
break
|
||||||
pagenum = self._get_next_pagenum(pagenum)
|
pagenum = self._get_next_pagenum(pagenum)
|
||||||
|
Loading…
Reference in New Issue
Block a user