keystone charm do not support conf file injection

Bug #1429680 reported by Fabricio Costi
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Keystone Charm
Triaged
Wishlist
Unassigned
keystone (Juju Charms Collection)
Invalid
Wishlist
Unassigned

Bug Description

From the command glance image-create, AFTER reaching 100% at 10:58:
...

Start: Fri Mar 6 6:04:14 AEDT 2015

[=============================>] 100%
Request returned failure status.
500 Internal Server Error
Failed to upload image 1e55a178-84d1-44b6-a465-9bd506496155
    (HTTP 500)

End: Fri Mar 6 10:58:55 AEDT 2015
...

From glance's api.log:

2015-03-06 10:58:27.506 851 ERROR glance.api.v1.upload_utils [-] Failed to upload image 1e55a178-84d1-44b6-a465-9bd506496155
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils Traceback (most recent call last):
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/api/v1/upload_utils.py", line 159, in upload_data_to_store
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils from_state='saving')
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/api.py", line 169, in update_image_metadata
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils from_state=from_state)
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/client.py", line 198, in update_image
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils headers=headers)
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/client.py", line 130, in do_request
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils 'exc_name': exc_name})
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/openstack/common/excutils.py", line 82, in __exit__
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils six.reraise(self.type_, self.value, self.tb)
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/client.py", line 115, in do_request
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils **kwargs)
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 71, in wrapped
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils return func(self, *args, **kwargs)
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 373, in do_request
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils headers=copy.deepcopy(headers))
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 85, in wrapped
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils return func(self, method, url, body, headers)
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 516, in _do_request
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils raise exception.NotAuthenticated(res.read())
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils NotAuthenticated: Authentication required
2015-03-06 10:58:27.506 851 TRACE glance.api.v1.upload_utils
2015-03-06 10:58:27.526 851 ERROR glance.api.v1.upload_utils [-] Unable to kill image 1e55a178-84d1-44b6-a465-9bd506496155:
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils Traceback (most recent call last):
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/api/v1/upload_utils.py", line 77, in safe_kill
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils _kill(req, image_id, from_state)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/api/v1/upload_utils.py", line 62, in _kill
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils from_state=from_state)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/api.py", line 169, in update_image_metadata
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils from_state=from_state)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/client.py", line 198, in update_image
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils headers=headers)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/client.py", line 130, in do_request
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils 'exc_name': exc_name})
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/openstack/common/excutils.py", line 82, in __exit__
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils six.reraise(self.type_, self.value, self.tb)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/registry/client/v1/client.py", line 115, in do_request
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils **kwargs)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 71, in wrapped
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils return func(self, *args, **kwargs)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 373, in do_request
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils headers=copy.deepcopy(headers))
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 85, in wrapped
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils return func(self, method, url, body, headers)
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 516, in _do_request
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils raise exception.NotAuthenticated(res.read())
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils NotAuthenticated: Authentication required
2015-03-06 10:58:27.526 851 TRACE glance.api.v1.upload_utils

From keystone's keystone.log:

(keystone.common.wsgi): 2015-03-06 10:58:27,498 WARNING Could not find token: 70946dbde63e4c739bd77b1097efc7dd
(keystone.common.wsgi): 2015-03-06 10:58:27,520 WARNING Could not find token: 70946dbde63e4c739bd77b1097efc7dd

That all make me believe I'm getting my tokens expired during the almost 4-hour import process. Am I right?

If so, I should increase the expiration time under [token] in keystone.conf, but juju do not support file injection on keystone service and any modification made to the conf file is overwritten.

Any ideas?

Thanks.

Tags: openstack oil
Curtis Hovey (sinzui)
no longer affects: juju-core
Revision history for this message
Jason Hobbs (jason-hobbs) wrote :

We're hitting the exact same issue and need to be able to configure the token expiration time.

tags: added: oil
Revision history for this message
Fabricio Costi (fabricio-9) wrote :

Jason, if you go to /var/lib/juju/agents/unit-keystone-0/charm/templates/icehouse/keystone.conf, add whatever you need and restart keystone service it will get into /etc/keystone/keystone.conf file.

As we see, this is not the best approach as if we update the keystone charm this change will be lost. Not a pain to add it again to the template, but it shouldn't have to be handled this way.

Also, in my humble opinion, we should have file injection like nova does added to all charms and not only keystone to handle configurations at deployment time. Personally, I consider this a huge feature that would deliver a very welcome flexibility to any environment.

Liam Young (gnuoy)
Changed in keystone (Juju Charms Collection):
status: New → Triaged
status: Triaged → Confirmed
importance: Undecided → Medium
assignee: nobody → Liam Young (gnuoy)
milestone: none → 15.04
assignee: Liam Young (gnuoy) → nobody
Liam Young (gnuoy)
Changed in keystone (Juju Charms Collection):
importance: Medium → Wishlist
Revision history for this message
Liam Young (gnuoy) wrote :

I think there are two bugs here, one for injecting config and one for exposing the expiry option. I have raised Bug #1431795 for exposing the expiry time specifically

James Page (james-page)
tags: added: openstack
Changed in keystone (Juju Charms Collection):
milestone: 15.04 → 15.07
James Page (james-page)
Changed in keystone (Juju Charms Collection):
milestone: 15.07 → 15.10
James Page (james-page)
Changed in keystone (Juju Charms Collection):
milestone: 15.10 → 16.01
James Page (james-page)
Changed in keystone (Juju Charms Collection):
milestone: 16.01 → 16.04
James Page (james-page)
Changed in keystone (Juju Charms Collection):
milestone: 16.04 → 16.07
James Page (james-page)
Changed in keystone (Juju Charms Collection):
milestone: 16.07 → 16.10
James Page (james-page)
Changed in charm-keystone:
importance: Undecided → Wishlist
status: New → Confirmed
Changed in keystone (Juju Charms Collection):
status: Confirmed → Invalid
James Page (james-page)
Changed in charm-keystone:
status: Confirmed → Triaged
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.