On 07/23/2015 01:04 PM, Kevin L. Mitchell wrote: > On Thu, 2015-07-23 at 11:41 -0500, Sean Dague wrote: >> On 07/23/2015 11:23 AM, Roman Podoliaka wrote: >>> Hi all, >>> >>> FWIW, this is exactly what we have in oslo libs, e.g. in oslo.db [0] >>> >>> Putting all Nova options into one big file is probably not a good >>> idea, still we could consider storing those per-package (per backend, >>> per driver, etc), rather than per Python module to reduce the number >>> of possible circular imports when using import_opt() helper. >>> >>> Thanks, >>> Roman >>> >>> [0] https://github.com/openstack/oslo.db/blob/master/oslo_db/options.py >> >> Actually, we just happened to be discussing this at the Nova meetup this >> morning. And the general consensus was the opposite. It would be better >> to collect all the config options in one file, especially if we are >> going to expand the help (which we would like to do). Exceptions are >> done that way in Nova. >> >> Michael Still is going to propose some initial patches to get this >> rolling. We don't expect this to be a big bang, but in chunks as the >> help is being improved. > > I'm concerned because of how big the single configuration file will > become. It is a true pain in the butt to review anything that touches > the db API (or tests) because of how huge that one file is (traditional > view in Gerrit performs like a dog on large files), and I'm worried that > the same will become true of a single nova/flags.py if we go that route. > I do like Roman's idea of centralizing them into a smattering of files, > though. What if we were to create a new top-level package and split the > config options up into a small number of individual files there? Would > that be a reasonable compromise between Roman's suggestion and the > one-file-of-config route?
That's a possibility. We have number of files above 4KLOC
4168 nova/tests/unit/virt/xenapi/test_xenapi.py
4203 nova/compute/api.py
6288 nova/compute/manager.py
6397 nova/db/sqlalchemy/api.py
6818 nova/virt/libvirt/driver.py
8609 nova/tests/unit/db/test_db_api.py
11558 nova/tests/unit/compute/test_compute.py
13822 nova/tests/unit/virt/libvirt/test_driver.py
Maybe a directory is fine, especially if module mapped to [subsection].
nova/config/
default.py
glance.py
...
which makes it reasonably discoverable and mappable back and forth from
config file to files.
-Sean
--
Sean Dague
http://dague.net
signature.asc
Description: OpenPGP digital signature
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
