[Bug 1882844] Change abandoned on oslo.db (master)

OpenStack Infra 1882844 at bugs.launchpad.net
Mon Jun 15 15:29:57 UTC 2020


Change abandoned by David Ames (david.ames at canonical.com) on branch: master
Review: https://review.opendev.org/734713
Reason: Unnecessary change.

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to python-oslo.db in Ubuntu.
https://bugs.launchpad.net/bugs/1882844

Title:
  No way to set SSL parameters with pymysql

Status in oslo.db:
  In Progress
Status in python-oslo.db package in Ubuntu:
  Triaged

Bug description:
  There is no way to pass SSL parameters from oslo.db through sqlalchemy
  to pymysql.

  pymsyql is expecting a parameter, "ssl" to be a dictionary of the
  form:

  ssl= {
    "ca": "/path/to/ca.pem",
    "capath": "/path/to/cas/",
    "cert": "/path/to/cert.pem",
    "key": "/path/to/key.pem",
    "cipher": "tls_1.2",
    "check_hostname: False,
  }

  Steps to reproduce:
  Examples use:
  python3-keystone   2:17.0.0-0ubuntu0.20.04.1
  python3-oslo.db    8.1.0-0ubuntu1

  If connection parameters set several of these items, then the
  following warning occurs and DB access fails.

  connection_parameters = ssl=True&ca=/etc/ssl/certs/ca-certificates.crt

  (keystone.server.flask.application): 2020-06-09 20:34:10,159 WARNING
  __init__() got an unexpected keyword argument 'ca'

  
  If only attempting to turn on ssl, then the following traceback occurs because it is a str not a dict.

  connection_parameters = ssl=True

  020-06-09 20:35:50.110184 Traceback (most recent call last):
  2020-06-09 20:35:50.110644   File "/usr/lib/python3/dist-packages/keystone/notifications.py", line 573, in wrapper
  2020-06-09 20:35:50.110733     result = f(wrapped_self, user_id, *args, **kwargs)
  2020-06-09 20:35:50.110804   File "/usr/lib/python3/dist-packages/keystone/identity/core.py", line 414, in wrapper
  2020-06-09 20:35:50.110862     return f(self, *args, **kwargs)
  2020-06-09 20:35:50.110922   File "/usr/lib/python3/dist-packages/keystone/identity/core.py", line 424, in wrapper
  2020-06-09 20:35:50.110988     return f(self, *args, **kwargs)
  2020-06-09 20:35:50.111064   File "/usr/lib/python3/dist-packages/keystone/identity/core.py", line 903, in authenticate
  2020-06-09 20:35:50.111130     ref = driver.authenticate(entity_id, password)
  2020-06-09 20:35:50.111191   File "/usr/lib/python3/dist-packages/keystone/identity/backends/sql.py", line 59, in authenticate
  2020-06-09 20:35:50.117473     with sql.session_for_read() as session:
  2020-06-09 20:35:50.117713   File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
  2020-06-09 20:35:50.117878     return next(self.gen)
  2020-06-09 20:35:50.118071   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 1058, in _transaction_scope
  2020-06-09 20:35:50.118201     with current._produce_block(
  2020-06-09 20:35:50.118357   File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
  2020-06-09 20:35:50.118572     return next(self.gen)
  2020-06-09 20:35:50.118693   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 657, in _session
  2020-06-09 20:35:50.118771     self.session = self.factory._create_session(
  2020-06-09 20:35:50.118876   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 418, in _create_session
  2020-06-09 20:35:50.118955     self._start()
  2020-06-09 20:35:50.119079   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 508, in _start
  2020-06-09 20:35:50.119157     self._setup_for_connection(
  2020-06-09 20:35:50.119349   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 533, in _setup_for_connection
  2020-06-09 20:35:50.119542     engine = engines.create_engine(
  2020-06-09 20:35:50.119738   File "/usr/lib/python3/dist-packages/debtcollector/renames.py", line 43, in decorator
  2020-06-09 20:35:50.119861     return wrapped(*args, **kwargs)
  2020-06-09 20:35:50.120012   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 201, in create_engine
  2020-06-09 20:35:50.120135     test_conn = _test_connection(engine, max_retries, retry_interval)
  2020-06-09 20:35:50.120267   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 376, in _test_connection
  2020-06-09 20:35:50.120390     return engine.connect()
  2020-06-09 20:35:50.120609   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2209, in connect
  2020-06-09 20:35:50.120733     return self._connection_cls(self, **kwargs)
  2020-06-09 20:35:50.120882   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 103, in __init__
  2020-06-09 20:35:50.121013     else engine.raw_connection()
  2020-06-09 20:35:50.121110   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2306, in raw_connection
  2020-06-09 20:35:50.121185     return self._wrap_pool_connect(
  2020-06-09 20:35:50.121282   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect
  2020-06-09 20:35:50.121358     return fn()
  2020-06-09 20:35:50.121607   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 303, in unique_connection
  2020-06-09 20:35:50.121734     return _ConnectionFairy._checkout(self)
  2020-06-09 20:35:50.121876   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 760, in _checkout
  2020-06-09 20:35:50.121955     fairy = _ConnectionRecord.checkout(pool)
  2020-06-09 20:35:50.122139   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 492, in checkout
  2020-06-09 20:35:50.122219     rec = pool._do_get()
  2020-06-09 20:35:50.122316   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 139, in _do_get
  2020-06-09 20:35:50.122438     self._dec_overflow()
  2020-06-09 20:35:50.122649   File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
  2020-06-09 20:35:50.122755     compat.reraise(exc_type, exc_value, exc_tb)
  2020-06-09 20:35:50.122857   File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 153, in reraise
  2020-06-09 20:35:50.122933     raise value
  2020-06-09 20:35:50.123030   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 136, in _do_get
  2020-06-09 20:35:50.123106     return self._create_connection()
  2020-06-09 20:35:50.123232   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
  2020-06-09 20:35:50.123347     return _ConnectionRecord(self)
  2020-06-09 20:35:50.123508   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 437, in __init__
  2020-06-09 20:35:50.123693     self.__connect(first_connect_check=True)
  2020-06-09 20:35:50.123814   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 639, in __connect
  2020-06-09 20:35:50.123891     connection = pool._invoke_creator(self)
  2020-06-09 20:35:50.123991   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/strategies.py", line 114, in connect
  2020-06-09 20:35:50.124067     return dialect.connect(*cargs, **cparams)
  2020-06-09 20:35:50.124163   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 482, in connect
  2020-06-09 20:35:50.124240     return self.dbapi.connect(*cargs, **cparams)
  2020-06-09 20:35:50.124364   File "/usr/lib/python3/dist-packages/pymysql/__init__.py", line 94, in Connect
  2020-06-09 20:35:50.124458     return Connection(*args, **kwargs)
  2020-06-09 20:35:50.124611   File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 253, in __init__
  2020-06-09 20:35:50.124694     self.ctx = self._create_ssl_ctx(ssl)
  2020-06-09 20:35:50.124792   File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 330, in _create_ssl_ctx
  2020-06-09 20:35:50.125073     ca = sslp.get('ca')
  2020-06-09 20:35:50.125201 AttributeError: 'str' object has no attribute 'get'
  2020-06-09 20:35:50.125530 
  2020-06-09 20:35:50.125681 During handling of the above exception, another exception occurred:
  2020-06-09 20:35:50.125787 
  2020-06-09 20:35:50.125891 Traceback (most recent call last):
  2020-06-09 20:35:50.126395   File "/usr/lib/python3/dist-packages/flask/app.py", line 2463, in __call__
  2020-06-09 20:35:50.126479     return self.wsgi_app(environ, start_response)
  2020-06-09 20:35:50.126547   File "/usr/lib/python3/dist-packages/werkzeug/middleware/proxy_fix.py", line 232, in __call__
  2020-06-09 20:35:50.126679     return self.app(environ, start_response)
  2020-06-09 20:35:50.126748   File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
  2020-06-09 20:35:50.126802     resp = self.call_func(req, *args, **kw)
  2020-06-09 20:35:50.126860   File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
  2020-06-09 20:35:50.126912     return self.func(req, *args, **kwargs)
  2020-06-09 20:35:50.126969   File "/usr/lib/python3/dist-packages/oslo_middleware/base.py", line 130, in __call__
  2020-06-09 20:35:50.127021     response = req.get_response(self.application)
  2020-06-09 20:35:50.127077   File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
  2020-06-09 20:35:50.127129     status, headers, app_iter = self.call_application(
  2020-06-09 20:35:50.127186   File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
  2020-06-09 20:35:50.127338     app_iter = application(self.environ, start_response)
  2020-06-09 20:35:50.127423   File "/usr/lib/python3/dist-packages/webob/dec.py", line 143, in __call__
  2020-06-09 20:35:50.127479     return resp(environ, start_response)
  2020-06-09 20:35:50.127536   File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
  2020-06-09 20:35:50.127663     resp = self.call_func(req, *args, **kw)
  2020-06-09 20:35:50.127736   File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
  2020-06-09 20:35:50.127791     return self.func(req, *args, **kwargs)
  2020-06-09 20:35:50.127848   File "/usr/lib/python3/dist-packages/oslo_middleware/base.py", line 130, in __call__
  2020-06-09 20:35:50.127901     response = req.get_response(self.application)
  2020-06-09 20:35:50.127957   File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
  2020-06-09 20:35:50.128008     status, headers, app_iter = self.call_application(
  2020-06-09 20:35:50.128065   File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
  2020-06-09 20:35:50.128182     app_iter = application(self.environ, start_response)
  2020-06-09 20:35:50.128278   File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
  2020-06-09 20:35:50.128382     resp = self.call_func(req, *args, **kw)
  2020-06-09 20:35:50.128482   File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
  2020-06-09 20:35:50.128567     return self.func(req, *args, **kwargs)
  2020-06-09 20:35:50.128730   File "/usr/lib/python3/dist-packages/osprofiler/web.py", line 112, in __call__
  2020-06-09 20:35:50.128811     return request.get_response(self.application)
  2020-06-09 20:35:50.128877   File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
  2020-06-09 20:35:50.128944     status, headers, app_iter = self.call_application(
  2020-06-09 20:35:50.129004   File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
  2020-06-09 20:35:50.129056     app_iter = application(self.environ, start_response)
  2020-06-09 20:35:50.129113   File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
  2020-06-09 20:35:50.129165     resp = self.call_func(req, *args, **kw)
  2020-06-09 20:35:50.129222   File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
  2020-06-09 20:35:50.129273     return self.func(req, *args, **kwargs)
  2020-06-09 20:35:50.129330   File "/usr/lib/python3/dist-packages/oslo_middleware/request_id.py", line 58, in __call__
  2020-06-09 20:35:50.129382     response = req.get_response(self.application)
  2020-06-09 20:35:50.129439   File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
  2020-06-09 20:35:50.129499     status, headers, app_iter = self.call_application(
  2020-06-09 20:35:50.129576   File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
  2020-06-09 20:35:50.129688     app_iter = application(self.environ, start_response)
  2020-06-09 20:35:50.129763   File "/usr/lib/python3/dist-packages/keystone/server/flask/request_processing/middleware/url_normalize.py", line 38, in __call__
  2020-06-09 20:35:50.129835     return self.app(environ, start_response)
  2020-06-09 20:35:50.129896   File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
  2020-06-09 20:35:50.129948     resp = self.call_func(req, *args, **kw)
  2020-06-09 20:35:50.130042   File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
  2020-06-09 20:35:50.130101     return self.func(req, *args, **kwargs)
  2020-06-09 20:35:50.130158   File "/usr/lib/python3/dist-packages/keystonemiddleware/auth_token/__init__.py", line 341, in __call__
  2020-06-09 20:35:50.130210     response = req.get_response(self._app)
  2020-06-09 20:35:50.130267   File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
  2020-06-09 20:35:50.130318     status, headers, app_iter = self.call_application(
  2020-06-09 20:35:50.130434   File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
  2020-06-09 20:35:50.130515     app_iter = application(self.environ, start_response)
  2020-06-09 20:35:50.130611   File "/usr/lib/python3/dist-packages/werkzeug/middleware/dispatcher.py", line 66, in __call__
  2020-06-09 20:35:50.130800     return app(environ, start_response)
  2020-06-09 20:35:50.130890   File "/usr/lib/python3/dist-packages/flask/app.py", line 2449, in wsgi_app
  2020-06-09 20:35:50.130956     response = self.handle_exception(e)
  2020-06-09 20:35:50.131030   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 272, in error_router
  2020-06-09 20:35:50.131148     return original_handler(e)
  2020-06-09 20:35:50.131256   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 272, in error_router
  2020-06-09 20:35:50.131321     return original_handler(e)
  2020-06-09 20:35:50.131383   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 272, in error_router
  2020-06-09 20:35:50.131436     return original_handler(e)
  2020-06-09 20:35:50.131493   [Previous line repeated 27 more times]
  2020-06-09 20:35:50.131554   File "/usr/lib/python3/dist-packages/flask/app.py", line 1866, in handle_exception
  2020-06-09 20:35:50.131606     reraise(exc_type, exc_value, tb)
  2020-06-09 20:35:50.132051   File "/usr/lib/python3/dist-packages/flask/_compat.py", line 38, in reraise
  2020-06-09 20:35:50.132201     raise value.with_traceback(tb)
  2020-06-09 20:35:50.132317   File "/usr/lib/python3/dist-packages/flask/app.py", line 2446, in wsgi_app
  2020-06-09 20:35:50.132402     response = self.full_dispatch_request()
  2020-06-09 20:35:50.132498   File "/usr/lib/python3/dist-packages/flask/app.py", line 1951, in full_dispatch_request
  2020-06-09 20:35:50.132574     rv = self.handle_user_exception(e)
  2020-06-09 20:35:50.132689   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 272, in error_router
  2020-06-09 20:35:50.132862     return original_handler(e)
  2020-06-09 20:35:50.132975   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 272, in error_router
  2020-06-09 20:35:50.133053     return original_handler(e)
  2020-06-09 20:35:50.133149   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 272, in error_router
  2020-06-09 20:35:50.133236     return original_handler(e)
  2020-06-09 20:35:50.133366   [Previous line repeated 27 more times]
  2020-06-09 20:35:50.133464   File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in handle_user_exception
  2020-06-09 20:35:50.133541     reraise(exc_type, exc_value, tb)
  2020-06-09 20:35:50.133640   File "/usr/lib/python3/dist-packages/flask/_compat.py", line 38, in reraise
  2020-06-09 20:35:50.133789     raise value.with_traceback(tb)
  2020-06-09 20:35:50.133903   File "/usr/lib/python3/dist-packages/flask/app.py", line 1949, in full_dispatch_request
  2020-06-09 20:35:50.142432     rv = self.dispatch_request()
  2020-06-09 20:35:50.143007   File "/usr/lib/python3/dist-packages/flask/app.py", line 1935, in dispatch_request
  2020-06-09 20:35:50.143040     return self.view_functions[rule.endpoint](**req.view_args)
  2020-06-09 20:35:50.143066   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 468, in wrapper
  2020-06-09 20:35:50.143087     resp = resource(*args, **kwargs)
  2020-06-09 20:35:50.143110   File "/usr/lib/python3/dist-packages/flask/views.py", line 89, in view
  2020-06-09 20:35:50.143140     return self.dispatch_request(*args, **kwargs)
  2020-06-09 20:35:50.143168   File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 583, in dispatch_request
  2020-06-09 20:35:50.143189     resp = meth(*args, **kwargs)
  2020-06-09 20:35:50.143212   File "/usr/lib/python3/dist-packages/keystone/server/flask/common.py", line 1064, in wrapper
  2020-06-09 20:35:50.143232     return f(*args, **kwargs)
  2020-06-09 20:35:50.143254   File "/usr/lib/python3/dist-packages/keystone/api/auth.py", line 315, in post
  2020-06-09 20:35:50.143274     token = authentication.authenticate_for_token(auth_data)
  2020-06-09 20:35:50.143298   File "/usr/lib/python3/dist-packages/keystone/api/_shared/authentication.py", line 185, in authenticate_for_token
  2020-06-09 20:35:50.143319     authenticate(auth_info, auth_context)
  2020-06-09 20:35:50.143343   File "/usr/lib/python3/dist-packages/keystone/api/_shared/authentication.py", line 152, in authenticate
  2020-06-09 20:35:50.143363     resp = method.authenticate(auth_info.get_method_data(method_name))
  2020-06-09 20:35:50.143386   File "/usr/lib/python3/dist-packages/keystone/auth/plugins/password.py", line 34, in authenticate
  2020-06-09 20:35:50.143407     PROVIDERS.identity_api.authenticate(
  2020-06-09 20:35:50.143429   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 115, in wrapped
  2020-06-09 20:35:50.143449     __ret_val = __f(*args, **kwargs)
  2020-06-09 20:35:50.143471   File "/usr/lib/python3/dist-packages/keystone/notifications.py", line 586, in wrapper
  2020-06-09 20:35:50.143491     _send_audit_notification(self.action, initiator,
  2020-06-09 20:35:50.143514   File "/usr/lib/python3/dist-packages/keystone/notifications.py", line 761, in _send_audit_notification
  2020-06-09 20:35:50.143534     service_list = _CATALOG_HELPER_OBJ.catalog_api.list_services()
  2020-06-09 20:35:50.143636   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 115, in wrapped
  2020-06-09 20:35:50.143751     __ret_val = __f(*args, **kwargs)
  2020-06-09 20:35:50.143783   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 62, in wrapper
  2020-06-09 20:35:50.143804     return f(self, *args, **kwargs)
  2020-06-09 20:35:50.143827   File "/usr/lib/python3/dist-packages/keystone/catalog/core.py", line 179, in list_services
  2020-06-09 20:35:50.143848     return self.driver.list_services(hints or driver_hints.Hints())
  2020-06-09 20:35:50.143871   File "/usr/lib/python3/dist-packages/keystone/common/driver_hints.py", line 42, in wrapper
  2020-06-09 20:35:50.143891     return f(self, hints, *args, **kwargs)
  2020-06-09 20:35:50.143913   File "/usr/lib/python3/dist-packages/keystone/catalog/backends/sql.py", line 183, in list_services
  2020-06-09 20:35:50.143933     with sql.session_for_read() as session:
  2020-06-09 20:35:50.143957   File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
  2020-06-09 20:35:50.143976     return next(self.gen)
  2020-06-09 20:35:50.143998   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 1058, in _transaction_scope
  2020-06-09 20:35:50.144018     with current._produce_block(
  2020-06-09 20:35:50.144041   File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
  2020-06-09 20:35:50.144060     return next(self.gen)
  2020-06-09 20:35:50.144083   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 657, in _session
  2020-06-09 20:35:50.144102     self.session = self.factory._create_session(
  2020-06-09 20:35:50.144125   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 418, in _create_session
  2020-06-09 20:35:50.144145     self._start()
  2020-06-09 20:35:50.144167   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 508, in _start
  2020-06-09 20:35:50.144187     self._setup_for_connection(
  2020-06-09 20:35:50.144209   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 533, in _setup_for_connection
  2020-06-09 20:35:50.144228     engine = engines.create_engine(
  2020-06-09 20:35:50.144251   File "/usr/lib/python3/dist-packages/debtcollector/renames.py", line 43, in decorator
  2020-06-09 20:35:50.144271     return wrapped(*args, **kwargs)
  2020-06-09 20:35:50.144293   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 201, in create_engine
  2020-06-09 20:35:50.144312     test_conn = _test_connection(engine, max_retries, retry_interval)
  2020-06-09 20:35:50.144334   File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/engines.py", line 376, in _test_connection
  2020-06-09 20:35:50.144355     return engine.connect()
  2020-06-09 20:35:50.144377   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2209, in connect
  2020-06-09 20:35:50.144397     return self._connection_cls(self, **kwargs)
  2020-06-09 20:35:50.144419   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 103, in __init__
  2020-06-09 20:35:50.144438     else engine.raw_connection()
  2020-06-09 20:35:50.144461   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2306, in raw_connection
  2020-06-09 20:35:50.144480     return self._wrap_pool_connect(
  2020-06-09 20:35:50.144502   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect
  2020-06-09 20:35:50.144521     return fn()
  2020-06-09 20:35:50.144543   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 303, in unique_connection
  2020-06-09 20:35:50.144628     return _ConnectionFairy._checkout(self)
  2020-06-09 20:35:50.144666   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 760, in _checkout
  2020-06-09 20:35:50.144687     fairy = _ConnectionRecord.checkout(pool)
  2020-06-09 20:35:50.144711   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 492, in checkout
  2020-06-09 20:35:50.144730     rec = pool._do_get()
  2020-06-09 20:35:50.144755   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 139, in _do_get
  2020-06-09 20:35:50.144815     self._dec_overflow()
  2020-06-09 20:35:50.144845   File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
  2020-06-09 20:35:50.144866     compat.reraise(exc_type, exc_value, exc_tb)
  2020-06-09 20:35:50.144902   File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 153, in reraise
  2020-06-09 20:35:50.144926     raise value
  2020-06-09 20:35:50.144949   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 136, in _do_get
  2020-06-09 20:35:50.144969     return self._create_connection()
  2020-06-09 20:35:50.144992   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
  2020-06-09 20:35:50.145011     return _ConnectionRecord(self)
  2020-06-09 20:35:50.145034   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 437, in __init__
  2020-06-09 20:35:50.145054     self.__connect(first_connect_check=True)
  2020-06-09 20:35:50.145076   File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 639, in __connect
  2020-06-09 20:35:50.145095     connection = pool._invoke_creator(self)
  2020-06-09 20:35:50.145117   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/strategies.py", line 114, in connect
  2020-06-09 20:35:50.145137     return dialect.connect(*cargs, **cparams)
  2020-06-09 20:35:50.145159   File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 482, in connect
  2020-06-09 20:35:50.145178     return self.dbapi.connect(*cargs, **cparams)
  2020-06-09 20:35:50.145201   File "/usr/lib/python3/dist-packages/pymysql/__init__.py", line 94, in Connect
  2020-06-09 20:35:50.145220     return Connection(*args, **kwargs)
  2020-06-09 20:35:50.145242   File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 253, in __init__
  2020-06-09 20:35:50.145262     self.ctx = self._create_ssl_ctx(ssl)
  2020-06-09 20:35:50.145284   File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 330, in _create_ssl_ctx
  2020-06-09 20:35:50.145303     ca = sslp.get('ca')
  2020-06-09 20:35:50.145389 AttributeError: 'str' object has no attribute 'get'

To manage notifications about this bug go to:
https://bugs.launchpad.net/oslo.db/+bug/1882844/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list