gs3 tried to delete an endpoint that keystone claims does not exist
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance - Simplestreams Sync Charm |
Fix Committed
|
High
|
Данило Шеган | ||
Landscape Server |
Fix Released
|
Medium
|
Данило Шеган | ||
16.06 |
Fix Released
|
Undecided
|
Данило Шеган |
Bug Description
This was found with a Landscape autopilot deployment. The result is a failure of the keystone charm's identity-
I don't know if this is on gs3 or keystone. Gs3 call DELETE on "4760c1d6154b4b
Keystone claims this endpoint does not exist and the charm relation fails, http://
It looks a bit like the "image-stream" endpoint is being updated from within a juju hook context and being deleted via the keystone REST api at the same time. But if this is the case, I can't figure out what triggered the identity-
Attached are the unit logs from keystone and gs3. I have others if the logs from all other units if needed.
Related branches
- Bogdana Vereha (community): Approve
- Geoff Teale (community): Approve
-
Diff: 82 lines (+20/-15)1 file modifiedscripts/glance-simplestreams-sync.py (+20/-15)
description: | updated |
description: | updated |
description: | updated |
tags: | added: kanban |
tags: | removed: kanban |
Changed in glance-simplestreams-sync-charm: | |
status: | In Progress → Fix Committed |
Changed in landscape: | |
status: | New → In Progress |
Changed in landscape: | |
status: | In Progress → Fix Committed |
Changed in landscape: | |
importance: | Undecided → Medium |
Changed in landscape: | |
milestone: | none → 16.07 |
Changed in landscape: | |
status: | Fix Committed → Fix Released |
FWIW, what the charm is doing is attempting to update the image-streams endpoint by deleting and recreating it first. This allows for a potential race, which is bad in itself. I think it's worth fixing it in the charm as well.
However, we'd have to make it conditional on the returned keystone client API version: 2.0 does not support the update() call, whereas 3.0 does (see http:// docs.openstack. org/developer/ python- keystoneclient/ api/keystonecli ent.v2_ 0.html# module- keystoneclient. v2_0.endpoints, http:// docs.openstack. org/developer/ python- keystoneclient/ api/keystonecli ent.v3. html#module- keystoneclient. v3.endpoints).