summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-03-14 08:26:36 +0000
committerGerrit Code Review <review@openstack.org>2013-03-14 08:26:36 +0000
commitd84fd99be8ea223dfadf2a4331d6ad4c9b2f58a3 (patch)
tree97b45fca9ce389d36c99b45bce65f0edae9db446
parent152f764042bbbb1ad4b1afb6afbcd0283d8283cb (diff)
parent2b5fcd60c4b5ca37e347657879a28af011729dbd (diff)
downloadpython-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.py5
-rw-r--r--tests/v1/test_samples.py14
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'))