So that a LegacyEngineFacade is created without actually initializing the factory. Then, the code that's failing here fails to call the configure() function, which would establish the factory with engine parameters.
In oslo.db I can add a more descriptive exception message but you'd still get an error, and this error doesn't know about Nova having a function called "configure()" either.
Here's the bug in Nova.
First, they are calling upon the private _factory member inappropriately:
def get_engine( use_slave= False): manager. _factory. get_legacy_ facade( ).get_engine(
use_slave= use_slave)
return main_context_
def get_api_engine(): manager. _factory. get_legacy_ facade( ).get_engine( )
return api_context_
def get_session( use_slave= False, **kwargs): manager. _factory. get_legacy_ facade( ).get_session(
use_slave= use_slave, **kwargs)
return main_context_
So that a LegacyEngineFacade is created without actually initializing the factory. Then, the code that's failing here fails to call the configure() function, which would establish the factory with engine parameters.
In oslo.db I can add a more descriptive exception message but you'd still get an error, and this error doesn't know about Nova having a function called "configure()" either.