Allow choice between local CDROM & kernel/initrd network install for fullvirt guests

This commit is contained in:
Daniel P. Berrange 2008-02-23 15:26:26 -05:00
parent dca8fccef5
commit 1357ee7efd
2 changed files with 483 additions and 267 deletions

View File

@ -49,17 +49,22 @@ VM_INSTALL_FROM_CD = 2
VM_STORAGE_PARTITION = 1
VM_STORAGE_FILE = 2
VM_INST_LOCAL = 1
VM_INST_TREE = 2
VM_INST_PXE = 3
DEFAULT_STORAGE_FILE_SIZE = 500
PAGE_INTRO = 0
PAGE_NAME = 1
PAGE_TYPE = 2
PAGE_FVINST = 3
PAGE_PVINST = 4
PAGE_DISK = 5
PAGE_NETWORK = 6
PAGE_CPUMEM = 7
PAGE_SUMMARY = 8
PAGE_INST = 3
PAGE_INST_LOCAL = 4
PAGE_INST_TREE = 5
PAGE_DISK = 6
PAGE_NETWORK = 7
PAGE_CPUMEM = 8
PAGE_SUMMARY = 9
KEYBOARD_DIR = "/etc/sysconfig/keyboard"
@ -295,11 +300,18 @@ class vmmCreate(gobject.GObject):
if(self.validate(notebook.get_current_page()) != True):
return
if (notebook.get_current_page() == PAGE_TYPE and self.get_config_method() == VM_PARA_VIRT):
notebook.set_current_page(PAGE_PVINST)
elif (notebook.get_current_page() == PAGE_FVINST and self.get_config_method() == VM_FULLY_VIRT):
if notebook.get_current_page() == PAGE_INST:
if self.get_config_install_method() == VM_INST_LOCAL:
notebook.set_current_page(PAGE_INST_LOCAL)
elif self.get_config_install_method() == VM_INST_TREE:
notebook.set_current_page(PAGE_INST_TREE)
else:
# No config for PXE needed (yet)
notebook.set_current_page(PAGE_DISK)
elif notebook.get_current_page() in [PAGE_INST_TREE, PAGE_INST_LOCAL]:
notebook.set_current_page(PAGE_DISK)
elif (notebook.get_current_page() == PAGE_DISK and os.getuid() != 0):
# Skip network for non-root
notebook.set_current_page(PAGE_CPUMEM)
else:
notebook.next_page()
@ -309,11 +321,18 @@ class vmmCreate(gobject.GObject):
# do this always, since there's no "leaving a notebook page" event.
self.window.get_widget("create-finish").hide()
self.window.get_widget("create-forward").show()
if notebook.get_current_page() == PAGE_PVINST and self.get_config_method() == VM_PARA_VIRT:
notebook.set_current_page(PAGE_TYPE)
elif notebook.get_current_page() == PAGE_DISK and self.get_config_method() == VM_FULLY_VIRT:
notebook.set_current_page(PAGE_FVINST)
if notebook.get_current_page() in [PAGE_INST_TREE, PAGE_INST_LOCAL]:
notebook.set_current_page(PAGE_INST)
elif notebook.get_current_page() == PAGE_DISK:
if self.get_config_install_method() == VM_INST_LOCAL:
notebook.set_current_page(PAGE_INST_LOCAL)
elif self.get_config_install_method() == VM_INST_TREE:
notebook.set_current_page(PAGE_INST_TREE)
else:
# No config for PXE needed (yet)
notebook.set_current_page(PAGE_INST)
elif notebook.get_current_page() == PAGE_CPUMEM and os.getuid() != 0:
# Skip network for non-root
notebook.set_current_page(PAGE_DISK)
else:
notebook.prev_page()
@ -330,31 +349,31 @@ class vmmCreate(gobject.GObject):
return VM_PARA_VIRT
def get_config_install_source(self):
if self.get_config_method() == VM_PARA_VIRT:
if self.get_config_install_method() == VM_INST_TREE:
widget = self.window.get_widget("pv-media-url")
url= widget.child.get_text()
# Add the URL to the list, if it's different
self.config.add_media_url(url)
self.populate_url_model(widget.get_model(), self.config.get_media_urls())
return url
else:
elif self.get_config_install_method() == VM_INST_LOCAL:
if self.window.get_widget("media-iso-image").get_active():
return self.window.get_widget("fv-iso-location").get_text()
elif self.window.get_widget("media-physical").get_active():
else:
cd = self.window.get_widget("cd-path")
model = cd.get_model()
return model.get_value(cd.get_active_iter(), 0)
else:
return "PXE"
else:
return "PXE"
def get_config_installer(self, type):
if self.get_config_method() == VM_FULLY_VIRT and self.window.get_widget("media-network").get_active():
if self.get_config_install_method() == VM_INST_PXE:
return virtinst.PXEInstaller(type = type)
else:
return virtinst.DistroInstaller(type = type)
def get_config_kickstart_source(self):
if self.get_config_method() == VM_PARA_VIRT:
if self.get_config_install_method() == VM_INST_TREE:
widget = self.window.get_widget("pv-ks-url")
url = widget.child.get_text()
self.config.add_kickstart_url(url)
@ -406,6 +425,14 @@ class vmmCreate(gobject.GObject):
def get_config_virtual_cpus(self):
return self.window.get_widget("create-vcpus").get_value()
def get_config_install_method(self):
if self.window.get_widget("method-local").get_active():
return VM_INST_LOCAL
elif self.window.get_widget("method-tree").get_active():
return VM_INST_TREE
else:
return VM_INST_PXE
def get_config_os_type(self):
type = self.window.get_widget("os-type")
if type.get_active_iter() != None:
@ -438,9 +465,19 @@ class vmmCreate(gobject.GObject):
name_widget.grab_focus()
elif page_number == PAGE_TYPE:
pass
elif page_number == PAGE_FVINST:
pass
elif page_number == PAGE_PVINST:
elif page_number == PAGE_INST:
if self.get_config_method() == VM_PARA_VIRT:
# Xen can't PXE or CDROM install :-(
self.window.get_widget("method-local").set_sensitive(False)
self.window.get_widget("method-pxe").set_sensitive(False)
self.window.get_widget("method-tree").set_active(True)
else:
self.window.get_widget("method-local").set_sensitive(True)
self.window.get_widget("method-pxe").set_sensitive(True)
elif page_number == PAGE_INST_TREE:
url_widget = self.window.get_widget("pv-media-url")
url_widget.grab_focus()
elif page_number == PAGE_INST_LOCAL:
url_widget = self.window.get_widget("pv-media-url")
url_widget.grab_focus()
elif page_number == PAGE_DISK:
@ -794,28 +831,7 @@ class vmmCreate(gobject.GObject):
self._guest.name = name # Transfer name over
elif page_num == PAGE_FVINST:
self._guest.installer = self.get_config_installer(self.get_domain_type())
if self.window.get_widget("media-iso-image").get_active():
src = self.get_config_install_source()
try:
self._guest.cdrom = src
except ValueError, e:
self._validation_error_box(_("ISO Path Not Found"), str(e))
return False
elif self.window.get_widget("media-physical").get_active():
cdlist = self.window.get_widget("cd-path")
src = self.get_config_install_source()
try:
self._guest.cdrom = src
except ValueError, e:
self._validation_error_box(_("CD-ROM Path Error"), str(e))
return False
else:
pass # No checks for PXE
elif page_num == PAGE_INST:
try:
if self.get_config_os_type() is not None \
and self.get_config_os_type() != "generic":
@ -832,7 +848,26 @@ class vmmCreate(gobject.GObject):
except ValueError, e:
self._validation_error_box(_("Invalid FV OS Variant"), str(e))
return False
elif page_num == PAGE_PVINST:
elif page_num == PAGE_INST_LOCAL:
self._guest.installer = self.get_config_installer(self.get_domain_type())
if self.window.get_widget("media-iso-image").get_active():
src = self.get_config_install_source()
try:
self._guest.cdrom = src
except ValueError, e:
self._validation_error_box(_("ISO Path Not Found"), str(e))
return False
else:
cdlist = self.window.get_widget("cd-path")
src = self.get_config_install_source()
try:
self._guest.cdrom = src
except ValueError, e:
self._validation_error_box(_("CD-ROM Path Error"), str(e))
return False
elif page_num == PAGE_INST_TREE:
src = self.get_config_install_source()
try:
@ -1157,10 +1192,12 @@ class vmmCreate(gobject.GObject):
self.emit("action-show-help", "virt-manager-system-name")
elif page == PAGE_TYPE:
self.emit("action-show-help", "virt-manager-virt-method")
elif page == PAGE_FVINST:
self.emit("action-show-help", "virt-manager-installation-media-full-virt")
elif page == PAGE_PVINST:
self.emit("action-show-help", "virt-manager-installation-media-paravirt")
elif page == PAGE_INST:
self.emit("action-show-help", "virt-manager-installation-media")
elif page == PAGE_INST_LOCAL:
self.emit("action-show-help", "virt-manager-installation-media-local")
elif page == PAGE_INST_TREE:
self.emit("action-show-help", "virt-manager-installation-media-tree")
elif page == PAGE_DISK:
self.emit("action-show-help", "virt-manager-storage-space")
elif page == PAGE_NETWORK:

