6482165bb1
Change I4e755b9c66ec8bc3af0393e81cffd91c56064717 made the [glance]/api_servers option optional. If not set, we attempt to get the image service endpoint via keystoneauth adapter and the service catalog via the request context. Periodic tasks run without an actual token so there is no way to get the service catalog and the KSA adapter code to get the endpoint raises EndpointNotFound when trying to build the "image_ref_url" entry in the legacy instance notification payload. This change simply handles the EndpointNotFound and sets the image_ref_url to the instance.image_ref, which for non-volume-backed instances is the image id (for volume-backed instances it's an empty string). This doesn't affect versioned notifications since those don't use the "image_ref_url" entry in the payload that is created, they just have an "image_uuid" entry in the versioned notification payload which is populated via instance.image_ref. An upgrade impact release note is added in the case that some consuming service is actually relying on that legacy notification field being a URL and parsing it as such. The thinking here, however, is this is better than not sending the field at all, or setting it to None. Long-term this code all gets replaced with versioned notifications. Change-Id: Ie23a9c922776b028da0720c939846cba233ac472 Closes-Bug: #1753550
10 lines
446 B
YAML
10 lines
446 B
YAML
---
|
|
upgrade:
|
|
- |
|
|
The ``image_ref_url`` entry in legacy instance notification payloads will
|
|
be just the instance image id if ``[glance]/api_servers`` is not set
|
|
and the notification is being sent from a periodic task. In this case the
|
|
periodic task does not have a token to get the image service endpoint URL
|
|
from the identity service so only the image id is in the payload. This
|
|
does not affect versioned notifications.
|