keystone charm fails on upgrade from stable version

Bug #1413285 reported by Liam Young
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
keystone (Juju Charms Collection)
Fix Released
High
Liam Young

Bug Description

The 'next' keystone charm has an always-on haproxy configuration which determine_api_port() is aware of. When the upgrade-charm hook fires get_local_endpoint() uses determine_api_port() to return the endpoint to enable direct communication with keystone on the lower admin port 35347. However, CONFIGS.write_all() hasn't run yet so keystone is still listening on 35357. This results in the hook failing with:

2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 Traceback (most recent call last):
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/upgrade-charm", line 427, in <module>
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 main()
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/upgrade-charm", line 421, in main
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 hooks.execute(sys.argv)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/charmhelpers/core/hookenv.py", line 528, in execute
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 self._hooks[hook_name]()
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/charmhelpers/core/host.py", line 296, in wrapped_f
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 f(*args)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/upgrade-charm", line 398, in upgrade_charm
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 ensure_initial_admin(config)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/keystone_utils.py", line 539, in ensure_initial_admin
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 create_tenant("admin")
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/var/lib/juju/agents/unit-keystone-0/charm/hooks/keystone_utils.py", line 415, in create_tenant
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 tenants = [t._info for t in manager.api.tenants.list()]
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/tenants.py", line 118, in list
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 tenant_list = self._list("/tenants%s" % query, "tenants")
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 106, in _list
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 resp, body = self.client.get(url)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 590, in get
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 return self._cs_request(url, 'GET', **kwargs)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 582, in _cs_request
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 return self.request(url, method, **kwargs)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 564, in request
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 resp = super(HTTPClient, self).request(url, method, **kwargs)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/baseclient.py", line 21, in request
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 return self.session.request(url, method, **kwargs)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/utils.py", line 318, in inner
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 return func(*args, **kwargs)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 242, in request
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 resp = self._send_request(url, method, redirect, **kwargs)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 271, in _send_request
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 raise exceptions.ConnectionError(msg)
2015-01-21 15:50:49 INFO unit.keystone/0.upgrade-charm logger.go:40 keystoneclient.exceptions.ConnectionError: Unable to establish connection to http://localhost:35347/v2.0/tenants
2015-01-21 15:50:49 ERROR juju.worker.uniter uniter.go:608 hook "upgrade-charm" failed: exit status 1

Liam Young (gnuoy)
Changed in keystone (Juju Charms Collection):
importance: Undecided → High
assignee: nobody → Liam Young (gnuoy)
Liam Young (gnuoy)
Changed in keystone (Juju Charms Collection):
milestone: none → 15.01
status: New → Fix Committed
James Page (james-page)
Changed in keystone (Juju Charms Collection):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.