puppet not able to find non-puppet managed services resources
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| puppet-keystone |
Undecided
|
Sofer Athlan-Guyot |
Bug Description
Full background: https:/
puppet keystone_endpoint provider is using service name to create the endpoints.
If the service already exists but is not managed by puppet, the catalog will fail to create the endpoint because the endpoint will fail to be created. This is an issue in openstackclient:
[stack@
No service with a type, name or ID of 'nova' exists.
while the service already exists:
[stack@
+-----
| ID | Name | Type |
+-----
| 07639ddebe7a4b2
| 1fbb6aa0bcd14f2
| 2a0c1642b4e643f
| 2b73fd25f486433
| 36fdfd3211db4c5
| 3b4189b88f584f5
| 48a0ec444d8843f
| 512b28d0ffc1402
| 55dd87d8f8b64f0
| 5d421e4aad534dc
| d043ff13fc9d446
+-----
While the bug is reported & fixed in openstackclient, we can fix it in puppet by using service ID in keystone_endpoint provider code, when creating the endpoint, instead of using the service name.
Fix proposed to branch: master
Review: https:/
Changed in puppet-keystone: | |
assignee: | nobody → Athlan-Guyot sofer (sofer-athlan-guyot) |
status: | New → In Progress |
Changed in puppet-keystone: | |
assignee: | Athlan-Guyot sofer (sofer-athlan-guyot) → Gilles Dubreuil (gdubreui) |
Changed in puppet-keystone: | |
assignee: | Gilles Dubreuil (gdubreui) → Athlan-Guyot sofer (sofer-athlan-guyot) |
Changed in puppet-keystone: | |
assignee: | Athlan-Guyot sofer (sofer-athlan-guyot) → Gilles Dubreuil (gdubreui) |
Changed in puppet-keystone: | |
assignee: | Gilles Dubreuil (gdubreui) → Athlan-Guyot sofer (sofer-athlan-guyot) |
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 0a4e06abb0f5b3f
Author: Sofer Athlan-Guyot <email address hidden>
Date: Mon Oct 26 14:28:32 2015 +0100
Keystone_
This enable keystone_endpoint to specify the type of the service
matched. This way one can match services which are different only by
type and not only by name, like services nova/compute and nova/computev3
for instance. It does so by fetching the _id_ of the service when it
has the type information instead of just using the name.
This should be required, and deprecation has been added, as the current
code work only because of a convention.
Change-Id: I9ea20fbad274d5
Closes-Bug: #1506996
Changed in puppet-keystone: | |
status: | In Progress → Fix Committed |
Changed in puppet-keystone: | |
status: | Fix Committed → Fix Released |
The problem here is that the endpoint resource lacks the "type" parameter. As such it's impossible for the keystone_endpoint to get the correct id of the service only with the name as the same name can appear multiple times in the db.