[Engine-devel] FeatureSupported and compatibility versions

Kanagaraj Mayilsamy kmayilsa at redhat.com
Mon Mar 18 07:20:43 UTC 2013



----- Original Message -----
> From: "Shireesh Anjal" <sanjal at redhat.com>
> To: engine-devel at ovirt.org
> Sent: Monday, March 18, 2013 11:58:14 AM
> Subject: [Engine-devel] FeatureSupported and compatibility versions
> 
> Hi all,
> 
> The current mechanism in oVirt to check whether a feature is
> supported
> in a particular compatibility version is to use the FeatureSupported
> class. e.g.
> 
> FeatureSupported.networkLinking(getVm().getVdsGroupCompatibilityVersion())
> 
> Checks whether the "network linking" feature is supported for the the
> VM's cluster compatibility version. This internally checks whether
> the
> value of the corresponding config (NetworkLinkingSupported) for the
> given compatibility version is true/false.
> 
> I'm not sure if this is a good idea, since a feature is typically
> supported "from" a particular version. E.g. Gluster support was
> introduced in 3.1, and it continues to be available in all subsequent
> versions. So I see no point in adding configuration for every version
> indicating whether the feature is supported in that version or not. I
> suggest to use either of the following options:
> 
> 1) Instead of using a boolean config for each version, use a single
> string config that indicates the "supported from" version e.g.
> GlusterSupportedFrom = 3.1. There could be rare  cases where a
> feature,
> for some reason, is removed in some release. In such cases, we could
> use
> one additional config for the "supported to" version.
> 
> 2) Continue with the boolean approach, but do not have entries for
> every
> version; rather make use of the "default value" for majority of
> cases,
> and add the explicit version mapping for the minority e.g.
> GlusterSupported = true by default, and false in case of 3.0 (only
> one
> config required for 3.0)

I think we can slightly modify this approach to make it better. I will start with an example.
Lets say a feature 'XyzFeature' is introduced in 3.2 and available till 3.5. And in 3.6,  'XyzFeature' is removed because of something better is available.

We can have the following configuration. 
('XyzFeatureSupported','true','3.2')
('XyzFeatureSupported','false','3.6')

And the above will be interpreted as 'XyzFeature' is supported from 3.2 onwards and not-supported from 3.6 onwards. 

Thanks,
Kanagaraj

> 
> Thoughts?
> 
> Regards,
> Shireesh
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
> 



More information about the Engine-devel mailing list