View File

@ -1271,6 +1271,391 @@ mipsel</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox55">
<property name="border_width">1</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkAlignment" id="alignment148">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkEventBox" id="page3-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>
<child>
<widget class="GtkLabel" id="label395">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;span weight=&quot;heavy&quot; size=&quot;xx-large&quot; foreground=&quot;#FFF&quot;&gt;Choosing installation method&lt;/span&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="xpad">5</property>
<property name="ypad">6</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox56">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="label396">
<property name="visible">True</property>
<property name="label" translatable="yes">Please indicate where installation media is available for the operating system you would like to install on this virtual system:</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">20</property>
<property name="ypad">10</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkAlignment" id="alignment153">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">30</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkVBox" id="vbox57">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkRadioButton" id="method-local">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Local install media (ISO image or CDROM)</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="on_media_toggled" last_modification_time="Tue, 12 Sep 2006 21:36:05 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="method-tree">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Network install t_ree (HTTP, FTP, or NFS)</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">method-local</property>
<signal name="toggled" handler="on_media_toggled" last_modification_time="Tue, 12 Sep 2006 21:36:05 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="method-pxe">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Network boot (PXE)</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">method-local</property>
<signal name="toggled" handler="on_media_toggled" last_modification_time="Tue, 12 Sep 2006 21:36:05 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkAlignment" id="alignment132">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">15</property>
<property name="bottom_padding">15</property>
<property name="left_padding">15</property>
<property name="right_padding">5</property>
<child>
<widget class="GtkTable" id="table30">
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">10</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label350">
<property name="visible">True</property>
<property name="label" translatable="yes">Please choose the type of guest operating system you will be installing:</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label352">
<property name="visible">True</property>
<property name="label" translatable="yes">OS _Variant:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">os-variant</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options"></property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="os-type">
<property name="visible">True</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<signal name="changed" handler="on_os_type_changed"/>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="os-variant">
<property name="visible">True</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<signal name="changed" handler="on_os_variant_changed"/>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label351">
<property name="visible">True</property>
<property name="label" translatable="yes">OS _Type:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">1</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">os-type</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label353">
<property name="visible">True</property>
<property name="label" translatable="yes"> </property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label394">
<property name="visible">True</property>
<property name="label" translatable="yes">Install type</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox28">
<property name="border_width">1</property>
@ -1291,7 +1676,7 @@ mipsel</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkEventBox" id="page3-title">
<widget class="GtkEventBox" id="page4-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>
@ -1334,7 +1719,7 @@ mipsel</property>
<child>
<widget class="GtkLabel" id="label186">
<property name="visible">True</property>
<property name="label" translatable="yes">Please indicate where installation media is available for the operating system you would like to install on this &lt;b&gt;fully virtualized&lt;/b&gt; virtual system:</property>
<property name="label" translatable="yes">Please indicate where installation media is available for the operating system you would like to install on this virtual operating system:</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -1646,30 +2031,6 @@ mipsel</property>
<property name="x_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="media-network">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Network PXE boot</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">media-iso-image</property>
<signal name="toggled" handler="on_media_toggled" last_modification_time="Tue, 12 Sep 2006 21:36:05 GMT"/>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">3</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
</child>
</widget>
@ -1679,186 +2040,6 @@ mipsel</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkAlignment" id="alignment132">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">15</property>
<property name="bottom_padding">15</property>
<property name="left_padding">15</property>
<property name="right_padding">5</property>
<child>
<widget class="GtkTable" id="table30">
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">10</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label350">
<property name="visible">True</property>
<property name="label" translatable="yes">Please choose the type of guest operating system you will be installing:</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label352">
<property name="visible">True</property>
<property name="label" translatable="yes">OS _Variant:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">os-variant</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options"></property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="os-type">
<property name="visible">True</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<accessibility>
<atkproperty name="AtkObject::accessible_name" translatable="yes">OS Type Select</atkproperty>
</accessibility>
<signal name="changed" handler="on_os_type_changed"/>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="os-variant">
<property name="visible">True</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<accessibility>
<atkproperty name="AtkObject::accessible_name" translatable="yes">OS Variant Select</atkproperty>
</accessibility>
<signal name="changed" handler="on_os_variant_changed"/>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label351">
<property name="visible">True</property>
<property name="label" translatable="yes">OS _Type:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">1</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">os-type</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label353">
<property name="visible">True</property>
<property name="label" translatable="yes"> </property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -1876,7 +2057,7 @@ mipsel</property>
<child>
<widget class="GtkLabel" id="label144">
<property name="visible">True</property>
<property name="label" translatable="yes">FV install</property>
<property name="label" translatable="yes">Local inst</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -1916,7 +2097,7 @@ mipsel</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkEventBox" id="page4-title">
<widget class="GtkEventBox" id="page5-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>
@ -1924,7 +2105,7 @@ mipsel</property>
<child>
<widget class="GtkLabel" id="label203">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;span weight=&quot;heavy&quot; size=&quot;xx-large&quot; foreground=&quot;#FFF&quot;&gt;Locating installation media&lt;/span&gt;</property>
<property name="label" translatable="yes">&lt;span weight=&quot;heavy&quot; size=&quot;xx-large&quot; foreground=&quot;#FFF&quot;&gt;Locating installation source&lt;/span&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
@ -1959,7 +2140,7 @@ mipsel</property>
<child>
<widget class="GtkLabel" id="label205">
<property name="visible">True</property>
<property name="label" translatable="yes">Please indicate where installation media is available for the operating system you would like to install on this &lt;b&gt;paravirtualized&lt;/b&gt; virtual system. Optionally you can provide the URL for a kickstart file that describes your system:</property>
<property name="label" translatable="yes">Please indicate where installation media is available for the operating system you would like to install on this virtual operating system. Optionally you can provide the URL for a kickstart file that describes your system:</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -2429,7 +2610,7 @@ mipsel</property>
<child>
<widget class="GtkLabel" id="step3a">
<property name="visible">True</property>
<property name="label" translatable="yes">PVinstall</property>
<property name="label" translatable="yes">Netinst</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -2457,7 +2638,7 @@ mipsel</property>
<property name="spacing">0</property>
<child>
<widget class="GtkEventBox" id="page5-title">
<widget class="GtkEventBox" id="page6-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>
@ -3209,7 +3390,7 @@ mipsel</property>
<property name="spacing">0</property>
<child>
<widget class="GtkEventBox" id="page6-title">
<widget class="GtkEventBox" id="page7-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>
@ -3550,7 +3731,6 @@ mipsel</property>
<property name="yalign">0.5</property>
<property name="xpad">4</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">storage-partition-address</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@ -3601,7 +3781,6 @@ mipsel</property>
<property name="yalign">0.5</property>
<property name="xpad">4</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">storage-file-address</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@ -3762,7 +3941,7 @@ mipsel</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkEventBox" id="page7-title">
<widget class="GtkEventBox" id="page8-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>
@ -4435,7 +4614,7 @@ mipsel</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkEventBox" id="page8-title">
<widget class="GtkEventBox" id="page9-title">
<property name="visible">True</property>
<property name="visible_window">True</property>
<property name="above_child">False</property>