diff --git a/nova/tests/unit/api/openstack/compute/test_fixed_ips.py b/nova/tests/unit/api/openstack/compute/test_fixed_ips.py index 89c0800d8f..d586a29590 100644 --- a/nova/tests/unit/api/openstack/compute/test_fixed_ips.py +++ b/nova/tests/unit/api/openstack/compute/test_fixed_ips.py @@ -16,8 +16,6 @@ import webob from nova.api.openstack import api_version_request from nova.api.openstack.compute import fixed_ips as fixed_ips_v21 -from nova.api.openstack.compute.legacy_v2.contrib import fixed_ips \ - as fixed_ips_v2 from nova.api.openstack import wsgi as os_wsgi from nova import context from nova import exception @@ -240,20 +238,6 @@ class FixedIpTestV21(test.NoDBTestCase): '10.0.0.2', body=body) -class FixedIpTestV2(FixedIpTestV21): - - fixed_ips = fixed_ips_v2 - - def _assert_equal(self, ret, exp): - self.assertEqual(ret.status, '202 Accepted') - - def _get_reserve_action(self): - return self.controller.action - - def _get_unreserve_action(self): - return self.controller.action - - class FixedIpTestV24(FixedIpTestV21): wsgi_api_version = '2.4' diff --git a/nova/tests/unit/api/openstack/compute/test_flavor_access.py b/nova/tests/unit/api/openstack/compute/test_flavor_access.py index 6c158b01bc..d3953de5f5 100644 --- a/nova/tests/unit/api/openstack/compute/test_flavor_access.py +++ b/nova/tests/unit/api/openstack/compute/test_flavor_access.py @@ -22,9 +22,7 @@ from webob import exc from nova.api.openstack import api_version_request as api_version from nova.api.openstack.compute import flavor_access \ as flavor_access_v21 -from nova.api.openstack.compute.legacy_v2.contrib import flavor_access \ - as flavor_access_v2 -from nova.api.openstack.compute.legacy_v2 import flavors as flavors_api +from nova.api.openstack.compute import flavors as flavors_api from nova import context from nova import exception from nova import test @@ -138,7 +136,7 @@ class FlavorAccessTestV21(test.NoDBTestCase): def setUp(self): super(FlavorAccessTestV21, self).setUp() - self.flavor_controller = flavors_api.Controller() + self.flavor_controller = flavors_api.FlavorsController() self.req = FakeRequest() self.req.environ = {"nova.context": context.RequestContext('fake_user', 'fake')} @@ -387,63 +385,6 @@ class FlavorAccessTestV21(test.NoDBTestCase): remove_access, req, '2', body=body) -class FlavorAccessTestV20(FlavorAccessTestV21): - api_version = "2.0" - FlavorAccessController = flavor_access_v2.FlavorAccessController - FlavorActionController = flavor_access_v2.FlavorActionController - validation_ex = exc.HTTPBadRequest - - def setUp(self): - super(FlavorAccessTestV20, self).setUp() - self.req = FakeRequest() - self.req.environ = {"nova.context": context.get_admin_context()} - - def test_remove_tenant_access_with_no_admin_user(self): - req = fakes.HTTPRequest.blank(self._prefix + '/flavors/2/action', - use_admin_context=False) - body = {'removeTenantAccess': {'tenant': 'proj2'}} - remove_access = self._get_remove_access() - self.assertRaises(exception.AdminRequired, - remove_access, req, '2', body=body) - - def test_add_tenant_access_with_no_admin_user(self): - req = fakes.HTTPRequest.blank(self._prefix + '/flavors/2/action', - use_admin_context=False) - body = {'addTenantAccess': {'tenant': 'proj2'}} - add_access = self._get_add_access() - self.assertRaises(exception.AdminRequired, - add_access, req, '2', body=body) - - def test_list_with_no_admin(self): - req = fakes.HTTPRequest.blank(self._prefix + '/flavors/fake/flavors') - self.assertRaises(exception.AdminRequired, - self.flavor_access_controller.index, - req, 'fake') - - @mock.patch('nova.objects.Flavor.add_access') - def test_add_tenant_access_is_public(self, mock_add): - # V2 don't test public before add access - expected = {'flavor_access': - [{'flavor_id': '3', 'tenant_id': 'proj3'}]} - body = {'addTenantAccess': {'tenant': 'proj2'}} - req = fakes.HTTPRequest.blank(self._prefix + '/flavors/2/action', - use_admin_context=True) - - add_access = self._get_add_access() - result = add_access(req, '3', body=body) - mock_add.assert_called_once_with('proj2') - self.assertEqual(result, expected) - - @mock.patch('nova.objects.Flavor.add_access') - def test_add_tenant_access_with_flavor_not_found(self, mock_add): - body = {'addTenantAccess': {'tenant': 'proj2'}} - req = fakes.HTTPRequest.blank(self._prefix + '/flavors/2/action', - use_admin_context=True) - add_access = self._get_add_access() - add_access(req, '1000', body=body) - mock_add.assert_called_once_with('proj2') - - class FlavorAccessPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_flavor_manage.py b/nova/tests/unit/api/openstack/compute/test_flavor_manage.py index 666db21993..0ffbfab5d7 100644 --- a/nova/tests/unit/api/openstack/compute/test_flavor_manage.py +++ b/nova/tests/unit/api/openstack/compute/test_flavor_manage.py @@ -22,10 +22,6 @@ import webob from nova.api.openstack.compute import flavor_access as flavor_access_v21 from nova.api.openstack.compute import flavor_manage as flavormanage_v21 -from nova.api.openstack.compute.legacy_v2.contrib import flavor_access \ - as flavor_access_v2 -from nova.api.openstack.compute.legacy_v2.contrib import flavormanage \ - as flavormanage_v2 from nova.compute import flavors from nova import exception from nova import test @@ -426,60 +422,6 @@ class PrivateFlavorManageTestV21(test.TestCase): self.assertEqual(body["flavor"][key], self.expected["flavor"][key]) -class FlavorManageTestV2(FlavorManageTestV21): - controller = flavormanage_v2.FlavorManageController() - validation_error = webob.exc.HTTPBadRequest - - def setUp(self): - super(FlavorManageTestV2, self).setUp() - self.flags( - osapi_compute_extension=[ - 'nova.api.openstack.compute.contrib.select_extensions'], - osapi_compute_ext_list=['Flavormanage', 'Flavorextradata', - 'Flavor_access', 'Flavor_rxtx', 'Flavor_swap']) - - @property - def app(self): - return fakes.wsgi_app(init_only=('flavors',), - fake_auth_context=self._get_http_request(). - environ['nova.context']) - - def _get_http_request(self, url=''): - return fakes.HTTPRequest.blank(url, use_admin_context=False) - - def test_create_with_name_leading_trailing_spaces(self): - req = self._get_http_request(url=self.base_url) - self.request_body['flavor']['name'] = ' test ' - body = self._create_flavor_success_case(self.request_body, req) - self.assertEqual('test', body['flavor']['name']) - - def test_create_with_name_leading_trailing_spaces_compat_mode(self): - pass - - -class PrivateFlavorManageTestV2(PrivateFlavorManageTestV21): - controller = flavormanage_v2.FlavorManageController() - - def setUp(self): - super(PrivateFlavorManageTestV2, self).setUp() - self.flags( - osapi_compute_extension=[ - 'nova.api.openstack.compute.contrib.select_extensions'], - osapi_compute_ext_list=['Flavormanage', 'Flavorextradata', - 'Flavor_access', 'Flavor_rxtx', 'Flavor_swap']) - self.flavor_access_controller = (flavor_access_v2. - FlavorAccessController()) - - @property - def app(self): - return fakes.wsgi_app(init_only=('flavors',), - fake_auth_context=self._get_http_request(). - environ['nova.context']) - - def _get_http_request(self, url=''): - return fakes.HTTPRequest.blank(url, use_admin_context=False) - - class FlavorManagerPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_flavors.py b/nova/tests/unit/api/openstack/compute/test_flavors.py index cff1095d2c..96df807953 100644 --- a/nova/tests/unit/api/openstack/compute/test_flavors.py +++ b/nova/tests/unit/api/openstack/compute/test_flavors.py @@ -18,7 +18,6 @@ import webob from nova.api.openstack import common from nova.api.openstack.compute import flavors as flavors_v21 -from nova.api.openstack.compute.legacy_v2 import flavors as flavors_v2 import nova.compute.flavors from nova import context from nova import exception @@ -564,14 +563,6 @@ class FlavorsTestV21(test.TestCase): self.assertEqual(expected, flavor) -class FlavorsTestV20(FlavorsTestV21): - Controller = flavors_v2.Controller - fake_request = fakes.HTTPRequest - - def _set_expected_body(self, expected, ephemeral, swap, disabled): - pass - - class DisabledFlavorsWithRealDBTestV21(test.TestCase): """Tests that disabled flavors should not be shown nor listed.""" Controller = flavors_v21.FlavorsController @@ -649,13 +640,6 @@ class DisabledFlavorsWithRealDBTestV21(test.TestCase): self.assertEqual(flavor['name'], self.disabled_type['name']) -class DisabledFlavorsWithRealDBTestV20(DisabledFlavorsWithRealDBTestV21): - """Tests that disabled flavors should not be shown nor listed.""" - Controller = flavors_v2.Controller - _prefix = "/v2/fake" - fake_request = fakes.HTTPRequest - - class ParseIsPublicTestV21(test.TestCase): Controller = flavors_v21.FlavorsController @@ -691,7 +675,3 @@ class ParseIsPublicTestV21(test.TestCase): def test_other(self): self.assertRaises( webob.exc.HTTPBadRequest, self.assertPublic, None, 'other') - - -class ParseIsPublicTestV20(ParseIsPublicTestV21): - Controller = flavors_v2.Controller diff --git a/nova/tests/unit/api/openstack/compute/test_flavors_extra_specs.py b/nova/tests/unit/api/openstack/compute/test_flavors_extra_specs.py index f7348f8931..877aacae46 100644 --- a/nova/tests/unit/api/openstack/compute/test_flavors_extra_specs.py +++ b/nova/tests/unit/api/openstack/compute/test_flavors_extra_specs.py @@ -18,8 +18,6 @@ import webob from nova.api.openstack.compute import flavors_extraspecs \ as flavorextraspecs_v21 -from nova.api.openstack.compute.legacy_v2.contrib import flavorextraspecs \ - as flavorextraspecs_v2 from nova import exception from nova import objects from nova import test @@ -341,8 +339,3 @@ class FlavorsExtraSpecsTestV21(test.TestCase): use_admin_context=True) self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update, req, 1, 'key1', body={"key1": value}) - - -class FlavorsExtraSpecsTestV2(FlavorsExtraSpecsTestV21): - bad_request = webob.exc.HTTPBadRequest - flavorextraspecs = flavorextraspecs_v2 diff --git a/nova/tests/unit/api/openstack/compute/test_floating_ip_dns.py b/nova/tests/unit/api/openstack/compute/test_floating_ip_dns.py index 8186b2e568..cc86b8c034 100644 --- a/nova/tests/unit/api/openstack/compute/test_floating_ip_dns.py +++ b/nova/tests/unit/api/openstack/compute/test_floating_ip_dns.py @@ -21,8 +21,6 @@ import webob from nova.api.openstack.compute import floating_ip_dns \ as fipdns_v21 -from nova.api.openstack.compute.legacy_v2.contrib import floating_ip_dns \ - as fipdns_v2 from nova import context from nova import db from nova import exception @@ -362,38 +360,6 @@ class FloatingIpDNSTestV21(test.TestCase): self.domain_controller.index, self.req) -class FloatingIpDNSTestV2(FloatingIpDNSTestV21): - floating_ip_dns = fipdns_v2 - - def _check_status(self, expected_status, res, controller_methord): - self.assertEqual(expected_status, res.status_int) - - def _bad_request(self): - return webob.exc.HTTPUnprocessableEntity - - def test_update_dns_domain_with_non_admin(self): - body = {'domain_entry': - {'scope': 'private', - 'project': 'testproject'}} - self.assertRaises(exception.AdminRequired, - self.domain_controller.update, - self.req, _quote_domain(domain), body=body) - - def test_delete_dns_domain_with_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.domain_controller.delete, - self.req, _quote_domain(domain)) - - def test_create_domain(self): - self._test_create_domain(self.admin_req) - - def test_delete_domain(self): - self._test_delete_domain(self.admin_req) - - def test_delete_domain_notfound(self): - self._test_delete_domain_notfound(self.admin_req) - - class FloatingIPDNSDomainPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_floating_ip_pools.py b/nova/tests/unit/api/openstack/compute/test_floating_ip_pools.py index 6ae8df16fa..d674364b4e 100644 --- a/nova/tests/unit/api/openstack/compute/test_floating_ip_pools.py +++ b/nova/tests/unit/api/openstack/compute/test_floating_ip_pools.py @@ -15,8 +15,6 @@ from nova.api.openstack.compute import floating_ip_pools \ as fipp_v21 -from nova.api.openstack.compute.legacy_v2.contrib import floating_ip_pools \ - as fipp_v2 from nova import context from nova import exception from nova import network @@ -57,10 +55,6 @@ class FloatingIpPoolTestV21(test.NoDBTestCase): self.assertEqual(res_dict, response) -class FloatingIpPoolTestV2(FloatingIpPoolTestV21): - floating_ip_pools = fipp_v2 - - class FloatingIPPoolsPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_floating_ips.py b/nova/tests/unit/api/openstack/compute/test_floating_ips.py index 86124097e1..8c5faa12e0 100644 --- a/nova/tests/unit/api/openstack/compute/test_floating_ips.py +++ b/nova/tests/unit/api/openstack/compute/test_floating_ips.py @@ -21,8 +21,6 @@ import six import webob from nova.api.openstack.compute import floating_ips as fips_v21 -from nova.api.openstack.compute.legacy_v2.contrib import floating_ips \ - as fips_v2 from nova.api.openstack import extensions from nova import compute from nova.compute import utils as compute_utils @@ -163,14 +161,6 @@ class FloatingIpTestNeutronV21(test.NoDBTestCase): self._test_floatingip_delete_not_found(ex, webob.exc.HTTPBadRequest) -class FloatingIpTestNeutronV2(FloatingIpTestNeutronV21): - floating_ips = fips_v2 - - def test_floatingip_delete_invalid_id(self): - ex = exception.InvalidID(id=1) - self._test_floatingip_delete_not_found(ex, webob.exc.HTTPNotFound) - - class FloatingIpTestV21(test.TestCase): floating_ip = "10.10.10.10" floating_ip_2 = "10.10.10.11" @@ -720,33 +710,6 @@ class FloatingIpTestV21(test.TestCase): TEST_INST, body=body) -class FloatingIpTestV2(FloatingIpTestV21): - floating_ips = fips_v2 - validation_error = webob.exc.HTTPBadRequest - - def test_not_extended_floating_ip_associate_fixed(self): - # Check that fixed_address is ignored if os-extended-floating-ips - # is not loaded - fixed_address_requested = '192.168.1.101' - fixed_address_allocated = '192.168.1.100' - - def fake_associate_floating_ip(*args, **kwargs): - self.assertEqual(fixed_address_allocated, - kwargs['fixed_address']) - - self.stubs.Set(network.api.API, "associate_floating_ip", - fake_associate_floating_ip) - body = dict(addFloatingIp=dict(address=self.floating_ip, - fixed_address=fixed_address_requested)) - - rsp = self.manager._add_floating_ip(self.fake_req, TEST_INST, body) - self.assertEqual(202, rsp.status_int) - - def test_floatingip_delete_invalid_id(self): - ex = exception.InvalidID(id=1) - self._test_floatingip_delete_not_found(ex, webob.exc.HTTPNotFound) - - class ExtendedFloatingIpTestV21(test.TestCase): floating_ip = "10.10.10.10" floating_ip_2 = "10.10.10.11" @@ -838,10 +801,6 @@ class ExtendedFloatingIpTestV21(test.TestCase): ex.explanation) -class ExtendedFloatingIpTestV2(ExtendedFloatingIpTestV21): - floating_ips = fips_v2 - - class FloatingIPPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_floating_ips_bulk.py b/nova/tests/unit/api/openstack/compute/test_floating_ips_bulk.py index a2078e21ff..8b43d52cd9 100644 --- a/nova/tests/unit/api/openstack/compute/test_floating_ips_bulk.py +++ b/nova/tests/unit/api/openstack/compute/test_floating_ips_bulk.py @@ -19,8 +19,6 @@ import webob from nova.api.openstack.compute import floating_ips_bulk \ as fipbulk_v21 -from nova.api.openstack.compute.legacy_v2.contrib import floating_ips_bulk \ - as fipbulk_v2 from nova import context from nova import exception from nova import objects @@ -167,40 +165,6 @@ class FloatingIPBulkV21(test.TestCase): self.req, body=body) -class FloatingIPBulkV2(FloatingIPBulkV21): - floating_ips_bulk = fipbulk_v2 - bad_request = webob.exc.HTTPBadRequest - - def setUp(self): - super(FloatingIPBulkV2, self).setUp() - self.non_admin_req = fakes.HTTPRequest.blank('') - self.admin_req = fakes.HTTPRequest.blank('', use_admin_context=True) - - def test_list_ips_with_non_admin(self): - ip_range = '192.168.1.1/28' - self._setup_floating_ips(ip_range) - self.assertRaises(exception.AdminRequired, - self.controller.index, self.non_admin_req) - - def test_list_ip_with_non_admin(self): - ip_range = '192.168.1.1/28' - self._setup_floating_ips(ip_range) - self.assertRaises(exception.AdminRequired, self.controller.show, - self.non_admin_req, "host") - - def test_delete_ips(self): - self._test_delete_ips(self.admin_req) - - def test_list_ip_by_host(self): - self._test_list_ip_by_host(self.admin_req) - - def test_list_ips_associated(self): - self._test_list_ips_associated(self.admin_req) - - def test_list_ips(self): - self._test_list_ips(self.admin_req) - - class FloatingIPBulkPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_fping.py b/nova/tests/unit/api/openstack/compute/test_fping.py index 817312c264..5d0bcba272 100644 --- a/nova/tests/unit/api/openstack/compute/test_fping.py +++ b/nova/tests/unit/api/openstack/compute/test_fping.py @@ -18,7 +18,6 @@ import mock import webob from nova.api.openstack.compute import fping as fping_v21 -from nova.api.openstack.compute.legacy_v2.contrib import fping from nova import exception from nova import test from nova.tests.unit.api.openstack import fakes @@ -111,10 +110,6 @@ class FpingTestV21(test.TestCase): self.controller.show, req, FAKE_UUID) -class FpingTestV2(FpingTestV21): - controller_cls = fping.FpingController - - class FpingPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_hosts.py b/nova/tests/unit/api/openstack/compute/test_hosts.py index 656fbcc139..485374115f 100644 --- a/nova/tests/unit/api/openstack/compute/test_hosts.py +++ b/nova/tests/unit/api/openstack/compute/test_hosts.py @@ -17,7 +17,6 @@ import testtools import webob.exc from nova.api.openstack.compute import hosts as os_hosts_v21 -from nova.api.openstack.compute.legacy_v2.contrib import hosts as os_hosts_v2 from nova.compute import power_state from nova.compute import vm_states from nova import context as context_maker @@ -377,43 +376,6 @@ class HostTestCaseV21(test.TestCase): self.assertEqual(fake_hosts.HOST_LIST_NOVA_ZONE, hosts) -class HostTestCaseV20(HostTestCaseV21): - validation_ex = webob.exc.HTTPBadRequest - policy_ex = webob.exc.HTTPForbidden - Controller = os_hosts_v2.HostController - - def test_list_hosts_with_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.controller.index, fakes.HTTPRequest.blank('')) - - def test_host_maintenance_with_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.controller.update, fakes.HTTPRequest.blank(''), - 'host_c1', {'maintenance_mode': 'enable'}) - - def test_startup_with_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.controller.startup, fakes.HTTPRequest.blank(''), - 'host_c1') - - def test_reboot_with_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.controller.reboot, fakes.HTTPRequest.blank(''), - 'host_c1') - - def test_shutdown_with_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.controller.shutdown, - fakes.HTTPRequest.blank(''), - 'host_c1') - - def test_show_non_admin(self): - self.assertRaises(exception.AdminRequired, - self.controller.show, - fakes.HTTPRequest.blank(''), - 1) - - class HostsPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py b/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py index 3f127d9cd8..5fe40f0fe4 100644 --- a/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py +++ b/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py @@ -18,9 +18,6 @@ import mock from nova.api.openstack.compute import hypervisors \ as hypervisors_v21 -from nova.api.openstack.compute.legacy_v2.contrib import hypervisors \ - as hypervisors_v2 -from nova.api.openstack import extensions from nova import objects from nova import test from nova.tests.unit.api.openstack.compute import test_hypervisors @@ -84,13 +81,3 @@ class HypervisorStatusTestV21(test.NoDBTestCase): result = self.controller._view_hypervisor(hyper, service, True) self.assertEqual('disabled', result['status'],) self.assertEqual('fake', result['service']['disabled_reason']) - - -class HypervisorStatusTestV2(HypervisorStatusTestV21): - def _prepare_extension(self): - ext_mgr = extensions.ExtensionManager() - ext_mgr.extensions = {} - ext_mgr.extensions['os-hypervisor-status'] = True - self.controller = hypervisors_v2.HypervisorsController(ext_mgr) - self.controller.servicegroup_api.service_is_up = mock.MagicMock( - return_value=True) diff --git a/nova/tests/unit/api/openstack/compute/test_hypervisors.py b/nova/tests/unit/api/openstack/compute/test_hypervisors.py index 548f1d2c37..6be2584574 100644 --- a/nova/tests/unit/api/openstack/compute/test_hypervisors.py +++ b/nova/tests/unit/api/openstack/compute/test_hypervisors.py @@ -20,11 +20,7 @@ from webob import exc from nova.api.openstack.compute import hypervisors \ as hypervisors_v21 -from nova.api.openstack.compute.legacy_v2.contrib import hypervisors \ - as hypervisors_v2 -from nova.api.openstack import extensions from nova.cells import utils as cells_utils -from nova import context from nova import exception from nova import objects from nova import test @@ -436,62 +432,6 @@ class HypervisorsTestV21(test.NoDBTestCase): self.controller.statistics, req) -class HypervisorsTestV2(HypervisorsTestV21): - DETAIL_HYPERS_DICTS = copy.deepcopy( - HypervisorsTestV21.DETAIL_HYPERS_DICTS) - del DETAIL_HYPERS_DICTS[0]['state'] - del DETAIL_HYPERS_DICTS[1]['state'] - del DETAIL_HYPERS_DICTS[0]['status'] - del DETAIL_HYPERS_DICTS[1]['status'] - del DETAIL_HYPERS_DICTS[0]['service']['disabled_reason'] - del DETAIL_HYPERS_DICTS[1]['service']['disabled_reason'] - del DETAIL_HYPERS_DICTS[0]['host_ip'] - del DETAIL_HYPERS_DICTS[1]['host_ip'] - - INDEX_HYPER_DICTS = copy.deepcopy(HypervisorsTestV21.INDEX_HYPER_DICTS) - del INDEX_HYPER_DICTS[0]['state'] - del INDEX_HYPER_DICTS[1]['state'] - del INDEX_HYPER_DICTS[0]['status'] - del INDEX_HYPER_DICTS[1]['status'] - - def setUp(self): - super(HypervisorsTestV2, self).setUp() - self.rule_hyp_show = "compute_extension:hypervisors" - self.rule = {self.rule_hyp_show: ""} - - def _set_up_controller(self): - self.context = context.get_admin_context() - self.ext_mgr = extensions.ExtensionManager() - self.ext_mgr.extensions = {} - self.controller = hypervisors_v2.HypervisorsController(self.ext_mgr) - - def test_index_non_admin_back_compatible_db(self): - self.policy.set_rules(self.rule) - req = self._get_request(False) - self.assertRaises(exception.AdminRequired, - self.controller.index, req) - - def test_detail_non_admin_back_compatible_db(self): - self.policy.set_rules(self.rule) - req = self._get_request(False) - self.assertRaises(exception.AdminRequired, - self.controller.detail, req) - - def test_search_non_admin_back_compatible_db(self): - self.policy.set_rules(self.rule) - req = self._get_request(False) - self.assertRaises(exception.AdminRequired, - self.controller.search, req, - self.TEST_HYPERS_OBJ[0].id) - - def test_servers_non_admin_back_compatible_db(self): - self.policy.set_rules(self.rule) - req = self._get_request(False) - self.assertRaises(exception.AdminRequired, - self.controller.servers, req, - self.TEST_HYPERS_OBJ[0].id) - - _CELL_PATH = 'cell1' @@ -571,25 +511,3 @@ class CellHypervisorsTestV21(HypervisorsTestV21): fake_compute_node_statistics) self.stubs.Set(self.controller.host_api, 'instance_get_all_by_host', self.fake_instance_get_all_by_host) - - -class CellHypervisorsTestV2(HypervisorsTestV2, CellHypervisorsTestV21): - DETAIL_HYPERS_DICTS = copy.deepcopy(HypervisorsTestV2.DETAIL_HYPERS_DICTS) - DETAIL_HYPERS_DICTS = [dict(hyp, id=cells_utils.cell_with_item(_CELL_PATH, - hyp['id']), - service=dict(hyp['service'], - id=cells_utils.cell_with_item( - _CELL_PATH, - hyp['service']['id']), - host=cells_utils.cell_with_item( - _CELL_PATH, - hyp['service']['host']))) - for hyp in DETAIL_HYPERS_DICTS] - - INDEX_HYPER_DICTS = copy.deepcopy(HypervisorsTestV2.INDEX_HYPER_DICTS) - INDEX_HYPER_DICTS = [dict(hyp, id=cells_utils.cell_with_item(_CELL_PATH, - hyp['id'])) - for hyp in INDEX_HYPER_DICTS] - - def setUp(self): - super(CellHypervisorsTestV2, self).setUp() diff --git a/nova/tests/unit/api/openstack/compute/test_image_metadata.py b/nova/tests/unit/api/openstack/compute/test_image_metadata.py index cfa0be13f6..4a482ef15c 100644 --- a/nova/tests/unit/api/openstack/compute/test_image_metadata.py +++ b/nova/tests/unit/api/openstack/compute/test_image_metadata.py @@ -20,7 +20,6 @@ from oslo_serialization import jsonutils import webob from nova.api.openstack.compute import image_metadata as image_metadata_v21 -from nova.api.openstack.compute.legacy_v2 import image_metadata from nova import exception from nova import test from nova.tests.unit.api.openstack import fakes @@ -349,23 +348,3 @@ class ImageMetaDataTestV21(test.NoDBTestCase): self.assertRaises(webob.exc.HTTPForbidden, self.controller.create, req, image_id, body=body) - - -class ImageMetaDataTestV2(ImageMetaDataTestV21): - controller_class = image_metadata.Controller - invalid_request = webob.exc.HTTPBadRequest - - # NOTE(cyeoh): This duplicate unittest is necessary for a race condition - # with the V21 unittests. It's mock issue. - @mock.patch('nova.image.api.API.update') - @mock.patch('nova.image.api.API.get', return_value=get_image_123()) - def test_delete(self, _get_mocked, update_mocked): - req = fakes.HTTPRequest.blank('/v2/fake/images/123/metadata/key1') - req.method = 'DELETE' - res = self.controller.delete(req, '123', 'key1') - expected = copy.deepcopy(get_image_123()) - expected['properties'] = {} - update_mocked.assert_called_once_with(mock.ANY, '123', expected, - data=None, purge_props=True) - - self.assertIsNone(res) diff --git a/nova/tests/unit/api/openstack/compute/test_images.py b/nova/tests/unit/api/openstack/compute/test_images.py index a74e53c3c3..177d914c6a 100644 --- a/nova/tests/unit/api/openstack/compute/test_images.py +++ b/nova/tests/unit/api/openstack/compute/test_images.py @@ -25,7 +25,6 @@ import six.moves.urllib.parse as urlparse import webob from nova.api.openstack.compute import images as images_v21 -from nova.api.openstack.compute.legacy_v2 import images from nova.api.openstack.compute.views import images as images_view from nova import exception from nova.image import glance @@ -407,11 +406,3 @@ class ImagesControllerTestV21(test.NoDBTestCase): params = urlparse.parse_qs(href_parts.query) self.assertThat({'limit': ['1'], 'marker': [IMAGE_FIXTURES[0]['id']]}, matchers.DictMatches(params)) - - -class ImagesControllerTestV2(ImagesControllerTestV21): - image_controller_class = images.Controller - http_request = fakes.HTTPRequest - - def _check_response(self, controller_method, response, expected_code): - self.assertEqual(expected_code, response.status_int) diff --git a/nova/tests/unit/api/openstack/compute/test_instance_actions.py b/nova/tests/unit/api/openstack/compute/test_instance_actions.py index b5f4c71a9c..8161786825 100644 --- a/nova/tests/unit/api/openstack/compute/test_instance_actions.py +++ b/nova/tests/unit/api/openstack/compute/test_instance_actions.py @@ -22,8 +22,6 @@ import six from webob import exc from nova.api.openstack.compute import instance_actions as instance_actions_v21 -from nova.api.openstack.compute.legacy_v2.contrib import instance_actions \ - as instance_actions_v2 from nova.api.openstack import wsgi as os_wsgi from nova.compute import api as compute_api from nova.db.sqlalchemy import models @@ -108,16 +106,6 @@ class InstanceActionsPolicyTestV21(test.NoDBTestCase): str(uuid.uuid4()), '1') -class InstanceActionsPolicyTestV2(InstanceActionsPolicyTestV21): - instance_actions = instance_actions_v2 - - def _set_policy_rules(self): - rules = {'compute:get': '', - 'compute_extension:instance_actions': - 'project_id:%(project_id)s'} - policy.set_rules(oslo_policy.Rules.from_dict(rules)) - - class InstanceActionsTestV21(test.NoDBTestCase): instance_actions = instance_actions_v21 wsgi_api_version = os_wsgi.DEFAULT_API_VERSION @@ -238,13 +226,3 @@ class InstanceActionsTestV221(InstanceActionsTestV21): want_objects=False): self.assertEqual('yes', context.read_deleted) return objects.Instance(uuid=instance_uuid) - - -class InstanceActionsTestV2(InstanceActionsTestV21): - instance_actions = instance_actions_v2 - - def _set_policy_rules(self): - rules = {'compute:get': '', - 'compute_extension:instance_actions': '', - 'compute_extension:instance_actions:events': 'is_admin:True'} - policy.set_rules(oslo_policy.Rules.from_dict(rules)) diff --git a/nova/tests/unit/api/openstack/compute/test_keypairs.py b/nova/tests/unit/api/openstack/compute/test_keypairs.py index b9e05709b7..469a6ec567 100644 --- a/nova/tests/unit/api/openstack/compute/test_keypairs.py +++ b/nova/tests/unit/api/openstack/compute/test_keypairs.py @@ -20,8 +20,6 @@ import webob from oslo_policy import policy as oslo_policy from nova.api.openstack.compute import keypairs as keypairs_v21 -from nova.api.openstack.compute.legacy_v2.contrib import keypairs \ - as keypairs_v2 from nova.api.openstack import wsgi as os_wsgi from nova.compute import api as compute_api from nova import exception @@ -429,45 +427,6 @@ class KeypairPolicyTestV21(test.NoDBTestCase): self.KeyPairController.delete(self.req, 'FAKE') -class KeypairsTestV2(KeypairsTestV21): - validation_error = webob.exc.HTTPBadRequest - - def _setup_app_and_controller(self): - self.app_server = fakes.wsgi_app(init_only=('servers',)) - self.controller = keypairs_v2.KeypairController() - - def test_keypair_create_with_name_leading_trailing_spaces( - self): - body = {'keypair': {'name': ' test '}} - self.req.set_legacy_v2() - res_dict = self.controller.create(self.req, body=body) - self.assertEqual(' test ', res_dict['keypair']['name']) - - def test_keypair_create_with_name_leading_trailing_spaces_compat_mode( - self): - pass - - def test_create_server_keypair_name_with_leading_trailing(self): - pass - - @mock.patch.object(compute_api.API, 'create') - def test_create_server_keypair_name_with_leading_trailing_compat_mode( - self, mock_create): - mock_create.return_value = ( - objects.InstanceList(objects=[ - fakes.stub_instance_obj(ctxt=None, id=1)]), - None) - req = fakes.HTTPRequest.blank(self.base_url + '/servers') - req.method = 'POST' - req.headers["content-type"] = "application/json" - req.body = jsonutils.dump_as_bytes({'server': {'name': 'test', - 'flavorRef': 1, - 'keypair_name': ' abc ', - 'imageRef': FAKE_UUID}}) - res = req.get_response(self.app_server) - self.assertEqual(202, res.status_code) - - class KeypairsTestV22(KeypairsTestV21): wsgi_api_version = '2.2' @@ -594,11 +553,3 @@ class KeypairsTestV210(KeypairsTestV22): self.assertRaises(exception.PolicyNotAuthorized, self.controller.create, req, body=body) - - -class KeypairPolicyTestV2(KeypairPolicyTestV21): - KeyPairController = keypairs_v2.KeypairController() - policy_path = 'compute_extension:keypairs' - - def _assert_keypair_create(self, mock_create, req): - mock_create.assert_called_with(req, 'fake_user', 'create_test') diff --git a/nova/tests/unit/api/openstack/compute/test_lock_server.py b/nova/tests/unit/api/openstack/compute/test_lock_server.py index d39852579f..c31af4b0ee 100644 --- a/nova/tests/unit/api/openstack/compute/test_lock_server.py +++ b/nova/tests/unit/api/openstack/compute/test_lock_server.py @@ -13,13 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. -import webob - import mock from nova.api.openstack import common -from nova.api.openstack.compute.legacy_v2.contrib import admin_actions \ - as lock_server_v2 from nova.api.openstack.compute import lock_server as lock_server_v21 from nova import context from nova import exception @@ -68,13 +64,6 @@ class LockServerTestsV21(admin_only_action_common.CommonTests): self.req, instance.uuid, body) -class LockServerTestsV2(LockServerTestsV21): - lock_server = lock_server_v2 - controller_name = 'AdminActionsController' - authorization_error = webob.exc.HTTPForbidden - _api_version = '2' - - class LockServerPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_migrate_server.py b/nova/tests/unit/api/openstack/compute/test_migrate_server.py index 2d00de42db..923a8cb5fe 100644 --- a/nova/tests/unit/api/openstack/compute/test_migrate_server.py +++ b/nova/tests/unit/api/openstack/compute/test_migrate_server.py @@ -18,8 +18,6 @@ import six import webob from nova.api.openstack import api_version_request -from nova.api.openstack.compute.legacy_v2.contrib import admin_actions as \ - migrate_server_v2 from nova.api.openstack.compute import migrate_server as \ migrate_server_v21 from nova import exception @@ -271,13 +269,6 @@ class MigrateServerTestsV21(admin_only_action_common.CommonTests): check_response=False) -class MigrateServerTestsV2(MigrateServerTestsV21): - migrate_server = migrate_server_v2 - controller_name = 'AdminActionsController' - validation_error = webob.exc.HTTPBadRequest - _api_version = '2' - - class MigrateServerTestsV225(MigrateServerTestsV21): # We don't have disk_over_commit in v2.25 diff --git a/nova/tests/unit/api/openstack/compute/test_migrations.py b/nova/tests/unit/api/openstack/compute/test_migrations.py index de206a3398..21369a2559 100644 --- a/nova/tests/unit/api/openstack/compute/test_migrations.py +++ b/nova/tests/unit/api/openstack/compute/test_migrations.py @@ -17,8 +17,6 @@ import mock from oslotest import moxstubout -from nova.api.openstack.compute.legacy_v2.contrib import migrations \ - as migrations_v2 from nova.api.openstack.compute import migrations as migrations_v21 from nova import context from nova import exception @@ -183,28 +181,6 @@ class MigrationsTestCaseV21(test.NoDBTestCase): self.assertEqual(migrations_in_progress, response) -class MigrationsTestCaseV2(MigrationsTestCaseV21): - migrations = migrations_v2 - - def _migrations_output(self): - return self.migrations.output(migrations_obj) - - def setUp(self): - super(MigrationsTestCaseV2, self).setUp() - self.context = self.req.environ['nova.context'] - - def test_index_needs_authorization(self): - user_context = context.RequestContext(user_id=None, - project_id=None, - is_admin=False, - read_deleted="no", - overwrite=False) - self.req.environ['nova.context'] = user_context - - self.assertRaises(exception.PolicyNotAuthorized, self.controller.index, - self.req) - - class MigrationsTestCaseV223(MigrationsTestCaseV21): wsgi_api_version = '2.23' diff --git a/nova/tests/unit/api/openstack/compute/test_multinic.py b/nova/tests/unit/api/openstack/compute/test_multinic.py index 7be26206c0..e4fcbf5224 100644 --- a/nova/tests/unit/api/openstack/compute/test_multinic.py +++ b/nova/tests/unit/api/openstack/compute/test_multinic.py @@ -16,8 +16,6 @@ import mock import webob -from nova.api.openstack.compute.legacy_v2.contrib import multinic \ - as multinic_v2 from nova.api.openstack.compute import multinic as multinic_v21 from nova import compute from nova import exception @@ -164,16 +162,6 @@ class FixedIpTestV21(test.NoDBTestCase): UUID, body=body) -class FixedIpTestV2(FixedIpTestV21): - controller_class = multinic_v2 - validation_error = webob.exc.HTTPBadRequest - - def test_remove_fixed_ip_invalid_address(self): - # NOTE(cyeoh): This test is disabled for the V2 API because it is - # has poorer input validation. - pass - - class MultinicPolicyEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_multiple_create.py b/nova/tests/unit/api/openstack/compute/test_multiple_create.py index 3260d7df72..4cad859150 100644 --- a/nova/tests/unit/api/openstack/compute/test_multiple_create.py +++ b/nova/tests/unit/api/openstack/compute/test_multiple_create.py @@ -20,10 +20,8 @@ import webob from nova.api.openstack.compute import block_device_mapping \ as block_device_mapping_v21 from nova.api.openstack.compute import extension_info -from nova.api.openstack.compute.legacy_v2 import servers as servers_v20 from nova.api.openstack.compute import multiple_create as multiple_create_v21 from nova.api.openstack.compute import servers as servers_v21 -from nova.api.openstack import extensions as extensions_v20 from nova.compute import api as compute_api from nova.compute import flavors import nova.conf @@ -496,82 +494,3 @@ class MultiCreateExtensionTestV21(test.TestCase): self.assertRaises(self.validation_error, self.controller.create, self.req, body=body) - - -class MultiCreateExtensionTestV2(MultiCreateExtensionTestV21): - validation_error = webob.exc.HTTPBadRequest - - def setUp(self): - """Shared implementation for tests below that create instance.""" - super(MultiCreateExtensionTestV2, self).setUp() - - self.flags(verbose=True, - enable_instance_password=True) - self.instance_cache_num = 0 - self.instance_cache_by_id = {} - self.instance_cache_by_uuid = {} - - fakes.stub_out_nw_api(self) - - self.ext_mgr = extensions_v20.ExtensionManager() - self.ext_mgr.extensions = { - 'os-volumes': 'fake', - 'os-multiple-create': 'fake', - 'os-block-device-mapping-v2-boot': 'fake' - } - self.controller = servers_v20.Controller(self.ext_mgr) - - no_mult_ext_mgr = extensions_v20.ExtensionManager() - no_mult_ext_mgr.extensions = { - 'os-volumes': 'fake', - 'os-block-device-mapping-v2-boot': 'fake' - } - self.no_mult_create_controller = servers_v20.Controller( - no_mult_ext_mgr) - - def instance_create(context, inst): - inst_type = flavors.get_flavor_by_flavor_id(3) - image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' - def_image_ref = 'http://localhost/images/%s' % image_uuid - self.instance_cache_num += 1 - instance = fake_instance.fake_db_instance(**{ - 'id': self.instance_cache_num, - 'display_name': inst['display_name'] or 'test', - 'uuid': inst['uuid'], - 'instance_type': inst_type, - 'access_ip_v4': '1.2.3.4', - 'access_ip_v6': 'fead::1234', - 'image_ref': inst.get('image_ref', def_image_ref), - 'user_id': 'fake', - 'project_id': 'fake', - 'reservation_id': inst['reservation_id'], - "created_at": datetime.datetime(2010, 10, 10, 12, 0, 0), - "updated_at": datetime.datetime(2010, 11, 11, 11, 0, 0), - "config_drive": None, - "progress": 0, - "fixed_ips": [], - "task_state": "", - "vm_state": "", - "root_device_name": inst.get('root_device_name', 'vda'), - "security_groups": inst['security_groups'], - }) - - self.instance_cache_by_id[instance['id']] = instance - self.instance_cache_by_uuid[instance['uuid']] = instance - return instance - - def instance_get(context, instance_id): - """Stub for compute/api create() pulling in instance after - scheduling - """ - return self.instance_cache_by_id[instance_id] - - fakes.stub_out_rate_limiting(self.stubs) - fakes.stub_out_key_pair_funcs(self.stubs) - fake.stub_out_image_service(self) - self.stub_out('nova.db.instance_create', instance_create) - self.stub_out('nova.db.instance_get', instance_get) - - def _check_multiple_create_extension_disabled(self, **kwargs): - self.assertEqual(kwargs['min_count'], 1) - self.assertEqual(kwargs['max_count'], 1) diff --git a/nova/tests/unit/api/openstack/compute/test_networks.py b/nova/tests/unit/api/openstack/compute/test_networks.py index a86b1c2f53..70cfbdecf5 100644 --- a/nova/tests/unit/api/openstack/compute/test_networks.py +++ b/nova/tests/unit/api/openstack/compute/test_networks.py @@ -25,13 +25,9 @@ import netaddr from oslo_config import cfg import webob -from nova.api.openstack.compute.legacy_v2.contrib import networks_associate -from nova.api.openstack.compute.legacy_v2.contrib import os_networks \ - as networks from nova.api.openstack.compute import networks as networks_v21 from nova.api.openstack.compute import networks_associate \ as networks_associate_v21 -from nova.api.openstack import extensions import nova.context from nova import exception from nova.network import manager @@ -311,23 +307,6 @@ class NetworkCreateExceptionsTestV21(test.TestCase): body=self.new_network) -class NetworkCreateExceptionsTestV2(NetworkCreateExceptionsTestV21): - validation_error = webob.exc.HTTPBadRequest - - def _setup(self): - ext_mgr = extensions.ExtensionManager() - ext_mgr.extensions = {'os-extended-networks': 'fake'} - self.req = fakes.HTTPRequest.blank('', use_admin_context=True) - - self.controller = networks.NetworkController( - self.PassthroughAPI(), ext_mgr) - - def test_network_create_with_both_cidr_and_cidr_v6(self): - # NOTE: v2.0 API cannot handle this case, so we need to just - # skip it on the API. - pass - - class NetworksTestV21(test.NoDBTestCase): validation_error = exception.ValidationError @@ -496,64 +475,6 @@ class NetworksTestV21(test.NoDBTestCase): self.req, uuid, {'disassociate': None}) -class NetworksTestV2(NetworksTestV21): - validation_error = webob.exc.HTTPUnprocessableEntity - - def _setup(self): - ext_mgr = extensions.ExtensionManager() - ext_mgr.extensions = {'os-extended-networks': 'fake'} - self.controller = networks.NetworkController(self.fake_network_api, - ext_mgr) - self.neutron_ctrl = networks.NetworkController( - neutron.API(skip_policy_check=False)) - self.req = fakes.HTTPRequest.blank('', - project_id=fakes.FAKE_PROJECT_ID, - use_admin_context=True) - - def _check_status(self, res, method, code): - self.assertEqual(res.status_int, code) - - def test_network_create_not_extended(self): - self.stubs.Set(self.controller, 'extended', False) - # NOTE(vish): Verify that new params are not passed through if - # extension is not enabled. - - def no_mtu(*args, **kwargs): - if 'mtu' in kwargs: - raise test.TestingException("mtu should not pass through") - return [{}] - - self.stubs.Set(self.controller.network_api, 'create', no_mtu) - self.new_network['network']['mtu'] = 9000 - self.controller.create(self.req, body=self.new_network) - - def test_network_add_network_with_invalid_id(self): - pass - - def test_network_add_network_with_extra_arg(self): - pass - - def test_disassociate_host_and_project_with_non_admin(self): - uuid = FAKE_NETWORKS[0]['uuid'] - self.assertRaises( - exception.AdminRequired, - self.controller._disassociate_host_and_project, - self.non_admin_req, uuid, {'disassociate': None}) - - def test_network_add_with_non_admin(self): - uuid = FAKE_NETWORKS[1]['uuid'] - self.assertRaises( - exception.AdminRequired, - self.controller.add, - self.non_admin_req, body={'id': uuid}) - - def test_network_create_with_non_admin(self): - self.assertRaises( - exception.AdminRequired, - self.controller.create, - self.non_admin_req, body=self.new_network) - - class NetworksAssociateTestV21(test.NoDBTestCase): def setUp(self): @@ -565,7 +486,7 @@ class NetworksAssociateTestV21(test.NoDBTestCase): self.admin_req = fakes.HTTPRequest.blank('', use_admin_context=True) def _setup(self): - self.controller = networks.NetworkController(self.fake_network_api) + self.controller = networks_v21.NetworkController(self.fake_network_api) self.associate_controller = networks_associate_v21\ .NetworkAssociateActionController(self.fake_network_api) self.neutron_assoc_ctrl = ( @@ -603,7 +524,11 @@ class NetworksAssociateTestV21(test.NoDBTestCase): res, self.associate_controller._disassociate_project_only, 202) self.assertIsNone(self.fake_network_api.networks[1]['project_id']) res = self.controller.delete(self.req, 1) - self.assertEqual(202, res.status_int) + + # NOTE: On v2.1 code, delete method doesn't return anything and + # the status code is decorated on wsgi_code of the method. + self.assertIsNone(res) + self.assertEqual(202, self.controller.delete.wsgi_code) def test_network_associate_project_delete_fail(self): uuid = FAKE_NETWORKS[0]['uuid'] @@ -661,50 +586,6 @@ class NetworksAssociateTestV21(test.NoDBTestCase): self.req, uuid, {'disassociate_host': None}) -class NetworksAssociateTestV2(NetworksAssociateTestV21): - - def _setup(self): - ext_mgr = extensions.ExtensionManager() - ext_mgr.extensions = {'os-extended-networks': 'fake'} - self.controller = networks.NetworkController( - self.fake_network_api, - ext_mgr) - self.associate_controller = networks_associate\ - .NetworkAssociateActionController(self.fake_network_api) - self.neutron_assoc_ctrl = ( - networks_associate.NetworkAssociateActionController( - neutron.API(skip_policy_check=False))) - self.req = fakes.HTTPRequest.blank('', use_admin_context=True) - self.non_admin_req = fakes.HTTPRequest.blank('') - - def _check_status(self, res, method, code): - self.assertEqual(res.status_int, code) - - def _test_network_neutron_associate_host_validation_failed(self, body): - pass - - def test_network_associate_host_with_non_admin(self): - uuid = FAKE_NETWORKS[1]['uuid'] - self.assertRaises( - exception.AdminRequired, - self.associate_controller._associate_host, - self.non_admin_req, uuid, body={'associate_host': "TestHost"}) - - def test_network_disassociate_host_only_with_non_admin(self): - uuid = FAKE_NETWORKS[0]['uuid'] - self.assertRaises( - exception.AdminRequired, - self.associate_controller._disassociate_host_only, - self.non_admin_req, uuid, {'disassociate_host': None}) - - def test_network_disassociate_project_only_with_non_admin(self): - uuid = FAKE_NETWORKS[0]['uuid'] - self.assertRaises( - exception.AdminRequired, - self.associate_controller._disassociate_project_only, - self.non_admin_req, uuid, {'disassociate_project': None}) - - class NetworksEnforcementV21(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/unit/api/openstack/compute/test_neutron_security_groups.py b/nova/tests/unit/api/openstack/compute/test_neutron_security_groups.py index 188851b335..bb12eb1812 100644 --- a/nova/tests/unit/api/openstack/compute/test_neutron_security_groups.py +++ b/nova/tests/unit/api/openstack/compute/test_neutron_security_groups.py @@ -23,7 +23,7 @@ from oslo_serialization import jsonutils from oslo_utils import encodeutils import webob -from nova.api.openstack.compute.legacy_v2.contrib import security_groups +from nova.api.openstack.compute import security_groups from nova import compute from nova import context import nova.db @@ -412,12 +412,6 @@ class TestNeutronSecurityGroupsV21( device_id=test_security_groups.FAKE_UUID1) -class TestNeutronSecurityGroupsV2(TestNeutronSecurityGroupsV21): - secgrp_ctl_cls = security_groups.SecurityGroupController - server_secgrp_ctl_cls = security_groups.ServerSecurityGroupController - secgrp_act_ctl_cls = security_groups.SecurityGroupActionController - - class TestNeutronSecurityGroupRulesTestCase(TestNeutronSecurityGroupsTestCase): def setUp(self): super(TestNeutronSecurityGroupRulesTestCase, self).setUp()