[openstack-dev] Configuration Options, APIs, Class Paths, Oh my!

Russell Bryant rbryant at redhat.com
Tue Oct 30 01:21:49 UTC 2012


Greetings,

This message was prompted by the following review, but it applies to an
issue that is broader than one patch.  It applies to a number of
existing configuration options, as well as future ones.  So, I figured
it was worth having a bit of discussion about it.

https://review.openstack.org/#/c/10903/

This patch introduces a new configuration option, servicegroup_driver.
The default value for this option is
'nova.servicegroup.db_driver.DbDriver'.  I have a couple of objections
with using a class path as the value.

1) It breaks as soon as the code moves.

There is a good chance this code will go to the oslo-incubator at some
point (openstack-common).  The value will change then.  It will change
and break yet again once the code moves out of incubation and into an
oslo library release.

For this particular option, I'd rather see the value just be something
simple like "db", and handle the details internally.

2) It implies that this is a stable, supported API.

This one is probably more controversial.  Configuration options are
knobs exposed to users of OpenStack.  An option that takes a class path
says "Hey, feel free to plug in whatever code you want right here!"  I
don't think that's what we really want.  If it *is* what we want (I hope
not), we've got a whole new set of issues to discuss.  If we have a
public API, we need to do it right and talk about the rules for
maintaining stable APIs for these plug points.

Thanks,

-- 
Russell Bryant



More information about the OpenStack-dev mailing list