Hi, 

I came across a situation where I wanted to define custom properties on a vNIC 
profile sitting under a network in a 3.2 data center. 
>From what I saw the configuration value for custom properties 
>(CustomDeviceProperties) is split into 4, one per each version (3.0, 3.1, 3.2, 
>3.3). 
Since vNIC profile is located under the DC tree, it takes the DC version - 3.2 
in this specific case. 

I tried to set the config value for 3.2 but got: 
$ engine-config -s 
CustomDeviceProperties="{type=interface;prop={myProp=[a-zA-Z0-9-]+}}" 
--cver=3.2 
Cannot set value {type=interface;prop={myProp=[a-zA-Z0-9-]+}} to key 
CustomDeviceProperties. Device custom properties are not supported in version 
3.2 

This is already not very good, since in a 3.2 DC there can be 3.3 clusters with 
3.3 hosts that do support custom device properties. 

I also tried to alter the config value in the DB directly, but the custom 
properties code ignored it since custom properties are not supported in 3.2. 
So, de facto, I have no reasonable way as a user to define custom device 
properties to use for my vNIC profiles in DC < 3.3. 

I opened the bug https://bugzilla.redhat.com/show_bug.cgi?id=1028757 for this, 
however I also want to discuss the situation: 

1. As a user, I can't set custom properties for level < 3.3 which is not good. 
Removing the blocking, and loading custom properties for all versions would fix 
the bug and allow using custom device properties for older versions, the 
reasonable place to block this would be running a VM (or plugging a device). 
Basically this is the lesser issue.. 

2. I just don't see the added value of splitting the definition of the 
properties per level.. 
The custom properties are extensions which might or might not be available to a 
certain VM, I don't see how having different sets of custom properties per 
version (what version, DC version, cluster version?) would make any difference 
- either the VM can utilize the extension given some state of the system, or it 
can't, but the determining factor is not the version but rather the 
availability of the extension. 
For example, I can have a hook for vNIC altering some property installed on 
host A and not host B, if the VM runs on host A it will get this capability and 
on host B it won't, regardless the DC version the VM is in. 

This is not to say we shouldn't block custom properties on the engine-VDSM API 
level since it's only available since 3.3, but this is handled by another 
config value (SupportCustomDeviceProperties) which is not alterable by the 
user. 
So basically, I think splitting the value per version is over complication and 
see no added value to the users, just more maintenance should they choose to 
use this feature. 

Your thoughts please. 

Regards, 
Mike 

_______________________________________________
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel

Reply via email to