diff options
author | Ken'ichi Ohmichi <ken-oomichi@wx.jp.nec.com> | 2015-09-28 06:17:41 +0000 |
---|---|---|
committer | Ken'ichi Ohmichi <ken-oomichi@wx.jp.nec.com> | 2015-09-28 08:12:27 +0000 |
commit | 0115f00b0a82fffa346a76f55df5a8f05e737fdf (patch) | |
tree | 599e1f53df4ba07623fefc30bf2df0e7246a14da | |
parent | 59408c92533b83aa1361967b9d5bc430234f0bcd (diff) | |
download | tempest-lib-0115f00b0a82fffa346a76f55df5a8f05e737fdf.tar.gz |
Migrated tenant_networks_client.py from tempest
This migrates the above files from tempest. This includes tempest commits:
* tenant_networks_client.py : Ie0f6e709cbb3a215752344cb39f2f7a6f5a7a91b
* tenant_networks.py : Ica929c402a3d042ae751302384e68853eb28b405
* test_tenant_networks_client.py: I3ad6761651cec5e66012d08e6b63322f53286a5c
to see the commit history for these files refer to the above Change-Ids in the tempest repository
Partially implements blueprint migrate-service-clients-to-tempest-lib
Change-Id: Ie98ff37137e25e73eb77acb0b5b7e53184842540
3 files changed, 150 insertions, 0 deletions
diff --git a/tempest_lib/api_schema/response/compute/v2_1/tenant_networks.py b/tempest_lib/api_schema/response/compute/v2_1/tenant_networks.py new file mode 100644 index 0000000..ddfab96 --- /dev/null +++ b/tempest_lib/api_schema/response/compute/v2_1/tenant_networks.py @@ -0,0 +1,53 @@ +# Copyright 2015 NEC Corporation. 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. + +param_network = { + 'type': 'object', + 'properties': { + 'id': {'type': 'string'}, + 'cidr': {'type': ['string', 'null']}, + 'label': {'type': 'string'} + }, + 'additionalProperties': False, + 'required': ['id', 'cidr', 'label'] +} + + +list_tenant_networks = { + 'status_code': [200], + 'response_body': { + 'type': 'object', + 'properties': { + 'networks': { + 'type': 'array', + 'items': param_network + } + }, + 'additionalProperties': False, + 'required': ['networks'] + } +} + + +get_tenant_network = { + 'status_code': [200], + 'response_body': { + 'type': 'object', + 'properties': { + 'network': param_network + }, + 'additionalProperties': False, + 'required': ['network'] + } +} diff --git a/tempest_lib/services/compute/tenant_networks_client.py b/tempest_lib/services/compute/tenant_networks_client.py new file mode 100644 index 0000000..e1ebfea --- /dev/null +++ b/tempest_lib/services/compute/tenant_networks_client.py @@ -0,0 +1,34 @@ +# Copyright 2015 NEC Corporation. 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 oslo_serialization import jsonutils as json + +from tempest_lib.api_schema.response.compute.v2_1 import tenant_networks +from tempest_lib.common import rest_client + + +class TenantNetworksClient(rest_client.RestClient): + + def list_tenant_networks(self): + resp, body = self.get("os-tenant-networks") + body = json.loads(body) + self.validate_response(tenant_networks.list_tenant_networks, resp, + body) + return rest_client.ResponseBody(resp, body) + + def show_tenant_network(self, network_id): + resp, body = self.get("os-tenant-networks/%s" % network_id) + body = json.loads(body) + self.validate_response(tenant_networks.get_tenant_network, resp, body) + return rest_client.ResponseBody(resp, body) diff --git a/tempest_lib/tests/services/compute/test_tenant_networks_client.py b/tempest_lib/tests/services/compute/test_tenant_networks_client.py new file mode 100644 index 0000000..d21d85c --- /dev/null +++ b/tempest_lib/tests/services/compute/test_tenant_networks_client.py @@ -0,0 +1,63 @@ +# Copyright 2015 NEC Corporation. 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 tempest_lib.services.compute import tenant_networks_client +from tempest_lib.tests import fake_auth_provider +from tempest_lib.tests.services.compute import base + + +class TestTenantNetworksClient(base.BaseComputeServiceTest): + + FAKE_NETWORK = { + "cidr": "None", + "id": "c2329eb4-cc8e-4439-ac4c-932369309e36", + "label": u'\u30d7' + } + + FAKE_NETWORKS = [FAKE_NETWORK] + + NETWORK_ID = FAKE_NETWORK['id'] + + def setUp(self): + super(TestTenantNetworksClient, self).setUp() + fake_auth = fake_auth_provider.FakeAuthProvider() + self.client = tenant_networks_client.TenantNetworksClient( + fake_auth, 'compute', 'regionOne') + + def _test_list_tenant_networks(self, bytes_body=False): + self.check_service_client_function( + self.client.list_tenant_networks, + 'tempest_lib.common.rest_client.RestClient.get', + {"networks": self.FAKE_NETWORKS}, + bytes_body) + + def test_list_tenant_networks_with_str_body(self): + self._test_list_tenant_networks() + + def test_list_tenant_networks_with_bytes_body(self): + self._test_list_tenant_networks(bytes_body=True) + + def _test_show_tenant_network(self, bytes_body=False): + self.check_service_client_function( + self.client.show_tenant_network, + 'tempest_lib.common.rest_client.RestClient.get', + {"network": self.FAKE_NETWORK}, + bytes_body, + network_id=self.NETWORK_ID) + + def test_show_tenant_network_with_str_body(self): + self._test_show_tenant_network() + + def test_show_tenant_network_with_bytes_body(self): + self._test_show_tenant_network(bytes_body=True) |