[Ovirt-devel] The oVirt networking UI

David Lutterkort lutter at redhat.com
Tue Feb 10 22:46:47 UTC 2009


On Mon, 2009-02-09 at 20:26 -0500, Mohammed Morsi wrote:
> David Lutterkort wrote:
> >>> * Edit network: can select all three usages, but saving with that does
> >>>   nothing. It should be legit to assign multiple usages to a network
> >>>   
> >>>       
> >> I'm not seeing this bug locally (and I'm running the latest code). I can
> >> select 0, 1, 2, or 3 usages and when I save, I verify that they are
> >> associated with the network (and are also selected if you open up the
> >> form again)
> >>     
> >
> > Running against the latest from next, I can't save with more than one
> > network selected (in firefox-3.0.5-1.fc10.x86_64) - when I click on
> > 'Edit Network' the form just stays there, and only goes away when I
> > click 'cancel'
> >   
> I updated to the recent version on next before my development, but I am
> still not seeing this behaviour, eg it works as expected, leading me to
> believe that there is an environment difference between our machines
> (which would be weird if we're both running freshly built appliances).
> Is there any way I can access you dev environment (off list of course)
> to help debug.

I'll try and get some more details on that.

> > Yes, you are right - identify-node should do that filtering, since it's
> > in a much better position to understand what all those NIC's are.
> >
> >   
> Only focused on the server for this patch, as I'm not too familiar with
> the node just yet. If this is critical right, I can spend some time
> working on ovirt-identify-node to address the issue.

That's fine - that level of filtering would be nice, but it's not
crucial for the functioning of the network UI. Even if you're running 20
VM's on a box with 8 NIC's, you're looking at a dropdown with ~ 40
entries.

> >>> Edit virtual machine:
> >>> ....
> >>> * When putting a VNIC on a network with static routing, user needs to enter
> >>>   IP for that VNIC
> >>>   
> >>>       
> >> I'm not sure how the information on the edit vm form relates to this
> >> network system, as this has been there for a while, before the new
> >> network components were even started. I'm a little reluctant to make
> >> changes to it until we understand what its being used for (if anything)
> >> but once again, implementing your suggestions should be easy enough if
> >> my reluctance is unfounded.
> >>     
> > ...
> >
> > For hooking VM's up to a network, the idea is that you indicate on which
> > network you want the VNIC; that in turn is used to set the 'source'
> > element for the interface of the VM. So, if a node has its interface
> > 'breth0' on network 'foo', and the user selects network 'foo' for a VM
> > that gets started on that host, the domain XML for that VM needs to
> > contain something like
> >
> >         <interface type='bridge'>
> >             <mac address='00:16:3e:3f:30:a3'/>
> >             <source bridge='breth0'/>
> >         </interface>
> >
> > >From a UI point of view, you need an additional dropdown on the 'Edit
> > VM' form next to the VNIC's MAC address that lists all the networks on
> > which hosts in that hardware pool have interfaces.
> >
> > It also requires that we store the network name with each VM in the db
> > (additional column for table vms) and that taskomatic uses that in
> > task_start_vm to determine from the node and the VM's network name which
> > bridge to connect the interface to.
> >
> > Without that, I don't think the whole network UI is all that useful.
> >
> > David
> >
> >
> >   
> Have a couple questions relating to this.
> 
> When I add the drop down of networks to the vm form, should this only
> contain VLANs and not Physical Networks, eg the vm will only be
> associated with bonding and not physical nics, correct? Also, since a
> VLAN can have multiple bonding associated with it, which one should I
> use? (the first found? all of them?)

Bonding/vlan doesn't play into this - when the user creates a VM, they
should be able to choose on which network to put the VNIC. The list of
networks should be all networks (as defined by the user in the global
network screen) on which hosts in the hw pool have interfaces.

Once they choose the network, we need to figure out what to put as the
'source' element in the libvirt XML for that VM, based on how the user
defined the network.

> I can see a vm being able to be on multiple VLANs, so would this drop
> down be a multiple-select box in which there is an entry for each VLAN
> or VLAN / bonding pair in our database? (in which case we'd need a
> bridge table between vms and networks or bondings and not just a single
> column in the vms table)

I think to get multiple VLAN's, the user would have to set that up on
the host, not for the guest interface, and I assume that all that is
already handled properly when you assign the host's NICs to networks (or
is it ?)

AFAICT, all you need to do in taskomatic is figure out which interface
on the host on which the VM will be run is on the network the user set
for the VM's VNIC and stuff that into the <source> tag.

> Once I get this information into the db, and update taskomatic / qpid to
> relay the bridges to use to the node / vm, do you know which component
> on the node side I would need to update to update libvirt, instructing
> it to add the appropriate records to the vm's config file?

There shouldn't be any work for the node needed - as soon as taskomatic
produces libvirt XML with the correct setting for the interfaces
<source> element, you should be done.

David




More information about the ovirt-devel mailing list