diff --git a/novaclient/tests/v1_1/test_usage.py b/novaclient/tests/v1_1/test_usage.py index 01df9fe70..ef842f4f1 100644 --- a/novaclient/tests/v1_1/test_usage.py +++ b/novaclient/tests/v1_1/test_usage.py @@ -18,16 +18,23 @@ from novaclient.tests.v1_1 import fakes from novaclient.v1_1 import usage -cs = fakes.FakeClient() - - class UsageTest(utils.TestCase): + def setUp(self): + super(UsageTest, self).setUp() + self.cs = self._get_fake_client() + self.usage_type = self._get_usage_type() + + def _get_fake_client(self): + return fakes.FakeClient() + + def _get_usage_type(self): + return usage.Usage def test_usage_list(self, detailed=False): now = datetime.datetime.now() - usages = cs.usage.list(now, now, detailed) + usages = self.cs.usage.list(now, now, detailed) - cs.assert_called('GET', + self.cs.assert_called('GET', "/os-simple-tenant-usage?" + ("start=%s&" % now.isoformat()) + ("end=%s&" % now.isoformat()) + @@ -39,9 +46,9 @@ class UsageTest(utils.TestCase): def test_usage_get(self): now = datetime.datetime.now() - u = cs.usage.get("tenantfoo", now, now) + u = self.cs.usage.get("tenantfoo", now, now) - cs.assert_called('GET', + self.cs.assert_called('GET', "/os-simple-tenant-usage/tenantfoo?" + ("start=%s&" % now.isoformat()) + ("end=%s" % now.isoformat())) diff --git a/novaclient/tests/v3/test_usage.py b/novaclient/tests/v3/test_usage.py new file mode 100644 index 000000000..b4ffab79e --- /dev/null +++ b/novaclient/tests/v3/test_usage.py @@ -0,0 +1,30 @@ +# Copyright 2013 IBM Corp. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from novaclient.tests.v1_1 import fakes +from novaclient.tests.v1_1 import test_usage +from novaclient.v3 import usage + + +class UsageTest(test_usage.UsageTest): + def setUp(self): + super(UsageTest, self).setUp() + self.cs = self._get_fake_client() + self.usage_type = self._get_usage_type() + + def _get_fake_client(self): + return fakes.FakeClient() + + def _get_usage_type(self): + return usage.Usage diff --git a/novaclient/v3/client.py b/novaclient/v3/client.py index fcbbdc66d..0d8e8c3f7 100644 --- a/novaclient/v3/client.py +++ b/novaclient/v3/client.py @@ -29,6 +29,7 @@ from novaclient.v3 import quota_classes from novaclient.v3 import quotas from novaclient.v3 import servers from novaclient.v3 import services +from novaclient.v3 import usage class Client(object): @@ -78,6 +79,7 @@ class Client(object): self.quota_classes = quota_classes.QuotaClassSetManager(self) self.servers = servers.ServerManager(self) self.services = services.ServiceManager(self) + self.usage = usage.UsageManager(self) # Add in any extensions... if extensions: diff --git a/novaclient/v3/usage.py b/novaclient/v3/usage.py new file mode 100644 index 000000000..dd16997c6 --- /dev/null +++ b/novaclient/v3/usage.py @@ -0,0 +1,27 @@ +# Copyright 2013 IBM Corp. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +Usage interface. +""" + +from novaclient.v1_1 import usage + + +class Usage(usage.Usage): + pass + + +class UsageManager(usage.UsageManager): + pass