From d45f7b0632df414498b76d987a1136505a4a4bee Mon Sep 17 00:00:00 2001 From: Terry Howe Date: Fri, 8 Aug 2014 16:12:01 -0600 Subject: [PATCH] compute/ version resource Change-Id: I5ff0b3127d7f522fa5eb8e8a2e49132ba970bd5a --- openstack/compute/version.py | 29 ++++++++++++++++ openstack/tests/compute/test_version.py | 45 +++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 openstack/compute/version.py create mode 100644 openstack/tests/compute/test_version.py diff --git a/openstack/compute/version.py b/openstack/compute/version.py new file mode 100644 index 000000000..d8364eb9a --- /dev/null +++ b/openstack/compute/version.py @@ -0,0 +1,29 @@ +# 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 openstack.compute import compute_service +from openstack import resource + + +class Version(resource.Resource): + resource_key = 'version' + resources_key = 'versions' + base_path = '/' + service = compute_service.ComputeService() + + # capabilities + allow_list = True + + # Properties + links = resource.prop('links') + status = resource.prop('status') + updated = resource.prop('updated') diff --git a/openstack/tests/compute/test_version.py b/openstack/tests/compute/test_version.py new file mode 100644 index 000000000..4e0ce5ec3 --- /dev/null +++ b/openstack/tests/compute/test_version.py @@ -0,0 +1,45 @@ +# 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 testtools + +from openstack.compute import version + +IDENTIFIER = 'IDENTIFIER' +EXAMPLE = { + 'id': IDENTIFIER, + 'links': '2', + 'status': '3', + 'updated': '4', +} + + +class TestVersion(testtools.TestCase): + + def test_basic(self): + sot = version.Version() + self.assertEqual('version', sot.resource_key) + self.assertEqual('versions', sot.resources_key) + self.assertEqual('/', sot.base_path) + self.assertEqual('compute', sot.service.service_type) + self.assertFalse(sot.allow_create) + self.assertFalse(sot.allow_retrieve) + self.assertFalse(sot.allow_update) + self.assertFalse(sot.allow_delete) + self.assertTrue(sot.allow_list) + + def test_make_it(self): + sot = version.Version(EXAMPLE) + self.assertEqual(EXAMPLE['id'], sot.id) + self.assertEqual(EXAMPLE['links'], sot.links) + self.assertEqual(EXAMPLE['status'], sot.status) + self.assertEqual(EXAMPLE['updated'], sot.updated)