createvm: Remove 'Network boot (PXE)', add 'Manual install'

For the dialog flow, these options are the same, the only effect
is that there's no longer an initial network boot phase.

PXE is dependent on an external server setup that is not common
in the scheme of things, so giving it a first class option on the
front of the new VM wizard isn't really sensible. Users that want
to PXE boot can easily do so via the 'customize before install'
option, or just manually create a VM and edit the boot device as
they see fit.

Explicitly advertising a Manual option is nicer for users that
just want to create a VM and deal with install later, among many
other minor use cases.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Cole Robinson 2020-01-26 09:52:18 -05:00
parent 18358d5096
commit ba24d877bf
3 changed files with 19 additions and 30 deletions

View File

@ -71,15 +71,14 @@ class NewVM(uiutils.UITestCase):
cdrom.click_combo_entry()
self.assertTrue("/dev/sr1" not in cdrom.fmt_nodes())
def testNewVMPXEDefault(self):
def testNewVMManualDefault(self):
"""
Click through the New VM wizard with default values + PXE, then
Click through the New VM wizard with default values + manual, then
delete the VM
"""
newvm = self._open_create_wizard()
# Create default PXE VM
newvm.find_fuzzy("PXE", "radio").click()
newvm.find_fuzzy("Manual", "radio").click()
self.forward(newvm)
osentry = newvm.find("oslist-entry")
uiutils.check_in_loop(lambda: not osentry.text)
@ -288,7 +287,6 @@ class NewVM(uiutils.UITestCase):
newvm.find_fuzzy("ppc64", "menu item").click()
newvm.find_fuzzy("pseries", "menu item")
# Create default PXE VM
newvm.find_fuzzy("Import", "radio").click()
newvm.find_fuzzy(None,
"text", "existing storage").text = "/dev/default-pool/testvol1.img"
@ -431,7 +429,6 @@ class NewVM(uiutils.UITestCase):
newvm.find_fuzzy("Xen Type", "combo").click()
newvm.find_fuzzy("paravirt", "menu item").click()
# Create default PXE VM
newvm.find_fuzzy("Import", "radio").click()
newvm.find_fuzzy(None,
"text", "existing storage").text = "/dev/default-pool/testvol1.img"

View File

@ -302,8 +302,8 @@
</packing>
</child>
<child>
<object class="GtkRadioButton" id="method-pxe">
<property name="label" translatable="yes">Network _Boot (PXE)</property>
<object class="GtkRadioButton" id="method-import">
<property name="label" translatable="yes">Import _existing disk image</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@ -320,8 +320,8 @@
</packing>
</child>
<child>
<object class="GtkRadioButton" id="method-import">
<property name="label" translatable="yes">Import _existing disk image</property>
<object class="GtkRadioButton" id="method-manual">
<property name="label" translatable="yes">Ma_nual install</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>

View File

@ -44,8 +44,8 @@ DEFAULT_MEM = 1024
(INSTALL_PAGE_ISO,
INSTALL_PAGE_URL,
INSTALL_PAGE_PXE,
INSTALL_PAGE_IMPORT,
INSTALL_PAGE_MANUAL,
INSTALL_PAGE_CONTAINER_APP,
INSTALL_PAGE_CONTAINER_OS,
INSTALL_PAGE_VZ_TEMPLATE) = range(7)
@ -433,7 +433,7 @@ class vmmCreateVM(vmmGObjectUI):
# Install Options
method_tree = self.widget("method-tree")
method_pxe = self.widget("method-pxe")
method_manual = self.widget("method-manual")
method_local = self.widget("method-local")
method_import = self.widget("method-import")
method_container_app = self.widget("method-container-app")
@ -442,11 +442,11 @@ class vmmCreateVM(vmmGObjectUI):
installable_arch)
method_local.set_sensitive(not is_pv and can_storage and
installable_arch)
method_pxe.set_sensitive(not is_pv and installable_arch)
method_manual.set_sensitive(not is_container)
method_import.set_sensitive(can_storage)
virt_methods = [method_local, method_tree, method_pxe, method_import]
virt_methods = [method_local, method_tree,
method_manual, method_import]
pxe_tt = None
local_tt = None
tree_tt = None
import_tt = None
@ -461,7 +461,6 @@ class vmmCreateVM(vmmGObjectUI):
if is_pv:
base = _("%s installs not available for paravirt guests.")
pxe_tt = base % "PXE"
local_tt = base % "CDROM/ISO"
if not installable_arch:
@ -469,7 +468,6 @@ class vmmCreateVM(vmmGObjectUI):
guest.os.arch)
tree_tt = msg
local_tt = msg
pxe_tt = msg
if not any([w.get_active() and w.get_sensitive()
for w in virt_methods]):
@ -486,7 +484,6 @@ class vmmCreateVM(vmmGObjectUI):
method_tree.set_tooltip_text(tree_tt or "")
method_local.set_tooltip_text(local_tt or "")
method_pxe.set_tooltip_text(pxe_tt or "")
method_import.set_tooltip_text(import_tt or "")
# Container install options
@ -921,10 +918,10 @@ class vmmCreateVM(vmmGObjectUI):
install = _("Local CDROM/ISO")
elif instmethod == INSTALL_PAGE_URL:
install = _("URL Install Tree")
elif instmethod == INSTALL_PAGE_PXE:
install = _("PXE Install")
elif instmethod == INSTALL_PAGE_IMPORT:
install = _("Import existing OS image")
elif instmethod == INSTALL_PAGE_MANUAL:
install = _("Manual install")
elif instmethod == INSTALL_PAGE_CONTAINER_APP:
install = _("Application container")
elif instmethod == INSTALL_PAGE_CONTAINER_OS:
@ -961,10 +958,10 @@ class vmmCreateVM(vmmGObjectUI):
return INSTALL_PAGE_ISO
elif self.widget("method-tree").get_active():
return INSTALL_PAGE_URL
elif self.widget("method-pxe").get_active():
return INSTALL_PAGE_PXE
elif self.widget("method-import").get_active():
return INSTALL_PAGE_IMPORT
elif self.widget("method-manual").get_active():
return INSTALL_PAGE_MANUAL
else:
if self.widget("method-container-app").get_active():
return INSTALL_PAGE_CONTAINER_APP
@ -1323,9 +1320,9 @@ class vmmCreateVM(vmmGObjectUI):
self.widget("install-detect-os").get_active())
self._change_os_detect(not dodetect)
# PXE installs have nothing to ask for
# Manual installs have nothing to ask for
self.widget("install-method-pages").set_visible(
instpage != INSTALL_PAGE_PXE)
instpage != INSTALL_PAGE_MANUAL)
self.widget("install-method-pages").set_current_page(instpage)
def _back_clicked(self, src_ignore):
@ -1482,9 +1479,6 @@ class vmmCreateVM(vmmGObjectUI):
location = media
elif instmethod == INSTALL_PAGE_PXE:
install_bootdev = "network"
elif instmethod == INSTALL_PAGE_IMPORT:
is_import = True
import_path = self._get_config_import_path()
@ -1734,9 +1728,7 @@ class vmmCreateVM(vmmGObjectUI):
# No network device available
instmethod = self._get_config_install_page()
methname = None
if instmethod == INSTALL_PAGE_PXE:
methname = "PXE"
elif instmethod == INSTALL_PAGE_URL:
if instmethod == INSTALL_PAGE_URL:
methname = "URL"
if methname: