diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-05-25 19:32:11 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-05-25 19:32:11 +0000 |
| commit | a75486d6240cd9291face18108326eafd6273acd (patch) | |
| tree | 050962e3631b6b90a99bd8216d43e1422ad89843 | |
| parent | d9de51ac52307ac017b1e7cee5320c9d4915b16e (diff) | |
| parent | f88f3ed42c83730b28d4da2b3a51ce7fb7d19221 (diff) | |
Merge "Bugfix in simple_tenant_usage API detail view"
| -rw-r--r-- | nova/api/openstack/compute/contrib/simple_tenant_usage.py | 3 | ||||
| -rw-r--r-- | nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py | 22 |
2 files changed, 20 insertions, 5 deletions
diff --git a/nova/api/openstack/compute/contrib/simple_tenant_usage.py b/nova/api/openstack/compute/contrib/simple_tenant_usage.py index 7914a1dd3..5f8765de5 100644 --- a/nova/api/openstack/compute/contrib/simple_tenant_usage.py +++ b/nova/api/openstack/compute/contrib/simple_tenant_usage.py @@ -202,10 +202,11 @@ class SimpleTenantUsageController(object): def _get_datetime_range(self, req): qs = req.environ.get('QUERY_STRING', '') env = urlparse.parse_qs(qs) + # NOTE(lzyeval): env.get() always returns a list period_start = self._parse_datetime(env.get('start', [None])[0]) period_stop = self._parse_datetime(env.get('end', [None])[0]) - detailed = bool(env.get('detailed', False)) + detailed = env.get('detailed', ['0'])[0] == '1' return (period_start, period_stop, detailed) @wsgi.serializers(xml=SimpleTenantUsagesTemplate) diff --git a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py index 0c2ef0a26..c3c28e9e4 100644 --- a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py +++ b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py @@ -116,11 +116,11 @@ class SimpleTenantUsageTest(test.TestCase): SERVERS * VCPUS * HOURS) self.assertFalse(usages[i].get('server_usages')) - def test_verify_detailed_index(self): + def _get_tenant_usages(self, detailed=''): req = webob.Request.blank( '/v2/faketenant_0/os-simple-tenant-usage?' - 'detailed=1&start=%s&end=%s' % - (START.isoformat(), STOP.isoformat())) + 'detailed=%s&start=%s&end=%s' % + (detailed, START.isoformat(), STOP.isoformat())) req.method = "GET" req.headers["content-type"] = "application/json" @@ -128,12 +128,26 @@ class SimpleTenantUsageTest(test.TestCase): fake_auth_context=self.admin_context)) self.assertEqual(res.status_int, 200) res_dict = json.loads(res.body) - usages = res_dict['tenant_usages'] + return res_dict['tenant_usages'] + + def test_verify_detailed_index(self): + usages = self._get_tenant_usages('1') for i in xrange(TENANTS): servers = usages[i]['server_usages'] for j in xrange(SERVERS): self.assertEqual(int(servers[j]['hours']), HOURS) + def test_verify_simple_index(self): + usages = self._get_tenant_usages(detailed='0') + for i in xrange(TENANTS): + self.assertEqual(usages[i].get('server_usages'), None) + + def test_verify_simple_index_empty_param(self): + # NOTE(lzyeval): 'detailed=&start=..&end=..' + usages = self._get_tenant_usages() + for i in xrange(TENANTS): + self.assertEqual(usages[i].get('server_usages'), None) + def test_verify_show(self): req = webob.Request.blank( '/v2/faketenant_0/os-simple-tenant-usage/' |
