nova-status doesn't render cell DB connection strings before use
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Matt Riedemann | ||
Rocky |
Fix Committed
|
Medium
|
Matt Riedemann |
Bug Description
Description
===========
I've been working on introducing basic upgrade check calls in TripleO but have encountered the following issue now template based db connection strings are being used by TripleO in support of cellsv2:
$ nova-status upgrade check
[..]
ArgumentError: Could not parse rfc1738 URL from string '{scheme}
Steps to reproduce
==================
Expected result
===============
Connection string is formatted correctly before use.
Actual result
=============
Connection string is not formatted before use leading to `nova-status` errors.
Environment
===========
1. Exact version of OpenStack you are running. See the following
list for all releases: http://
Master / Stein
2. Which hypervisor did you use?
(For example: Libvirt + KVM, Libvirt + XEN, Hyper-V, PowerKVM, ...)
What's the version of that?
N/A
2. Which storage type did you use?
(For example: Ceph, LVM, GPFS, ...)
What's the version of that?
N/A
3. Which networking type did you use?
(For example: nova-network, Neutron with OpenVSwitch, ...)
N/A
Logs & Configs
==============
See above.
OK this is the useful part of the error:
2019-02-26 22:04:00 | "Traceback (most recent call last):", lib/python2. 7/site- packages/ nova/cmd/ status. py\", line 494, in main", lib/python2. 7/site- packages/ oslo_upgradeche ck/upgradecheck .py\", line 98, in check", lib/python2. 7/site- packages/ nova/cmd/ status. py\", line 238, in _check_ ironic_ flavor_ migration" , bind=db_ session. get_engine( context= cctxt)) ", lib/python2. 7/site- packages/ nova/db/ sqlalchemy/ api.py\ ", line 139, in get_engine", writer. get_engine( )", lib/python2. 7/site- packages/ oslo_db/ sqlalchemy/ enginefacade. py\", line 833, in get_engine", get_writer_ engine( )", lib/python2. 7/site- packages/ oslo_db/ sqlalchemy/ enginefacade. py\", line 372, in get_writer_engine", lib/python2. 7/site- packages/ oslo_db/ sqlalchemy/ enginefacade. py\", line 510, in _start", lib/python2. 7/site- packages/ oslo_db/ sqlalchemy/ enginefacade. py\", line 534, in _setup_ for_connection" , sql_connection, **engine_kwargs)", lib/python2. 7/site- packages/ debtcollector/ renames. py\", line 43, in decorator", lib/python2. 7/site- packages/ oslo_db/ sqlalchemy/ engines. py\", line 153, in create_engine", engine. url.make_ url(sql_ connection) ", lib64/python2. 7/site- packages/ sqlalchemy/ engine/ url.py\ ", line 225, in make_url", rfc1738_ args(name_ or_url) ", lib64/python2. 7/site- packages/ sqlalchemy/ engine/ url.py\ ", line 287, in _parse_ rfc1738_ args", ://{username} :{password} @{hostname} /nova?{ query}' "
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " ret = fn(*fn_args, **fn_kwargs)",
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " result = func(self)",
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " meta = MetaData(
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " return ctxt_mgr.
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " return self._factory.
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " self._start()",
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " engine_args, maker_args)",
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " sql_connection=
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " return wrapped(*args, **kwargs)",
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " url = sqlalchemy.
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " return _parse_
2019-02-26 22:04:00 | " File \"/usr/
2019-02-26 22:04:00 | " \"Could not parse rfc1738 URL from string '%s'\" % name",
2019-02-26 22:04:00 | "ArgumentError: Could not parse rfc1738 URL from string '{scheme}