Multi-Regions Support

The deployment of a service requires the creation of a new service
endpoint into Keystone. To create a new service endpoint the
kolla_keystone_service tests if the service is already registered and
updates the URL if so, or create the new endpoint in other cases. In the
actual implementation, the register test only looks at the service id
and interface which makes the test behaving wrong in multi-regions
context. In multi-regions, we deploy the same service many times, and
thus, actual implementation considers that this is the same service and
updates its endpoint rather than creating a new one. This fix adds a
condition to the test that verifies the region to distinguish two
identical services deployed into two different regions.

Change-Id: Ie7ca8800fe3c5a9585e4b0bbbc38ac628ec753bc
This commit is contained in:
rcherrueau 2017-02-09 16:03:29 +01:00
parent 6411720976
commit fe3debc87a
No known key found for this signature in database
GPG Key ID: 5C383D7AC6C937CB

View File

@ -72,7 +72,8 @@ def main():
for _endpoint in cloud.keystone_client.endpoints.list():
if _endpoint.service_id == service.id and \
_endpoint.interface == interface:
_endpoint.interface == interface and \
_endpoint.region == endpoint_region:
endpoint = _endpoint
if endpoint.url != url:
changed = True