On Mon, Mar 02, 2009 at 07:50:28PM +0000, Daniel P. Berrange wrote:
> On Mon, Mar 02, 2009 at 08:12:03PM +0100, Guido G?nther wrote:
> > Hi Cole,
> > this all looks great.
> > On Fri, Feb 27, 2009 at 05:50:15PM -0500, Cole Robinson wrote:
> > > The summary section is pretty straight forward, no surprises here.
> > > The 'Advanced Options' section encompasses networking, hypervisor, and
> > > architecture options. The hypervisor and arch defaults were explained
> > > above.
> > An option to select disk (scsi, ide, virtio) and network adapter model
> > (e1000, ...) as advanced options would be great (still defaulting to
> > virtio if supported via the osdict) since there are some OSes that don't
> > support all hardware out of the box and there are kvm/qemu versions that
> > have problems with certain adapter types.
>
> If there are combinations of OS,Disk that don't work IMHO we should
> improve the OS type metadata so we don't use them. Choice of specific
> hardware models is something we really want to keep out of the new VM
> wizard, because the end user really isn't in a position to have the
> knowledge to make suitable choices.
Sometimes it's not an issue of the guest but of the hypervisor like
missing PXE roms[1]. Attached is a patch Andreas Unterkircher that adds
NIC model selection to the advanced options of the vm wizard (some code
could probably be shared with vmmAddHardware).
Cheers,
-- Guido
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521091
# HG changeset patch
# Node ID af07557895b63ed3c73c0f291c4d55213adbfc69
# Parent 64b1e55e4aa5c6348c0ef53701729e50b54411b6
[mq]: nic-model-wizard
diff -r 64b1e55e4aa5 -r af07557895b6 src/virtManager/create.py
--- a/src/virtManager/create.py Thu Apr 16 13:08:07 2009 +0200
+++ b/src/virtManager/create.py Thu Apr 16 18:12:50 2009 +0200
@@ -240,6 +240,13 @@
net_list.add_attribute(text, 'text', 2)
net_list.add_attribute(text, 'sensitive', 3)
+ netmodel_list = self.window.get_widget("net-model")
+ netmodel_model = gtk.ListStore(str, str)
+ netmodel_list.set_model(netmodel_model)
+ text = gtk.CellRendererText()
+ netmodel_list.pack_start(text, True)
+ netmodel_list.add_attribute(text, 'text', 1)
+
# Archtecture
archModel = gtk.ListStore(str)
archList = self.window.get_widget("config-arch")
@@ -466,6 +473,10 @@
logging.exception("Generating macaddr failed: %s" % str(e))
self.window.get_widget("config-macaddr").set_text(newmac)
+ netmodel = self.window.get_widget("net-model")
+ self.populate_network_model_model(netmodel.get_model())
+ netmodel.set_active(0)
+
def populate_hv(self):
hv_list = self.window.get_widget("config-hv")
model = hv_list.get_model()
@@ -689,6 +700,20 @@
net_list.set_active(default)
+ def populate_network_model_model(self, model):
+ model.clear()
+
+ # [xml value, label]
+ model.append([None, _("Hypervisor default")])
+ mod_list = [ "rtl8139", "ne2k_pci", "pcnet" ]
+ if self.capsdomain.hypervisor_type.lower() == "kvm":
+ mod_list.append("e1000")
+ mod_list.append("virtio")
+ mod_list.sort()
+
+ for m in mod_list:
+ model.append([m, m])
+
def change_caps(self, gtype=None, dtype=None):
if gtype == None:
@@ -889,6 +914,12 @@
return netinfo[0], netinfo[1], macaddr.strip()
+ def get_config_net_model(self):
+ model = self.window.get_widget("net-model")
+ modelxml = model.get_model().get_value(model.get_active_iter(), 0)
+ modelstr = model.get_model().get_value(model.get_active_iter(), 1)
+ return modelxml, modelstr
+
def get_config_sound(self):
if self.conn.is_remote():
return self.config.get_remote_sound()
@@ -1347,7 +1378,14 @@
network = netname,
macaddr = macaddr)
+ modelxml = self.get_config_net_model()[0]
+ modelstr = self.get_config_net_model()[1]
+ if modelxml != None:
+ logging.debug(_("NIC model %s (%s) selected") % (modelstr, modelxml) )
+ net.model = modelxml
+
self.guest.nics.append(net)
+
except Exception, e:
return self.verr(_("Error with network parameters."), str(e))
diff -r 64b1e55e4aa5 -r af07557895b6 src/vmm-create.glade
--- a/src/vmm-create.glade Thu Apr 16 13:08:07 2009 +0200
+++ b/src/vmm-create.glade Thu Apr 16 18:12:50 2009 +0200
@@ -1443,6 +1443,32 @@
<property name="position">2</property>
</packing>
</child>
+ <!-- Device Model -->
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Device Model:</property>
+ </widget>
+ <packing>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkComboBox" id="net-model">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
+ </packing>
+ </child>
+ <!-- //Device Model -->
</widget>
<packing>
<property name="expand">False</property>
_______________________________________________
et-mgmt-tools mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/et-mgmt-tools