Comment 0 for bug 1629729

Revision history for this message
Takashi Sogabe (sogabe) wrote :

In kolla-kubernetes environments, nova-api fails to start at boot time due to ConfigFileValueError as follows.

2016-09-26 09:06:54.912 6 CRITICAL nova [req-a3b39f84-355b-409f-b83b-4a10573d8322 - - - - -] ConfigFileValueError: Value for option url is not valid: invalid URI: 'http://neutron-server:9696'
2016-09-26 09:06:54.912 6 ERROR nova Traceback (most recent call last):
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/bin/nova-api", line 10, in <module>
2016-09-26 09:06:54.912 6 ERROR nova sys.exit(main())
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/lib/python2.7/site-packages/nova/cmd/api.py", line 73, in main
2016-09-26 09:06:54.912 6 ERROR nova launcher.wait()
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_service/service.py", line 568, in wait
2016-09-26 09:06:54.912 6 ERROR nova self.conf.log_opt_values(LOG, logging.DEBUG)
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2630, in log_opt_values
2016-09-26 09:06:54.912 6 ERROR nova _sanitize(opt, getattr(group_attr, opt_name)))
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 3061, in __getattr__
2016-09-26 09:06:54.912 6 ERROR nova return self._conf._get(name, self._group)
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2672, in _get
2016-09-26 09:06:54.912 6 ERROR nova value = self._do_get(name, group, namespace)
2016-09-26 09:06:54.912 6 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2715, in _do_get
2016-09-26 09:06:54.912 6 ERROR nova % (opt.name, str(ve)))
2016-09-26 09:06:54.912 6 ERROR nova ConfigFileValueError: Value for option url is not valid: invalid URI: 'http://neutron-server:9696'
2016-09-26 09:06:54.912 6 ERROR nova

I dug into causes of the error above, and found that python-rfc3986 could not handle URI which has '-' characters in case of older versions of python-rfc3986 than 0.2.0.

https://pypi.python.org/pypi/rfc3986

Current version of RDO uses v0.2.0 of python-rfc3986.
I worked around by tweaking of docker/nova/nova-base/Dockerfile.j2 as follows:

----
{% if install_type == 'binary' and base_distro in ['centos', 'rhel'] %}
RUN pip install rfc3986 --upgrade
{% endif %}
----

Are there appropriate ways to correct the issue?