From ac3e85d89f393da48496d37983d72e8a3fe6f0cc Mon Sep 17 00:00:00 2001 From: Felipe Monteiro Date: Thu, 31 May 2018 23:27:46 -0400 Subject: [PATCH] Move VirtualInterfacesRbacTest into separate module This patchset moves VirtualInterfacesRbacTest into a separate module as its presence in test_server_misc_policy_actions_rbac was out of place, as the class just tests virtual interfaces. Change-Id: I025e7cc318f4de149438bf838d28dae6e9ddeef7 --- .../test_server_misc_policy_actions_rbac.py | 38 ------------ .../compute/test_virtual_interfaces_rbac.py | 61 +++++++++++++++++++ 2 files changed, 61 insertions(+), 38 deletions(-) create mode 100644 patrole_tempest_plugin/tests/api/compute/test_virtual_interfaces_rbac.py diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py index 63dee851..683fd2e7 100644 --- a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py +++ b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py @@ -728,41 +728,3 @@ class MiscPolicyActionsNetworkRbacTest(rbac_base.BaseV2ComputeRbacTest): with self.rbac_utils.override_role(self): self.servers_client.add_fixed_ip(self.server['id'], networkId=network_id) - - -class VirtualInterfacesRbacTest(rbac_base.BaseV2ComputeRbacTest): - # The compute os-virtual-interfaces API is deprecated from the Microversion - # 2.44 onward. For more information, see: - # https://developer.openstack.org/api-ref/compute/#servers-virtual-interfaces-servers-os-virtual-interfaces-deprecated - max_microversion = '2.43' - - @classmethod - def setup_credentials(cls): - # This test needs a network and a subnet - cls.set_network_resources(network=True, subnet=True) - super(VirtualInterfacesRbacTest, cls).setup_credentials() - - @classmethod - def resource_setup(cls): - super(VirtualInterfacesRbacTest, cls).resource_setup() - cls.server = cls.create_test_server(wait_until='ACTIVE') - - @rbac_rule_validation.action( - service="nova", - rule="os_compute_api:os-virtual-interfaces") - @decorators.idempotent_id('fc719ae3-0f73-4689-8378-1b841f0f2818') - def test_list_virtual_interfaces(self): - """Test list virtual interfaces, part of os-virtual-interfaces. - - If Neutron is available, then call the API and expect it to fail - with a 400 BadRequest (policy enforcement is done before that happens). - """ - with self.rbac_utils.override_role(self): - if CONF.service_available.neutron: - msg = ("Listing virtual interfaces is not supported by this " - "cloud.") - with self.assertRaisesRegex(lib_exc.BadRequest, msg): - self.servers_client.list_virtual_interfaces( - self.server['id']) - else: - self.servers_client.list_virtual_interfaces(self.server['id']) diff --git a/patrole_tempest_plugin/tests/api/compute/test_virtual_interfaces_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_virtual_interfaces_rbac.py new file mode 100644 index 00000000..6edb8d9e --- /dev/null +++ b/patrole_tempest_plugin/tests/api/compute/test_virtual_interfaces_rbac.py @@ -0,0 +1,61 @@ +# Copyright 2017 AT&T 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 import config +from tempest.lib import decorators +from tempest.lib import exceptions as lib_exc + +from patrole_tempest_plugin import rbac_rule_validation +from patrole_tempest_plugin.tests.api.compute import rbac_base + +CONF = config.CONF + + +class VirtualInterfacesRbacTest(rbac_base.BaseV2ComputeRbacTest): + # The compute os-virtual-interfaces API is deprecated from the Microversion + # 2.44 onward. For more information, see: + # https://developer.openstack.org/api-ref/compute/#servers-virtual-interfaces-servers-os-virtual-interfaces-deprecated + max_microversion = '2.43' + + @classmethod + def setup_credentials(cls): + # This test needs a network and a subnet + cls.set_network_resources(network=True, subnet=True) + super(VirtualInterfacesRbacTest, cls).setup_credentials() + + @classmethod + def resource_setup(cls): + super(VirtualInterfacesRbacTest, cls).resource_setup() + cls.server = cls.create_test_server(wait_until='ACTIVE') + + @rbac_rule_validation.action( + service="nova", + rule="os_compute_api:os-virtual-interfaces") + @decorators.idempotent_id('fc719ae3-0f73-4689-8378-1b841f0f2818') + def test_list_virtual_interfaces(self): + """Test list virtual interfaces, part of os-virtual-interfaces. + + If Neutron is available, then call the API and expect it to fail + with a 400 BadRequest (policy enforcement is done before that happens). + """ + with self.rbac_utils.override_role(self): + if CONF.service_available.neutron: + msg = ("Listing virtual interfaces is not supported by this " + "cloud.") + with self.assertRaisesRegex(lib_exc.BadRequest, msg): + self.servers_client.list_virtual_interfaces( + self.server['id']) + else: + self.servers_client.list_virtual_interfaces(self.server['id'])