There are 3 settings in Foreman that affect a lot of code for very little value IMHO:
These settings allow running a “simplified” Foreman, but come at a significant cost with respect to code complexity:
- every method touching taxonomies or users has to check the value of the relevant setting
- installer and puppet modules need to support setting them
- some methods related to taxonomies need to account for the possibility of just organizations or just locations enabled
- tests need to check all possible setting combinations as well
Going forward, I suggest being more opinionated and removing these settings.
This should be done in several stages:
- Informing users these settings are going to be removed in version X (1.21? 1.22?), perhaps using notifications.
- Creating a default organization and/or location and assigning all objects to it for users who have the matching taxonomy disabled. (perhaps not needed and we can set the “all” option on the taxonomy?)
- setting all the settings to
trueduring upgrade to X or X-1
- removing a whole lot of code
TBH, I would be happy to get rid of the
unattended setting as well, but it seems that it has more users and use-cases and would be harder to remove.
If you think there is reason to keep these settings, please shout out. Otherwise, if there is agreement, I would want to deprecate the settings in 1.20 already so by 1.22 we can get to step #4 above.