[Engine-devel] unmanaged devices thrown into 'custom' feature

Dan Kenigsberg danken at redhat.com
Sun Oct 21 21:49:36 UTC 2012


On Sun, Oct 21, 2012 at 11:57:10AM -0400, Eli Mesika wrote:
> 
> 
> ----- Original Message -----
> > From: "Yair Zaslavsky" <yzaslavs at redhat.com>
> > To: "Livnat Peer" <lpeer at redhat.com>
> > Cc: "Genadi Chereshnya" <gcheresh at redhat.com>, engine-devel at ovirt.org, vdsm-devel at fedorahosted.org
> > Sent: Sunday, October 21, 2012 5:38:54 PM
> > Subject: Re: [Engine-devel] unmanaged devices thrown into 'custom' feature
> > 
> > 
> > 
> > ----- Original Message -----
> > > From: "Livnat Peer" <lpeer at redhat.com>
> > > To: "Dan Kenigsberg" <danken at redhat.com>
> > > Cc: "Genadi Chereshnya" <gcheresh at redhat.com>,
> > > engine-devel at ovirt.org, vdsm-devel at fedorahosted.org
> > > Sent: Sunday, October 21, 2012 5:18:31 PM
> > > Subject: Re: [Engine-devel] unmanaged devices thrown into 'custom'
> > > feature
> > > 
> > > On 21/10/12 16:42, Dan Kenigsberg wrote:
> > > > I have just noticed that when a VM is started for the second
> > > > time,
> > > > Engine
> > > > issues the "create" vdsm verb with some information regarding
> > > > "unmanaged" devices (an example is shown below[1]) in the
> > > > 'custom'
> > > > propery bag.
> > > > 
> > > > I'm surprised about this, as I was not aware of this usage of the
> > > > 'custom' dictionary, and Vdsm is not doing anything with the
> > > > data.
> > > > 
> > > 
> > > If I recall correctly the idea of passing the unmanaged devices
> > > data
> > > in
> > > the custom property was to enable managing stable device addresses
> > > in
> > > the hooks (to devices that were added to the VM via hooks from the
> > > first
> > > place), so this info is there not for VDSM use.
> > > For example if you add a device in a hook it will be kept in the
> > > engine
> > > as a non managed device. later when starting the VM again you would
> > > like
> > > to assign the same device address to your device, and you can do so
> > > because you have access to the original address in the custom
> > > properties
> > > of the VM.
> > 
> > This is exactly what Eli has explained Gendai and Dan today.

(I was asking here because I did not understand the verbal explanation.)

> 
> This is taken from the Stable Device Address design in
> http://wiki.ovirt.org/wiki/Features/Design/StableDeviceAddresses
> 
> Unmanaged Device
> -----------------
> Unmanaged Device will be supported in the new format and will include all unhandled devices as sound/controller/etc and future devices. Those devices will be persistent and will have Type , SubType (device specific) and an Address. For 3.1 an unmanaged Device is not exposed to any GUI/REST API. Unmanaged devices are passed to vdsm inside a Custom property. VDSM in it turn is passing this as is for possible hook processing. 

Thanks for the elaboration. Too bad that I've missed this issue before.

Are you aware of any hook making use of this?  I hope that hook writers
are not using APIs that are not documented in vdsmd(8).

It seems as a classic case where a generic bag interface is coerced into
an awkward partially-documented interface.

I think that a better approach would have been to pass all devices
(managed and unmanaged alike) in the 'devices' property, and let vdsm
expose whatever is needed to the before_vm_start hook.

Maybe we can still do this.

Dan.



More information about the Engine-devel mailing list