diff --git a/ceilometerclient/tests/unit/test_client.py b/ceilometerclient/tests/unit/test_client.py index 5498853f..30216994 100644 --- a/ceilometerclient/tests/unit/test_client.py +++ b/ceilometerclient/tests/unit/test_client.py @@ -23,7 +23,6 @@ from ceilometerclient import exc from ceilometerclient.openstack.common.apiclient import exceptions from ceilometerclient.tests.unit import fakes from ceilometerclient.tests.unit import utils -from ceilometerclient.v1 import client as v1client from ceilometerclient.v2 import client as v2client FAKE_ENV = { @@ -64,20 +63,7 @@ class ClientTest(utils.BaseTestCase): self.assertTrue(session.request.called) self.assertTrue(resp.json.called) - def test_client_v1_with_session(self): - resp = mock.Mock(status_code=200, text=b'') - resp.json.return_value = {'resources': []} - session = mock.Mock() - session.request.return_value = resp - c = client.get_client(1, session=session) - c.resources.list() - self.assertTrue(session.request.called) - self.assertTrue(resp.json.called) - def test_client_version(self): - c1 = self.create_client(env=FAKE_ENV, api_version=1) - self.assertIsInstance(c1, v1client.Client) - c2 = self.create_client(env=FAKE_ENV, api_version=2) self.assertIsInstance(c2, v2client.Client) diff --git a/ceilometerclient/tests/unit/v1/__init__.py b/ceilometerclient/tests/unit/v1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/ceilometerclient/tests/unit/v1/test_meters.py b/ceilometerclient/tests/unit/v1/test_meters.py deleted file mode 100644 index afd9a1bf..00000000 --- a/ceilometerclient/tests/unit/v1/test_meters.py +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.openstack.common.apiclient import client -from ceilometerclient.openstack.common.apiclient import fake_client -from ceilometerclient.tests.unit import utils -import ceilometerclient.v1.meters - - -fixtures = { - '/v1/meters': { - 'GET': ( - {}, - {'meters': [ - { - 'resource_id': 'a', - 'project_id': 'dig_the_ditch', - 'user_id': 'freddy', - 'name': 'this', - 'type': 'counter', - }, - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - }, - ]}, - ), - }, - '/v1/users/joey/meters': { - 'GET': ( - {}, - {'meters': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - }, - ]}, - ), - }, - '/v1/projects/dig_the_ditch/meters': { - 'GET': ( - {}, - {'meters': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - }, - ]}, - ), - }, - '/v1/sources/openstack/meters': { - 'GET': ( - {}, - {'meters': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - }, - { - 'resource_id': 'q', - 'project_id': 'dig_the_trench', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - }, - ]}, - ), - }, - '/v1/meters?metadata.zxc_id=foo': { - 'GET': ( - {}, - {'meters': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - }, - ]}, - ), - }, -} - - -class MeterManagerTest(utils.BaseTestCase): - - def setUp(self): - super(MeterManagerTest, self).setUp() - self.http_client = fake_client.FakeHTTPClient(fixtures=fixtures) - self.api = client.BaseClient(self.http_client) - self.mgr = ceilometerclient.v1.meters.MeterManager(self.api) - - def test_list_all(self): - resources = list(self.mgr.list()) - expect = [ - 'GET', '/v1/meters' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 2) - self.assertEqual(resources[0].resource_id, 'a') - self.assertEqual(resources[1].resource_id, 'b') - - def test_list_by_source(self): - resources = list(self.mgr.list(source='openstack')) - expect = [ - 'GET', '/v1/sources/openstack/meters' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 2) - self.assertEqual(resources[0].resource_id, 'b') - self.assertEqual(resources[1].resource_id, 'q') - - def test_list_by_user(self): - resources = list(self.mgr.list(user_id='joey')) - expect = [ - 'GET', '/v1/users/joey/meters' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'b') - - def test_list_by_project(self): - resources = list(self.mgr.list(project_id='dig_the_ditch')) - expect = [ - 'GET', '/v1/projects/dig_the_ditch/meters' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'b') - - def test_list_by_metaquery(self): - resources = list(self.mgr.list(metaquery='metadata.zxc_id=foo')) - expect = [ - 'GET', '/v1/meters?metadata.zxc_id=foo' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'b') diff --git a/ceilometerclient/tests/unit/v1/test_projects.py b/ceilometerclient/tests/unit/v1/test_projects.py deleted file mode 100644 index 7b31bce4..00000000 --- a/ceilometerclient/tests/unit/v1/test_projects.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.openstack.common.apiclient import client -from ceilometerclient.openstack.common.apiclient import fake_client -from ceilometerclient.tests.unit import utils -import ceilometerclient.v1.meters - - -fixtures = { - '/v1/projects': { - 'GET': ( - {}, - {'projects': [ - 'a', - 'b', - ]}, - ), - }, - '/v1/sources/source_b/projects': { - 'GET': ( - {}, - {'projects': ['b']}, - ), - }, -} - - -class ProjectManagerTest(utils.BaseTestCase): - - def setUp(self): - super(ProjectManagerTest, self).setUp() - self.http_client = fake_client.FakeHTTPClient(fixtures=fixtures) - self.api = client.BaseClient(self.http_client) - self.mgr = ceilometerclient.v1.meters.ProjectManager(self.api) - - def test_list_all(self): - projects = list(self.mgr.list()) - expect = [ - 'GET', '/v1/projects' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(projects), 2) - self.assertEqual(projects[0].project_id, 'a') - self.assertEqual(projects[1].project_id, 'b') - - def test_list_by_source(self): - projects = list(self.mgr.list(source='source_b')) - expect = [ - 'GET', '/v1/sources/source_b/projects' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(projects), 1) - self.assertEqual(projects[0].project_id, 'b') diff --git a/ceilometerclient/tests/unit/v1/test_resources.py b/ceilometerclient/tests/unit/v1/test_resources.py deleted file mode 100644 index cfc4f6c0..00000000 --- a/ceilometerclient/tests/unit/v1/test_resources.py +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.openstack.common.apiclient import client -from ceilometerclient.openstack.common.apiclient import fake_client -from ceilometerclient.tests.unit import utils -import ceilometerclient.v1.meters - - -fixtures = { - '/v1/resources': { - 'GET': ( - {}, - {'resources': [ - { - 'resource_id': 'a', - 'project_id': 'project_bla', - 'user_id': 'freddy', - 'timestamp': 'now', - 'meter': ['this', 'that'], - 'metadata': {'zxc_id': 'bla'}, - }, - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'timestamp': 'now', - 'meter': ['this', 'that'], - 'metadata': {'zxc_id': 'foo'}, - }, - ]}, - ), - }, - '/v1/users/joey/resources': { - 'GET': ( - {}, - {'resources': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'timestamp': 'now', - 'meter': ['this', 'that'], - 'metadata': {'zxc_id': 'foo'}, - }, - ]}, - ), - }, - '/v1/resources?metadata.zxc_id=foo': { - 'GET': ( - {}, - {'resources': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'timestamp': 'now', - 'meter': ['this', 'that'], - 'metadata': {'zxc_id': 'foo'}, - }, - ]}, - ), - }, - '/v1/projects/project_bla/resources': { - 'GET': ( - {}, - {'resources': [ - { - 'resource_id': 'a', - 'project_id': 'project_bla', - 'user_id': 'freddy', - 'timestamp': 'now', - 'meter': ['this', 'that'], - 'metadata': {'zxc_id': 'bla'}, - }, - ]}, - ), - }, - '/v1/resources?start_timestamp=now&end_timestamp=now': { - 'GET': ( - {}, - {'resources': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'timestamp': 'now', - 'meter': ['this', 'that'], - 'metadata': {'zxc_id': 'foo'}, - }, - ]}, - ), - }, -} - - -class ResourceManagerTest(utils.BaseTestCase): - - def setUp(self): - super(ResourceManagerTest, self).setUp() - self.http_client = fake_client.FakeHTTPClient(fixtures=fixtures) - self.api = client.BaseClient(self.http_client) - self.mgr = ceilometerclient.v1.meters.ResourceManager(self.api) - - def test_list_all(self): - resources = list(self.mgr.list()) - expect = [ - 'GET', '/v1/resources' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 2) - self.assertEqual(resources[0].resource_id, 'a') - self.assertEqual(resources[1].resource_id, 'b') - - def test_list_by_user(self): - resources = list(self.mgr.list(user_id='joey')) - expect = [ - 'GET', '/v1/users/joey/resources' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'b') - - def test_list_by_metaquery(self): - resources = list(self.mgr.list(metaquery='metadata.zxc_id=foo')) - expect = [ - 'GET', '/v1/resources?metadata.zxc_id=foo' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'b') - - def test_list_by_project(self): - resources = list(self.mgr.list(project_id='project_bla')) - expect = [ - 'GET', '/v1/projects/project_bla/resources' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'a') - - def test_list_by_timestamp(self): - resources = list(self.mgr.list(start_timestamp='now', - end_timestamp='now')) - expect = [ - 'GET', '/v1/resources?start_timestamp=now&end_timestamp=now' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(resources), 1) - self.assertEqual(resources[0].resource_id, 'b') diff --git a/ceilometerclient/tests/unit/v1/test_samples.py b/ceilometerclient/tests/unit/v1/test_samples.py deleted file mode 100644 index 0f1a029b..00000000 --- a/ceilometerclient/tests/unit/v1/test_samples.py +++ /dev/null @@ -1,196 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.openstack.common.apiclient import client -from ceilometerclient.openstack.common.apiclient import fake_client -from ceilometerclient.tests.unit import utils -import ceilometerclient.v1.meters - - -fixtures = { - '/v1/users/freddy/meters/balls': { - 'GET': ( - {}, - {'events': [ - { - 'resource_id': 'inst-0045', - 'project_id': 'melbourne_open', - 'user_id': 'freddy', - 'name': 'tennis', - 'type': 'counter', - 'unit': 'balls', - 'volume': 3, - 'timestamp': None, - 'resource_metadata': None, - }, - ]}, - ), - }, - '/v1/sources/openstack/meters/this': { - 'GET': ( - {}, - {'events': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - 'unit': 'b', - 'volume': 45, - 'timestamp': None, - 'resource_metadata': None, - }, - ]}, - ), - }, - '/v1/projects/dig_the_ditch/meters/meters': { - 'GET': ( - {}, - {'events': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'meters', - 'type': 'counter', - 'unit': 'meters', - 'volume': 345, - 'timestamp': None, - 'resource_metadata': None, - }, - ]}, - ), - }, - '/v1/meters?metadata.zxc_id=foo': { - 'GET': ( - {}, - {'events': [ - { - 'resource_id': 'b', - 'project_id': 'dig_the_ditch', - 'user_id': 'joey', - 'name': 'this', - 'type': 'counter', - 'unit': 'meters', - 'volume': 98, - 'timestamp': None, - 'resource_metadata': {'zxc_id': 'foo'}, - }, - ]}, - ), - }, - '/v1/users/freddy/meters/balls?start_timestamp=now&end_timestamp=now': { - 'GET': ( - {}, - {'events': [ - { - 'resource_id': 'inst-0045', - 'project_id': 'melbourne_open', - 'user_id': 'freddy', - 'name': 'tennis', - 'type': 'counter', - 'unit': 'balls', - 'volume': 3, - 'timestamp': 'now', - 'resource_metadata': None, - }, - - ]}, - ), - }, - '/v1/meters': { - 'GET': ( - {}, - {'meters': []}, - ), - }, -} - - -class SampleManagerTest(utils.BaseTestCase): - - def setUp(self): - super(SampleManagerTest, self).setUp() - self.http_client = fake_client.FakeHTTPClient(fixtures=fixtures) - self.api = client.BaseClient(self.http_client) - 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' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(samples), 0) - - def test_list_by_source(self): - samples = list(self.mgr.list(source='openstack', - counter_name='this')) - expect = [ - 'GET', '/v1/sources/openstack/meters/this' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(samples), 1) - self.assertEqual(samples[0].resource_id, 'b') - - def test_list_by_user(self): - samples = list(self.mgr.list(user_id='freddy', - counter_name='balls')) - expect = [ - 'GET', '/v1/users/freddy/meters/balls' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(samples), 1) - self.assertEqual(samples[0].project_id, 'melbourne_open') - self.assertEqual(samples[0].user_id, 'freddy') - self.assertEqual(samples[0].volume, 3) - - def test_list_by_project(self): - samples = list(self.mgr.list(project_id='dig_the_ditch', - counter_name='meters')) - expect = [ - 'GET', '/v1/projects/dig_the_ditch/meters/meters' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(samples), 1) - self.assertEqual(samples[0].project_id, 'dig_the_ditch') - self.assertEqual(samples[0].volume, 345) - self.assertEqual(samples[0].unit, 'meters') - - def test_list_by_metaquery(self): - samples = list(self.mgr.list(metaquery='metadata.zxc_id=foo', - counter_name='this')) - expect = [ - 'GET', '/v1/meters?metadata.zxc_id=foo' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(samples), 1) - self.assertEqual(samples[0].resource_metadata['zxc_id'], 'foo') - - def test_list_by_timestamp(self): - samples = list(self.mgr.list(user_id='freddy', - counter_name='balls', - start_timestamp='now', - end_timestamp='now')) - expect = [ - 'GET', - '/v1/users/freddy/meters/balls?' + - 'start_timestamp=now&end_timestamp=now' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(samples), 1) - self.assertEqual(samples[0].project_id, 'melbourne_open') - self.assertEqual(samples[0].user_id, 'freddy') - self.assertEqual(samples[0].volume, 3) diff --git a/ceilometerclient/tests/unit/v1/test_users.py b/ceilometerclient/tests/unit/v1/test_users.py deleted file mode 100644 index e8e98a12..00000000 --- a/ceilometerclient/tests/unit/v1/test_users.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.openstack.common.apiclient import client -from ceilometerclient.openstack.common.apiclient import fake_client -from ceilometerclient.tests.unit import utils -import ceilometerclient.v1.meters - - -fixtures = { - '/v1/users': { - 'GET': ( - {}, - {'users': [ - 'a', - 'b', - ]}, - ), - }, - '/v1/sources/source_b/users': { - 'GET': ( - {}, - {'users': ['b']}, - ), - }, -} - - -class UserManagerTest(utils.BaseTestCase): - - def setUp(self): - super(UserManagerTest, self).setUp() - self.http_client = fake_client.FakeHTTPClient(fixtures=fixtures) - self.api = client.BaseClient(self.http_client) - self.mgr = ceilometerclient.v1.meters.UserManager(self.api) - - def test_list_all(self): - users = list(self.mgr.list()) - expect = [ - 'GET', '/v1/users' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(users), 2) - self.assertEqual(users[0].user_id, 'a') - self.assertEqual(users[1].user_id, 'b') - - def test_list_by_source(self): - users = list(self.mgr.list(source='source_b')) - expect = [ - 'GET', '/v1/sources/source_b/users' - ] - self.http_client.assert_called(*expect) - self.assertEqual(len(users), 1) - self.assertEqual(users[0].user_id, 'b') diff --git a/ceilometerclient/v1/__init__.py b/ceilometerclient/v1/__init__.py deleted file mode 100644 index bd879d96..00000000 --- a/ceilometerclient/v1/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.v1.client import Client # noqa diff --git a/ceilometerclient/v1/client.py b/ceilometerclient/v1/client.py deleted file mode 100644 index b56e0109..00000000 --- a/ceilometerclient/v1/client.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient import client as ceiloclient -from ceilometerclient.v1 import meters - - -class Client(object): - """Client for the Ceilometer v1 API. - - :param session: a keystoneauth/keystoneclient session object - :type session: keystoneclient.session.Session - :param str service_type: The default service_type for URL discovery - :param str service_name: The default service_name for URL discovery - :param str interface: The default interface for URL discovery - (Default: public) - :param str region_name: The default region_name for URL discovery - :param str endpoint_override: Always use this endpoint URL for requests - for this ceiloclient - :param auth: An auth plugin to use instead of the session one - :type auth: keystoneclient.auth.base.BaseAuthPlugin - :param str user_agent: The User-Agent string to set - (Default is python-ceilometer-client) - :param int connect_retries: the maximum number of retries that should be - attempted for connection errors - :param logger: A logging object - :type logger: logging.Logger - """ - - def __init__(self, *args, **kwargs): - """Initialize a new client for the Ceilometer v1 API.""" - - if not kwargs.get('auth_plugin'): - kwargs['auth_plugin'] = ceiloclient.get_auth_plugin(*args, - **kwargs) - self.auth_plugin = kwargs.get('auth_plugin') - - self.http_client = ceiloclient._construct_http_client(**kwargs) - self.meters = meters.MeterManager(self.http_client) - self.samples = meters.SampleManager(self.http_client) - self.users = meters.UserManager(self.http_client) - self.resources = meters.ResourceManager(self.http_client) - self.projects = meters.ProjectManager(self.http_client) diff --git a/ceilometerclient/v1/meters.py b/ceilometerclient/v1/meters.py deleted file mode 100644 index 223bfb33..00000000 --- a/ceilometerclient/v1/meters.py +++ /dev/null @@ -1,191 +0,0 @@ -# Copyright 2012 OpenMeter LLC. -# All Rights Reserved. -# -# 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. - -import six - -from ceilometerclient.common import base - - -def _get_opt_path(simple_params=None, **kwargs): - l = [] - simple_params = simple_params or [] - # get simple paramters - for key in simple_params: - val = kwargs.get(key) - if val: - l.append(key + '=' + val) - # get metadata query paramters - metaquery = kwargs.get('metaquery') - if metaquery: - l.extend(metaquery.split(':')) - - return '&'.join(l) - - -class User(base.Resource): - def __init__(self, manager, info, loaded=False): - _d = {six.u('user_id'): info} - super(User, self).__init__(manager, _d, loaded) - - def __repr__(self): - return "" % self._info - - def data(self, **kwargs): - return self.manager.data(self, **kwargs) - - -class UserManager(base.Manager): - resource_class = User - - def list(self, **kwargs): - s = kwargs.get('source') - if s: - path = '/sources/%s/users' % s - else: - path = '/users' - return self._list('/v1%s' % path, 'users') - - -class Project(base.Resource): - def __init__(self, manager, info, loaded=False): - _d = {six.u('project_id'): info} - super(Project, self).__init__(manager, _d, loaded) - - def __repr__(self): - return "" % self._info - - def data(self, **kwargs): - return self.manager.data(self, **kwargs) - - -class ProjectManager(base.Manager): - resource_class = Project - - def list(self, **kwargs): - s = kwargs.get('source') - if s: - path = '/sources/%s/projects' % (kwargs['source']) - else: - path = '/projects' - - return self._list('/v1%s' % path, 'projects') - - -class Resource(base.Resource): - def __repr__(self): - return "" % self._info - - def data(self, **kwargs): - return self.manager.data(self, **kwargs) - - -class ResourceManager(base.Manager): - resource_class = Resource - - def list(self, **kwargs): - u = kwargs.get('user_id') - s = kwargs.get('source') - p = kwargs.get('project_id') - opts_path = _get_opt_path(['start_timestamp', 'end_timestamp'], - **kwargs) - if u: - path = '/users/%s/resources' % u - elif s: - path = '/sources/%s/resources' % s - elif p: - path = '/projects/%s/resources' % p - else: - path = '/resources' - if opts_path: - path = '/v1%s?%s' % (path, opts_path) - else: - path = '/v1%s' % path - return self._list(path, 'resources') - - -class Sample(base.Resource): - def __init__(self, manager, info, loaded=False): - smaller = dict((k, v) for (k, v) in six.iteritems(info) - if k not in ('metadata', 'message_signature')) - super(Sample, self).__init__(manager, smaller, loaded) - - def __repr__(self): - return "" % self._info - - def data(self, **kwargs): - return self.manager.data(self, **kwargs) - - -class SampleManager(base.Manager): - resource_class = Sample - - def list(self, **kwargs): - c = kwargs['counter_name'] - r = kwargs.get('resource_id') - u = kwargs.get('user_id') - p = kwargs.get('project_id') - s = kwargs.get('source') - opts_path = _get_opt_path(['start_timestamp', 'end_timestamp'], - **kwargs) - if r: - path = '/resources/%s/meters/%s' % (r, c) - elif u: - path = '/users/%s/meters/%s' % (u, c) - elif p: - path = '/projects/%s/meters/%s' % (p, c) - elif s: - path = '/sources/%s/meters/%s' % (s, c) - else: - path = '/meters' - - if opts_path: - path = '/v1%s?%s' % (path, opts_path) - else: - path = '/v1%s' % path - return self._list(path, 'events') - - -class Meter(base.Resource): - def __repr__(self): - return "" % self._info - - def data(self, **kwargs): - return self.manager.data(self, **kwargs) - - -class MeterManager(base.Manager): - resource_class = Meter - - def list(self, **kwargs): - r = kwargs.get('resource_id') - u = kwargs.get('user_id') - p = kwargs.get('project_id') - s = kwargs.get('source') - opts_path = _get_opt_path(**kwargs) - if u: - path = '/users/%s/meters' % u - elif r: - path = '/resources/%s/meters' % r - elif p: - path = '/projects/%s/meters' % p - elif s: - path = '/sources/%s/meters' % s - else: - path = '/meters' - if opts_path: - path = '/v1%s?%s' % (path, opts_path) - else: - path = '/v1%s' % path - return self._list(path, 'meters') diff --git a/ceilometerclient/v1/shell.py b/ceilometerclient/v1/shell.py deleted file mode 100644 index 395f2bca..00000000 --- a/ceilometerclient/v1/shell.py +++ /dev/null @@ -1,136 +0,0 @@ -# Copyright 2012 OpenStack Foundation -# All Rights Reserved. -# -# 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 ceilometerclient.common import utils -import ceilometerclient.exc as exc - - -@utils.arg('-m', '--metaquery', metavar='', - help='Query into the metadata metadata.key=value:..') -@utils.arg('-s', '--source', metavar='', - help='ID of the resource to show samples for.') -@utils.arg('-r', '--resource_id', metavar='', - help='ID of the resource to show samples for.') -@utils.arg('-u', '--user_id', metavar='', - help='ID of the user to show samples for.') -@utils.arg('-p', '--project_id', metavar='', - help='ID of the project to show samples for.') -@utils.arg('-c', '--counter_name', metavar='', - help='Name of meter to show samples for.') -@utils.arg('--start', metavar='', - help='ISO date in UTC which limits events by ' - 'timestamp >= this value') -@utils.arg('--end', metavar='', - help='ISO date in UTC which limits events by ' - 'timestamp <= this value') -def do_sample_list(cc, args): - '''List the samples for this meters.''' - fields = {'counter_name': args.counter_name, - 'resource_id': args.resource_id, - 'user_id': args.user_id, - 'project_id': args.project_id, - 'source': args.source, - 'start_timestamp': args.start, - 'end_timestamp': args.end, - 'metaquery': args.metaquery} - try: - samples = cc.samples.list(**fields) - except exc.HTTPNotFound: - raise exc.CommandError('Samples not found: %s' % args.counter_name) - else: - field_labels = ['Resource ID', 'Name', 'Type', 'Volume', 'Timestamp'] - fields = ['resource_id', 'counter_name', 'counter_type', - 'counter_volume', 'timestamp'] - utils.print_list(samples, fields, field_labels, - sortby=0) - - -@utils.arg('-m', '--metaquery', metavar='', - help='Query into the metadata metadata.key=value:..') -@utils.arg('-s', '--source', metavar='', - help='ID of the resource to show samples for.') -@utils.arg('-r', '--resource_id', metavar='', - help='ID of the resource to show samples for.') -@utils.arg('-u', '--user_id', metavar='', - help='ID of the user to show samples for.') -@utils.arg('-p', '--project_id', metavar='', - help='ID of the project to show samples for.') -def do_meter_list(cc, args={}): - '''List the user's meter.''' - fields = {'resource_id': args.resource_id, - 'user_id': args.user_id, - 'project_id': args.project_id, - 'source': args.source} - meters = cc.meters.list(**fields) - field_labels = ['Name', 'Type', 'Resource ID', 'User ID', 'Project ID'] - fields = ['name', 'type', 'resource_id', - 'user_id', 'project_id'] - utils.print_list(meters, fields, field_labels, - sortby=0) - - -@utils.arg('-s', '--source', metavar='', - help='ID of the resource to show projects for.') -def do_user_list(cc, args={}): - '''List the users.''' - kwargs = {'source': args.source} - users = cc.users.list(**kwargs) - field_labels = ['User ID'] - fields = ['user_id'] - utils.print_list(users, fields, field_labels, - sortby=0) - - -@utils.arg('-s', '--source', metavar='', - help='ID of the resource to show for.') -@utils.arg('-u', '--user_id', metavar='', - help='ID of the user to show resources for.') -@utils.arg('-p', '--project_id', metavar='', - help='ID of the project to show samples for.') -@utils.arg('-m', '--metaquery', metavar='', - help='Query into the metadata metadata.key=value:..') -@utils.arg('--start', metavar='', - help='ISO date in UTC which limits resouces by ' - 'last update time >= this value') -@utils.arg('--end', metavar='', - help='ISO date in UTC which limits resouces by ' - 'last update time <= this value') -def do_resource_list(cc, args={}): - """List the resources.""" - kwargs = {'source': args.source, - 'user_id': args.user_id, - 'project_id': args.project_id, - 'start_timestamp': args.start, - 'end_timestamp': args.end, - 'metaquery': args.metaquery} - resources = cc.resources.list(**kwargs) - - field_labels = ['Resource ID', 'Source', 'User ID', 'Project ID'] - fields = ['resource_id', 'source', 'user_id', 'project_id'] - utils.print_list(resources, fields, field_labels, - sortby=1) - - -@utils.arg('-s', '--source', metavar='', - help='ID of the resource to show projects for.') -def do_project_list(cc, args={}): - """List the projects.""" - kwargs = {'source': args.source} - projects = cc.projects.list(**kwargs) - - field_labels = ['Project ID'] - fields = ['project_id'] - utils.print_list(projects, fields, field_labels, - sortby=0) diff --git a/doc/source/api.rst b/doc/source/api.rst index 36c7c51f..b64afe15 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -14,7 +14,7 @@ First create a client instance with your credentials:: >>> import ceilometerclient.client >>> cclient = ceilometerclient.client.get_client(VERSION, os_username=USERNAME, os_password=PASSWORD, os_tenant_name=PROJECT_NAME, os_auth_url=AUTH_URL) -Here ``VERSION`` can be: ``1`` and ``2``. +Here ``VERSION`` should be: ``2``. Then call methods on its managers:: @@ -44,5 +44,4 @@ For more information, see the reference: :maxdepth: 2 ref/index - ref/v1/index ref/v2/index diff --git a/doc/source/conf.py b/doc/source/conf.py index 23130131..bf45db6c 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -16,8 +16,6 @@ execfile(os.path.join("..", "ext", "gen_ref.py")) project = 'python-ceilometerclient' gen_ref("", "Client Reference", ["client", "exc"]) -gen_ref("v1", "Version 1 API Reference", - ["meters"]) gen_ref("v2", "Version 2 API Reference", ["meters", "samples", "statistics", "resources", "query", "alarms", "events", "event_types", "traits", "trait_descriptions"]) diff --git a/doc/source/index.rst b/doc/source/index.rst index cec3b5c8..7fdbb121 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -22,7 +22,6 @@ Contents: shell api ref/index - ref/v1/index ref/v2/index Contributing