create: Don't overwrite nic/disk list if moving back after customize

This commit is contained in:
Cole Robinson 2010-12-07 16:48:13 -05:00
parent 091828a862
commit 5320431d85

View File

@ -81,7 +81,11 @@ class vmmCreate(gobject.GObject):
self.caps = None self.caps = None
self.capsguest = None self.capsguest = None
self.capsdomain = None self.capsdomain = None
self.guest = None self.guest = None
self.disk = None
self.nic = None
self.storage_browser = None self.storage_browser = None
self.conn_signals = [] self.conn_signals = []
@ -296,6 +300,10 @@ class vmmCreate(gobject.GObject):
def reset_state(self, urihint=None): def reset_state(self, urihint=None):
self.failed_guest = None self.failed_guest = None
self.guest = None
self.disk = None
self.nic = None
self.window.get_widget("create-pages").set_current_page(PAGE_NAME) self.window.get_widget("create-pages").set_current_page(PAGE_NAME)
self.page_changed(None, None, PAGE_NAME) self.page_changed(None, None, PAGE_NAME)
self.window.get_widget("startup-error-box").hide() self.window.get_widget("startup-error-box").hide()
@ -1361,12 +1369,14 @@ class vmmCreate(gobject.GObject):
use_storage = self.window.get_widget("enable-storage").get_active() use_storage = self.window.get_widget("enable-storage").get_active()
instcd = self.get_config_install_page() == INSTALL_PAGE_ISO instcd = self.get_config_install_page() == INSTALL_PAGE_ISO
self.guest.disks = []
# CD/ISO install and no disks implies LiveCD # CD/ISO install and no disks implies LiveCD
if instcd: if instcd:
self.guest.installer.livecd = not use_storage self.guest.installer.livecd = not use_storage
if self.disk and self.disk in self.guest.get_devices("disk"):
self.guest.remove_device(self.disk)
self.disk = None
# Validate storage # Validate storage
if not use_storage: if not use_storage:
return True return True
@ -1415,7 +1425,6 @@ class vmmCreate(gobject.GObject):
size = disksize, size = disksize,
sparse = sparse) sparse = sparse)
self.guest.disks.append(disk)
except Exception, e: except Exception, e:
return self.verr(_("Storage parameter error."), str(e)) return self.verr(_("Storage parameter error."), str(e))
@ -1438,6 +1447,9 @@ class vmmCreate(gobject.GObject):
uihelpers.check_path_search_for_qemu(self.topwin, self.config, uihelpers.check_path_search_for_qemu(self.topwin, self.config,
self.conn, disk.path) self.conn, disk.path)
self.disk = disk
self.guest.add_device(self.disk)
return True return True
def validate_final_page(self): def validate_final_page(self):
@ -1448,8 +1460,6 @@ class vmmCreate(gobject.GObject):
nettype, devname, macaddr = self.get_config_network_info() nettype, devname, macaddr = self.get_config_network_info()
self.guest.nics = []
if nettype is None: if nettype is None:
# No network device available # No network device available
instmethod = self.get_config_install_page() instmethod = self.get_config_install_page()
@ -1463,13 +1473,15 @@ class vmmCreate(gobject.GObject):
return self.verr(_("Network device required for %s install.") % return self.verr(_("Network device required for %s install.") %
methname) methname)
ret = uihelpers.validate_network(self.topwin, nic = uihelpers.validate_network(self.topwin,
self.conn, nettype, devname, macaddr) self.conn, nettype, devname, macaddr)
if ret == False: if nic == False:
return False return False
if ret != None: if self.nic and self.nic in self.guest.get_devices("interface"):
self.guest.nics.append(ret) self.guest.remove_device(self.nic)
self.nic = nic
self.guest.add_device(self.nic)
return True return True