Add support for Option Groups in LazyPluggable
Use @markmc's suggestion to enhance LazyPluggable with an optional config group. Also fix the baremetal database backend option to use the "baremetal" config group. Fixes LP #1093043 Change-Id: I28cf51a2962f516fcef4ced19e30c985220e86dc
This commit is contained in:
@@ -507,14 +507,18 @@ def str_dict_replace(s, mapping):
|
||||
class LazyPluggable(object):
|
||||
"""A pluggable backend loaded lazily based on some value."""
|
||||
|
||||
def __init__(self, pivot, **backends):
|
||||
def __init__(self, pivot, config_group=None, **backends):
|
||||
self.__backends = backends
|
||||
self.__pivot = pivot
|
||||
self.__backend = None
|
||||
self.__config_group = config_group
|
||||
|
||||
def __get_backend(self):
|
||||
if not self.__backend:
|
||||
backend_name = CONF[self.__pivot]
|
||||
if self.__config_group is None:
|
||||
backend_name = CONF[self.__pivot]
|
||||
else:
|
||||
backend_name = CONF[self.__config_group][self.__pivot]
|
||||
if backend_name not in self.__backends:
|
||||
msg = _('Invalid backend: %s') % backend_name
|
||||
raise exception.NovaException(msg)
|
||||
|
||||
Reference in New Issue
Block a user