From 0d293eaf4413f82f55e3b13062b2bc710a6f3935 Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Sun, 26 Jul 2015 07:28:28 -0500 Subject: [PATCH] Deprecate ServiceCatalog.get_urls() with no attr There was a TODO to deprecate calling ServiceCatalog.get_urls() with an attr but no filter_value. bp deprecations Change-Id: Idd97ce6920d63e1abb4f10ba4965035ba40f0155 --- keystoneclient/service_catalog.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/keystoneclient/service_catalog.py b/keystoneclient/service_catalog.py index b8f4ec205..bb64689a3 100644 --- a/keystoneclient/service_catalog.py +++ b/keystoneclient/service_catalog.py @@ -191,10 +191,13 @@ class ServiceCatalog(object): except KeyError: return - # TODO(jamielennox): at least swiftclient is known to set attr and not - # filter_value and expects that to mean that filtering is ignored, so - # we can't check for the presence of attr. This behaviour should be - # deprecated and an appropriate warning provided. + if attr and not filter_value: + warnings.warn( + 'Providing attr without filter_value to get_urls() is ' + 'deprecated as of the 1.7.0 release and may be removed in the ' + '2.0.0 release. Either both should be provided or neither ' + 'should be provided.') + if filter_value: return [endpoint for endpoint in endpoints if endpoint.get(attr) == filter_value]