On 22.10.2015 17:29, Martin Basti wrote:
> Hello all,
> in current master branch we have mixed usage of literals 0, 1 and constants
> MIN_DOMAIN_LEVEL, MAX_DOMAIN_LEVEL, and it is quite mess.
> I suggest to use names for domain levels:
> COMPAT_DOMAIN_LEVEL = 0
> PROMOTION_DOMAIN_LEVEL = 1
> UBER_NEW_FEATURE_DOMAIN_LEVEL = 2
> MIN_DOMAIN_LEVEL = COMPAT_DOMAIN_LEVEL (=0)
> MAX_DOMAIN_LEVEL = UBER_NEW_FEATURE_DOMAIN_LEVEL (=2)
> * ability to grep it in code
> * better readability in code
I very much agree. If you want to see the reason with naked eye, see
[PATCH 0086] disable ipa-replica prepare in non-zero domain levels
Without additional constants we will end up with checks like:
+ domain_level = dsinstance.get_domain_level(api)
+ if domain_level > MIN_DOMAIN_LEVEL:
+ raise RuntimeError(
Fail if domain_level is higher than MIN_DOMAIN_LEVEL? What?
Even worse, bad things will happen in future when we decide to drop support
for domain level 0 etc.
Of course, using literals 0, 1, etc. is an option, but I do not like it very
much. Again, when we drop support for a particular level we need a way to
clean up the code, so named constant seems like a way to go.
Manage your subscription for the Freeipa-devel mailing list:
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code