Callum Dickinson 0468126182 Dynamic pollsters: Append relative url_path to URLs
When generating OpenStack API query URLs for dynamic pollsters,
Ceilometer uses urllib.parse.urljoin to append url_path to the
endpoint URL.

If an API endpoint URL returned by Keystone does not have a
trailing slash and the specified url_path value is a relative
path (e.g. does not start with /), urljoin will replace the
final segment of the base URL instead of appending url_path to it.

This breaks generating links in dynamic pollsters for OpenStack services
if the endpoint URL in the Keystone service catalog does not have a trailing
slash. This is particularly relevant for OpenStack services that incorporate
the project ID into the API endpoint URL, such as Trove as shown below.

>>> urljoin("http://example.com:8779/v1.0/12345678", "mgmt/instances")
'http://example.com:8779/v1.0/mgmt/instances'

If there is a trailing slash on the end of the base URL,
url_path will be appended to the end of the URL as expected.

>>> urljoin("http://example.com:8779/v1.0/12345678/", "mgmt/instances")
'http://example.com:8779/v1.0/12345678/mgmt/instances'

This commit changes the behaviour of the dynamic pollster URL joins
by making sure there is a trailing slash on the endpoint URLs when
appending the defined url_path to them.

This may break existing dynamic pollster configurations that rely
on this behaviour, but given that most OpenStack services probably
wouldn't, there shouldn't be too many changes that would be required.

Change-Id: I367d299df85676472c7e1a922d08971810f2ba9f
2025-01-30 19:52:45 +13:00
2023-10-17 16:04:29 +00:00
2019-10-23 16:01:55 -03:00
2019-04-19 19:31:12 +00:00
2014-10-09 10:31:23 +03:00
2024-10-16 23:35:01 +09:00
2017-04-08 17:15:28 +08:00
2013-03-15 14:25:48 +00:00
2021-06-18 12:09:39 +02:00
2024-03-13 19:27:59 +09:00
2020-04-11 00:57:21 -07:00
2025-01-23 20:56:06 +09:00

Ceilometer

Overview

Ceilometer is a data collection service that collects event and metering data by monitoring notifications sent from OpenStack services. It publishes collected data to various targets including data stores and message queues.

Ceilometer is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Documentation

Release notes are available at https://releases.openstack.org/teams/telemetry.html

Developer documentation is available at https://docs.openstack.org/ceilometer/latest/

Launchpad Projects

Code Repository

Bug Tracking

Release Notes

IRC

IRC Channel: #openstack-telemetry on OFTC.

Mailinglist

Project use http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss as the mailinglist. Please use tag [Ceilometer] in the subject for new threads.

Description
OpenStack Telemetry (Ceilometer)
Readme 107 MiB
Languages
Python 98.5%
Shell 1.5%