On Fri, 2013-06-14 at 12:41 -0700, Chris Behrens wrote: > On Jun 13, 2013, at 11:26 PM, Mark McLoughlin <mar...@redhat.com> wrote: > > > Is there any reason not to just put it in nova.conf as transport URLs? > > > > (By nova.conf, I mean cfg.CONF for nova which means you could happily do > > e.g. --config-file nova-cells.conf too) > > The issue with using cfg.CONF is that we need the same config options > for each cell. So, I guess you'd have to dynamically create the > config groups with cell name as the group nameā¦ and have some sort of > global option or an option in a different config group that specifies > the list of cells. I think it just gets kinda nasty. But let me know > if I'm missing a good way to do it. It seems like JSON is going to be > a little more flexible. :)
I don't know whether I like it yet or not, but here's how it might look: [cells] parents = parent1 children = child1, child2 [cell:parent1] transport_url = qpid://host1/nova [cell:child1] transport_url = qpid://host2/child1_nova [cell:child2] transport_url = qpid://host2/child2_nova Code for parsing that is: from oslo.config import cfg cells_opts = [ cfg.ListOpt('parents', default=[]), cfg.ListOpt('children', default=[]), ] cell_opts = [ cfg.StrOpt('api_url'), cfg.StrOpt('transport_url'), cfg.FloatOpt('weight_offset', default=0.0), cfg.FloatOpt('weight_scale', default=1.0), ] conf = cfg.CONF conf(['--config-file=cells.conf']) conf.register_opts(cells_opts, group='cells') def get_cell(conf, name): group_name = 'cell:' + name conf.register_opts(cell_opts, group=group_name) return conf[group_name] for cell in conf.cells.parents + conf.cells.children: print cell, get_cell(conf, cell).items() Ok ... I think I do like it :) Cheers, Mark. _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev