----- Original Message -----
From: "Shireesh Anjal" <sanjal(a)redhat.com>
To: engine-devel(a)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(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel