diff --git a/ceilometer/api/controllers/v2.py b/ceilometer/api/controllers/v2.py index 0b8f648ee..cd2795006 100644 --- a/ceilometer/api/controllers/v2.py +++ b/ceilometer/api/controllers/v2.py @@ -618,6 +618,9 @@ class MetersController(rest.RestController): @pecan.expose() def _lookup(self, meter_id, *remainder): + # NOTE(gordc): drop last path if empty (Bug #1202739) + if remainder and not remainder[-1]: + remainder = remainder[:-1] return MeterController(meter_id), remainder @wsme_pecan.wsexpose([Meter], [Query]) diff --git a/tests/api/v2/list_events.py b/tests/api/v2/list_events.py index e8cedddcf..6b51309e7 100644 --- a/tests/api/v2/list_events.py +++ b/tests/api/v2/list_events.py @@ -82,6 +82,10 @@ class TestListEvents(FunctionalTest): data = self.get_json('/meters/instance') self.assertEquals(2, len(data)) + def test_all_trailing_slash(self): + data = self.get_json('/meters/instance/') + self.assertEquals(2, len(data)) + def test_all_limit(self): data = self.get_json('/meters/instance?limit=1') self.assertEquals(1, len(data))