diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-03-14 08:26:36 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-03-14 08:26:36 +0000 |
| commit | d84fd99be8ea223dfadf2a4331d6ad4c9b2f58a3 (patch) | |
| tree | 97b45fca9ce389d36c99b45bce65f0edae9db446 | |
| parent | 152f764042bbbb1ad4b1afb6afbcd0283d8283cb (diff) | |
| parent | 2b5fcd60c4b5ca37e347657879a28af011729dbd (diff) | |
| download | python-ceilometerclient-d84fd99be8ea223dfadf2a4331d6ad4c9b2f58a3.tar.gz | |
Merge "Catch KeyError exception as early as possible when there is no matching data on the server."
| -rw-r--r-- | ceilometerclient/common/base.py | 5 | ||||
| -rw-r--r-- | tests/v1/test_samples.py | 14 |
2 files changed, 18 insertions, 1 deletions
diff --git a/ceilometerclient/common/base.py b/ceilometerclient/common/base.py index c29ac18..02ecdae 100644 --- a/ceilometerclient/common/base.py +++ b/ceilometerclient/common/base.py @@ -56,7 +56,10 @@ class Manager(object): obj_class = self.resource_class if response_key: - data = body[response_key] + try: + data = body[response_key] + except KeyError: + return [] else: data = body return [obj_class(self, res, loaded=True) for res in data if res] diff --git a/tests/v1/test_samples.py b/tests/v1/test_samples.py index ab7dc08..88da953 100644 --- a/tests/v1/test_samples.py +++ b/tests/v1/test_samples.py @@ -111,6 +111,12 @@ fixtures = { ]}, ), }, + '/v1/meters': { + 'GET': ( + {}, + {'meters': []}, + ), + }, } @@ -120,6 +126,14 @@ class SampleManagerTest(unittest.TestCase): self.api = utils.FakeAPI(fixtures) self.mgr = ceilometerclient.v1.meters.SampleManager(self.api) + def test_list_all(self): + samples = list(self.mgr.list(counter_name=None)) + expect = [ + ('GET', '/v1/meters', {}, None), + ] + self.assertEqual(self.api.calls, expect) + self.assertEqual(len(samples), 0) + def test_list_by_source(self): samples = list(self.mgr.list(source='openstack', counter_name='this')) |
