Fix with statement deprecation warnings
Refactor nested statements for multiple context managers to remove deprecation warnings. Additionally, refactor imports to use current exception libraries. JIRA:NCP-2066 Change-Id: Ie3953d109c13d03bf5028d54dc3f53d8d3649315
This commit is contained in:
parent
8d49a9ef6b
commit
391fd5bb7c
@ -76,9 +76,8 @@ class QuarkSubnetsPaginationFunctionalTest(BaseFunctionalTest):
|
||||
class QuarkPortsPaginationFunctionalTest(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_info):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
self.context.is_admin = True
|
||||
net = network_api.create_network(self.context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
|
@ -142,9 +142,8 @@ class QuarkTestReserveIPAdminWithPorts(BaseFunctionalTest):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
self.context.is_admin = True
|
||||
macrng_api.create_mac_address_range(self.context, mac)
|
||||
|
@ -19,6 +19,7 @@ import netaddr
|
||||
import contextlib
|
||||
|
||||
from neutron.common import exceptions as q_exc
|
||||
from neutron_lib import exceptions as n_exc
|
||||
|
||||
from quark.db import api as db_api
|
||||
import quark.plugin_modules.mac_address_ranges as macrng_api
|
||||
@ -53,9 +54,8 @@ class QuarkFindPortsSorted(BaseFunctionalTest):
|
||||
class QuarkCreatePortSatisfyIpam(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_v4_info, subnet_v6_info=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
self.context.is_admin = True
|
||||
net = network_api.create_network(self.context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
@ -130,16 +130,15 @@ class QuarkCreatePortSatisfyIpam(BaseFunctionalTest):
|
||||
with self._stubs(network, subnet_v4_info) as (
|
||||
net, sub_v4, sub_v6):
|
||||
ip = "192.168.1.50"
|
||||
with self.assertRaises(q_exc.IpAddressGenerationFailure):
|
||||
with self.assertRaises(n_exc.IpAddressGenerationFailure):
|
||||
port_api.create_port(self.context, _make_body_only_v4(ip))
|
||||
|
||||
|
||||
class QuarkCreatePortWithIpNotMandatory(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_v4_infos, subnet_v6_info=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
self.context.is_admin = True
|
||||
net = network_api.create_network(self.context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
@ -238,9 +237,8 @@ class QuarkCreatePortWithIpNotMandatory(BaseFunctionalTest):
|
||||
class QuarkCreatePortWithForbiddenMacRange(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_v4_infos, subnet_v6_info=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
self.context.is_admin = True
|
||||
net = network_api.create_network(self.context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC", do_not_use=True)}
|
||||
@ -353,9 +351,8 @@ class QuarkPortFixedIPOperations(BaseFunctionalTest):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_info):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
self.context.is_admin = True
|
||||
macrng_api.create_mac_address_range(self.context, mac)
|
||||
@ -516,9 +513,8 @@ class QuarkAdvancedServiceCreatePort(BaseFunctionalTest):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_info):
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
self.context.is_admin = True
|
||||
macrng_api.create_mac_address_range(self.context, mac)
|
||||
@ -549,7 +545,7 @@ class QuarkAdvancedServiceCreatePort(BaseFunctionalTest):
|
||||
'tenant_id': 'someoneelse'}}
|
||||
self.context.is_admin = True
|
||||
self.context.is_advsvc = False
|
||||
self.assertRaises(q_exc.NotAuthorized,
|
||||
self.assertRaises(n_exc.NotAuthorized,
|
||||
port_api.create_port, self.context, port_info)
|
||||
|
||||
def test_cant_create_port_without_admin(self):
|
||||
@ -562,5 +558,5 @@ class QuarkAdvancedServiceCreatePort(BaseFunctionalTest):
|
||||
# check, quark will first attempt to retrieve the network but
|
||||
# since networks are scoped by tenant when it is not an admin,
|
||||
# it will not be found
|
||||
self.assertRaises(q_exc.NetworkNotFound,
|
||||
self.assertRaises(n_exc.NetworkNotFound,
|
||||
port_api.create_port, self.context, port_info)
|
||||
|
@ -35,7 +35,7 @@ class QuarkCreateRoutes(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network, subnet, ip_policy):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(mock.patch("neutron.common.rpc.get_notifier")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"):
|
||||
net = network_api.create_network(self.context, network)
|
||||
subnet['subnet']['network_id'] = net['id']
|
||||
sub1 = subnet_api.create_subnet(self.context, subnet)
|
||||
|
@ -77,12 +77,10 @@ class SecurityGroupsAsyncUpdateTests(BaseFunctionalTest):
|
||||
cls = 'QuarkSGAsyncProcessClient'
|
||||
mod_path = 'quark.worker_plugins.sg_update_worker.%s' % cls
|
||||
job_path = 'quark.plugin_modules.jobs'
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"),
|
||||
mock.patch("%s.add_job_to_context" % job_path),
|
||||
mock.patch("%s.start_update" % mod_path)) as \
|
||||
(notifier, limit_check, addjob, update):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"), \
|
||||
mock.patch("%s.add_job_to_context" % job_path), \
|
||||
mock.patch("%s.start_update" % mod_path) as update:
|
||||
self.context.is_admin = True
|
||||
net = network_api.create_network(self.context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
|
@ -73,9 +73,8 @@ class QuarkSharedIPs(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_info, ports_info):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
net = network_api.create_network(self.admin_context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
macrng_api.create_mac_address_range(self.admin_context, mac)
|
||||
@ -481,8 +480,7 @@ class QuarkSharedIPsQuotaCheck(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_info, ports_info):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"):
|
||||
self.context.is_admin = True
|
||||
net = network_api.create_network(self.context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
@ -667,9 +665,8 @@ class QuarkTestSharedIpAddressesQuota(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_info, subnet_info, ports_info):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("neutron.quota.QUOTAS.limit_check"):
|
||||
net = network_api.create_network(self.admin_context, network_info)
|
||||
mac = {'mac_address_range': dict(cidr="AA:BB:CC")}
|
||||
macrng_api.create_mac_address_range(self.admin_context, mac)
|
||||
|
@ -62,7 +62,7 @@ class QuarkGetSubnetsFromPlugin(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network, subnet):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(mock.patch("neutron.common.rpc.get_notifier")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"):
|
||||
net = network_api.create_network(self.context, network)
|
||||
subnet['subnet']['network_id'] = net['id']
|
||||
sub1 = subnet_api.create_subnet(self.context, subnet)
|
||||
@ -93,7 +93,7 @@ class QuarkCreateSubnets(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network, subnet):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(mock.patch("neutron.common.rpc.get_notifier")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"):
|
||||
net = network_api.create_network(self.context, network)
|
||||
subnet['subnet']['network_id'] = net['id']
|
||||
sub1 = subnet_api.create_subnet(self.context, subnet)
|
||||
@ -227,7 +227,7 @@ class QuarkUpdateSubnets(BaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network, subnet):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(mock.patch("neutron.common.rpc.get_notifier")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"):
|
||||
net = network_api.create_network(self.context, network)
|
||||
subnet['subnet']['network_id'] = net['id']
|
||||
sub1 = subnet_api.create_subnet(self.context, subnet)
|
||||
|
@ -82,7 +82,7 @@ class TestQuarkIpamAllocateFromV6Subnet(QuarkIpamBaseFunctionalTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network, subnet, ip_policy):
|
||||
self.ipam = quark.ipam.QuarkIpamANY()
|
||||
with contextlib.nested(mock.patch("neutron.common.rpc.get_notifier")):
|
||||
with mock.patch("neutron.common.rpc.get_notifier"):
|
||||
net = network_api.create_network(self.context, network)
|
||||
subnet['subnet']['network_id'] = net['id']
|
||||
sub = subnet_api.create_subnet(self.context, subnet)
|
||||
|
@ -18,7 +18,7 @@ import contextlib
|
||||
import datetime
|
||||
import mock
|
||||
import netaddr
|
||||
from neutron.common import exceptions as ex
|
||||
from neutron_lib import exceptions as n_exc
|
||||
|
||||
from quark.billing import IP_ASSOC
|
||||
from quark.billing import IP_DISASSOC
|
||||
@ -36,18 +36,15 @@ class TestRemoveFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
flip_model = models.IPAddress()
|
||||
flip_model.update(flip)
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.floating_ip_find"),
|
||||
mock.patch("quark.db.api.floating_ip_disassociate_fixed_ip"),
|
||||
mock.patch("quark.db.api.port_disassociate_ip"),
|
||||
mock.patch("quark.db.api.ip_address_deallocate"),
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ip_address"),
|
||||
with mock.patch("quark.db.api.floating_ip_find") as flip_find, \
|
||||
mock.patch("quark.db.api.floating_ip_disassociate_fixed_ip"), \
|
||||
mock.patch("quark.db.api.port_disassociate_ip"), \
|
||||
mock.patch("quark.db.api.ip_address_deallocate"), \
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ip_address"), \
|
||||
mock.patch("quark.drivers.unicorn_driver.UnicornDriver"
|
||||
".remove_floating_ip"),
|
||||
mock.patch("quark.billing.notify"),
|
||||
mock.patch("quark.billing.build_payload")
|
||||
) as (flip_find, db_fixed_ip_disassoc, db_port_disassoc, db_dealloc,
|
||||
mock_dealloc, mock_remove_flip, notify, build_payload):
|
||||
".remove_floating_ip"), \
|
||||
mock.patch("quark.billing.notify"), \
|
||||
mock.patch("quark.billing.build_payload") as build_payload:
|
||||
flip_find.return_value = flip_model
|
||||
build_payload.return_value = {'respek': '4reelz'}
|
||||
yield
|
||||
@ -230,19 +227,18 @@ class TestCreateFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
addr.fixed_ips.append(fixed_ip)
|
||||
return addr
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.floating_ip_find"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
with mock.patch("quark.db.api.floating_ip_find") as flip_find, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.drivers.unicorn_driver.UnicornDriver"
|
||||
".register_floating_ip"),
|
||||
mock.patch("quark.db.api.port_associate_ip"),
|
||||
mock.patch("quark.db.api.floating_ip_associate_fixed_ip"),
|
||||
mock.patch("quark.billing.notify"),
|
||||
mock.patch("quark.billing.build_payload")
|
||||
) as (flip_find, net_find, port_find, alloc_ip, mock_reg_flip,
|
||||
port_assoc, fixed_ip_assoc, notify, build_payload):
|
||||
".register_floating_ip"), \
|
||||
mock.patch("quark.db.api.port_associate_ip") as port_assoc, \
|
||||
mock.patch("quark.db.api.floating_ip_associate_fixed_ip") as \
|
||||
fixed_ip_assoc, \
|
||||
mock.patch("quark.billing.notify"), \
|
||||
mock.patch("quark.billing.build_payload") as build_payload:
|
||||
flip_find.return_value = flip_model
|
||||
net_find.return_value = net_model
|
||||
port_find.return_value = port_model
|
||||
@ -348,14 +344,14 @@ class TestCreateFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
|
||||
def test_create_without_network_id_fails(self):
|
||||
with self._stubs():
|
||||
with self.assertRaises(ex.BadRequest):
|
||||
with self.assertRaises(n_exc.BadRequest):
|
||||
request = dict(port_id=2, floating_ip_address="10.0.0.1")
|
||||
self.plugin.create_floatingip(self.context,
|
||||
dict(floatingip=request))
|
||||
|
||||
def test_create_with_invalid_network_fails(self):
|
||||
with self._stubs():
|
||||
with self.assertRaises(ex.NetworkNotFound):
|
||||
with self.assertRaises(n_exc.NetworkNotFound):
|
||||
request = dict(floating_network_id=123,
|
||||
port_id=2, floating_ip_address="10.0.0.1")
|
||||
self.plugin.create_floatingip(self.context,
|
||||
@ -366,7 +362,7 @@ class TestCreateFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
ipam_strategy="ANY")
|
||||
|
||||
with self._stubs(network=network):
|
||||
with self.assertRaises(ex.PortNotFound):
|
||||
with self.assertRaises(n_exc.PortNotFound):
|
||||
request = dict(floating_network_id=network["id"],
|
||||
port_id=2, floating_ip_address="10.0.0.1")
|
||||
self.plugin.create_floatingip(self.context,
|
||||
@ -565,25 +561,24 @@ class TestUpdateFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
"""We don't want to notify from tests"""
|
||||
pass
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.floating_ip_find"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
with mock.patch("quark.db.api.floating_ip_find") as flip_find, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.drivers.unicorn_driver.UnicornDriver"
|
||||
".register_floating_ip"),
|
||||
".register_floating_ip"), \
|
||||
mock.patch("quark.drivers.unicorn_driver.UnicornDriver"
|
||||
".update_floating_ip"),
|
||||
".update_floating_ip"), \
|
||||
mock.patch("quark.drivers.unicorn_driver.UnicornDriver"
|
||||
".remove_floating_ip"),
|
||||
mock.patch("quark.db.api.port_associate_ip"),
|
||||
mock.patch("quark.db.api.port_disassociate_ip"),
|
||||
mock.patch("quark.db.api.floating_ip_associate_fixed_ip"),
|
||||
mock.patch("quark.db.api.floating_ip_disassociate_fixed_ip"),
|
||||
mock.patch("quark.billing.notify")
|
||||
) as (flip_find, net_find, subnet_find, port_find, reg_flip,
|
||||
update_flip, rem_flip, port_assoc, port_dessoc, flip_assoc,
|
||||
flip_dessoc, notify):
|
||||
".remove_floating_ip"), \
|
||||
mock.patch("quark.db.api.port_associate_ip") as port_assoc, \
|
||||
mock.patch("quark.db.api.port_disassociate_ip") as \
|
||||
port_dessoc, \
|
||||
mock.patch("quark.db.api.floating_ip_associate_fixed_ip") as \
|
||||
flip_assoc, \
|
||||
mock.patch("quark.db.api.floating_ip_disassociate_fixed_ip") \
|
||||
as flip_dessoc, \
|
||||
mock.patch("quark.billing.notify") as notify:
|
||||
flip_find.return_value = flip_model
|
||||
net_find.return_value = net_model
|
||||
subnet_find.return_value = subnet_model
|
||||
@ -698,7 +693,7 @@ class TestUpdateFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
address_readable=str(addr))
|
||||
|
||||
with self._stubs(flip=flip):
|
||||
with self.assertRaises(ex.PortNotFound):
|
||||
with self.assertRaises(n_exc.PortNotFound):
|
||||
content = dict(port_id="123")
|
||||
self.plugin.update_floatingip(self.context, flip["id"],
|
||||
dict(floatingip=content))
|
||||
@ -763,7 +758,7 @@ class TestUpdateFloatingIPs(test_quark_plugin.TestQuarkPlugin):
|
||||
|
||||
def test_update_with_missing_port_id_param_should_fail(self):
|
||||
with self._stubs():
|
||||
with self.assertRaises(ex.BadRequest):
|
||||
with self.assertRaises(n_exc.BadRequest):
|
||||
content = {}
|
||||
self.plugin.update_floatingip(self.context, "123",
|
||||
dict(floatingip=content))
|
||||
|
@ -69,18 +69,14 @@ class TestIpAddresses(test_quark_plugin.TestQuarkPlugin):
|
||||
def _alloc_ip(context, new_addr, net_id, port_m, *args, **kwargs):
|
||||
new_addr.extend([addr_model])
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch(
|
||||
"quark.plugin_modules.ip_addresses.ipam_driver"),
|
||||
mock.patch(
|
||||
"quark.plugin_modules.ip_addresses.db_api"
|
||||
".port_associate_ip"),
|
||||
mock.patch(
|
||||
"quark.plugin_modules.ip_addresses"
|
||||
".validate_and_fetch_segment")
|
||||
) as (net_f, port_find, mock_ipam, mock_port_associate_ip, validate):
|
||||
with mock.patch("quark.db.api.network_find"), \
|
||||
mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.plugin_modules.ip_addresses.ipam_driver") \
|
||||
as mock_ipam, \
|
||||
mock.patch("quark.plugin_modules.ip_addresses.db_api"
|
||||
".port_associate_ip") as mock_port_associate_ip, \
|
||||
mock.patch("quark.plugin_modules.ip_addresses"
|
||||
".validate_and_fetch_segment"):
|
||||
port_find.return_value = port_model
|
||||
mock_ipam.allocate_ip_address.side_effect = _alloc_ip
|
||||
mock_port_associate_ip.side_effect = _port_associate_stub
|
||||
@ -433,16 +429,16 @@ class TestQuarkUpdateIPAddress(test_quark_plugin.TestQuarkPlugin):
|
||||
addr_model.ports = port_models
|
||||
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.port_find" % db_mod),
|
||||
mock.patch("%s.ip_address_find" % db_mod),
|
||||
mock.patch("%s.port_associate_ip" % db_mod),
|
||||
mock.patch("%s.port_disassociate_ip" % db_mod),
|
||||
with mock.patch("%s.port_find" % db_mod) as port_find, \
|
||||
mock.patch("%s.ip_address_find" % db_mod) as ip_find, \
|
||||
mock.patch("%s.port_associate_ip" % db_mod) as \
|
||||
port_associate_ip, \
|
||||
mock.patch("%s.port_disassociate_ip" % db_mod) as \
|
||||
port_disassociate_ip, \
|
||||
mock.patch("quark.plugin_modules.ip_addresses"
|
||||
".validate_and_fetch_segment"),
|
||||
mock.patch("quark.plugin_modules.ip_addresses.ipam_driver")
|
||||
) as (port_find, ip_find, port_associate_ip,
|
||||
port_disassociate_ip, val, mock_ipam):
|
||||
".validate_and_fetch_segment"), \
|
||||
mock.patch("quark.plugin_modules.ip_addresses.ipam_driver") \
|
||||
as mock_ipam:
|
||||
port_find.return_value = port_models
|
||||
ip_find.return_value = addr_model
|
||||
port_associate_ip.side_effect = _port_associate_stub
|
||||
|
@ -81,12 +81,11 @@ class TestQuarkCreateIpPolicies(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, ip_policy, subnets=None, nets=None):
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.subnet_find" % db_mod),
|
||||
mock.patch("%s.network_find" % db_mod),
|
||||
mock.patch("%s.ip_policy_create" % db_mod),
|
||||
mock.patch("%s.route_find" % db_mod)
|
||||
) as (subnet_find, net_find, ip_policy_create, route_find):
|
||||
with mock.patch("%s.subnet_find" % db_mod) as subnet_find, \
|
||||
mock.patch("%s.network_find" % db_mod) as net_find, \
|
||||
mock.patch("%s.ip_policy_create" % db_mod) as \
|
||||
ip_policy_create, \
|
||||
mock.patch("%s.route_find" % db_mod) as route_find:
|
||||
subnet_find.return_value = subnets if subnets else None
|
||||
net_find.return_value = nets if nets else None
|
||||
ip_policy_create.return_value = ip_policy
|
||||
@ -297,12 +296,11 @@ class TestQuarkUpdateIpPolicies(test_quark_plugin.TestQuarkPlugin):
|
||||
if not networks:
|
||||
networks = []
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.ip_policy_find" % db_mod),
|
||||
mock.patch("%s.subnet_find" % db_mod),
|
||||
mock.patch("%s.network_find" % db_mod),
|
||||
mock.patch("%s.ip_policy_update" % db_mod),
|
||||
) as (ip_policy_find, subnet_find, network_find, ip_policy_update):
|
||||
with mock.patch("%s.ip_policy_find" % db_mod) as ip_policy_find, \
|
||||
mock.patch("%s.subnet_find" % db_mod) as subnet_find, \
|
||||
mock.patch("%s.network_find" % db_mod) as network_find, \
|
||||
mock.patch("%s.ip_policy_update" % db_mod) as \
|
||||
ip_policy_update:
|
||||
ip_policy_find.return_value = ip_policy
|
||||
subnet_find.return_value = subnets
|
||||
network_find.return_value = networks
|
||||
@ -440,10 +438,8 @@ class TestQuarkDeleteIpPolicies(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, ip_policy):
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.ip_policy_find" % db_mod),
|
||||
mock.patch("%s.ip_policy_delete" % db_mod),
|
||||
) as (ip_policy_find, ip_policy_delete):
|
||||
with mock.patch("%s.ip_policy_find" % db_mod) as ip_policy_find, \
|
||||
mock.patch("%s.ip_policy_delete" % db_mod) as ip_policy_delete:
|
||||
ip_policy_find.return_value = ip_policy
|
||||
yield ip_policy_find, ip_policy_delete
|
||||
|
||||
@ -473,12 +469,10 @@ class TestQuarkUpdatePolicySubnetWithRoutes(test_quark_plugin.TestQuarkPlugin):
|
||||
def _stubs(self, ip_policy, subnets=None, routes=None):
|
||||
subnets = subnets or []
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.ip_policy_find" % db_mod),
|
||||
mock.patch("%s.subnet_find" % db_mod),
|
||||
mock.patch("%s.route_find" % db_mod),
|
||||
mock.patch("%s.ip_policy_update" % db_mod),
|
||||
) as (ip_policy_find, subnet_find, route_find, ip_policy_update):
|
||||
with mock.patch("%s.ip_policy_find" % db_mod) as ip_policy_find, \
|
||||
mock.patch("%s.subnet_find" % db_mod) as subnet_find, \
|
||||
mock.patch("%s.route_find" % db_mod) as route_find, \
|
||||
mock.patch("%s.ip_policy_update" % db_mod) as ip_policy_update:
|
||||
ip_policy_find.return_value = ip_policy
|
||||
subnet_find.return_value = subnets
|
||||
route_find.return_value = routes
|
||||
|
@ -144,10 +144,9 @@ class TestQuarkDeleteMacAddressRanges(test_quark_plugin.TestQuarkPlugin):
|
||||
db_mod = "quark.db.api"
|
||||
old_context = self.context
|
||||
self.context = self.context.elevated()
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.mac_address_range_find" % db_mod),
|
||||
mock.patch("%s.mac_address_range_delete" % db_mod),
|
||||
) as (mar_find, mar_delete):
|
||||
with mock.patch("%s.mac_address_range_find" % db_mod) as mar_find, \
|
||||
mock.patch("%s.mac_address_range_delete" % db_mod) as \
|
||||
mar_delete:
|
||||
mar_find.return_value = mac_range
|
||||
yield mar_delete
|
||||
self.context = old_context
|
||||
|
@ -199,10 +199,8 @@ class TestQuarkUpdateNetwork(test_quark_plugin.TestQuarkPlugin):
|
||||
net_mod = net.copy()
|
||||
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.network_find" % db_mod),
|
||||
mock.patch("%s.network_update" % db_mod)
|
||||
) as (net_find, net_update):
|
||||
with mock.patch("%s.network_find" % db_mod) as net_find, \
|
||||
mock.patch("%s.network_update" % db_mod) as net_update:
|
||||
net_find.return_value = net_mod
|
||||
net_update.return_value = net_mod
|
||||
yield net_update
|
||||
@ -266,14 +264,12 @@ class TestQuarkDeleteNetwork(test_quark_plugin.TestQuarkPlugin):
|
||||
|
||||
db_mod = "quark.db.api"
|
||||
strategy_prefix = "quark.network_strategy.JSONStrategy"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.network_find" % db_mod),
|
||||
mock.patch("%s.network_delete" % db_mod),
|
||||
mock.patch("quark.drivers.base.BaseDriver.delete_network"),
|
||||
mock.patch("%s.subnet_delete" % db_mod),
|
||||
mock.patch("%s.is_provider_network" % strategy_prefix)
|
||||
) as (net_find, net_delete, driver_net_delete, subnet_del,
|
||||
is_provider_network):
|
||||
with mock.patch("%s.network_find" % db_mod) as net_find, \
|
||||
mock.patch("%s.network_delete" % db_mod) as net_delete, \
|
||||
mock.patch("quark.drivers.base.BaseDriver.delete_network"), \
|
||||
mock.patch("%s.subnet_delete" % db_mod), \
|
||||
mock.patch("%s.is_provider_network" % strategy_prefix) as \
|
||||
is_provider_network:
|
||||
net_find.return_value = net_mod
|
||||
is_provider_network.return_value = True
|
||||
yield net_delete
|
||||
@ -341,12 +337,10 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
|
||||
found_net = models.Network()
|
||||
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.network_create" % db_mod),
|
||||
mock.patch("%s.subnet_create" % db_mod),
|
||||
mock.patch("quark.drivers.base.BaseDriver.create_network"),
|
||||
mock.patch("%s.network_find" % db_mod)
|
||||
) as (net_create, sub_create, driver_net_create, net_find):
|
||||
with mock.patch("%s.network_create" % db_mod) as net_create, \
|
||||
mock.patch("%s.subnet_create" % db_mod) as sub_create, \
|
||||
mock.patch("quark.drivers.base.BaseDriver.create_network"), \
|
||||
mock.patch("%s.network_find" % db_mod) as net_find:
|
||||
net_create.return_value = net_mod
|
||||
sub_create.return_value = subnet_mod
|
||||
net_find.return_value = found_net
|
||||
|
@ -57,9 +57,7 @@ class TestQuarkGetPorts(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.ip_addresses = addr_models
|
||||
port_models = port_model
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find")
|
||||
) as (port_find,):
|
||||
with mock.patch("quark.db.api.port_find") as port_find:
|
||||
port_find.return_value = port_models
|
||||
yield
|
||||
|
||||
@ -237,9 +235,7 @@ class TestQuarkGetPortsProviderSubnetIds(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model, addr_model)
|
||||
port_models = port_model
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find")
|
||||
) as (port_find,):
|
||||
with mock.patch("quark.db.api.port_find") as port_find:
|
||||
port_find.return_value = port_models
|
||||
yield
|
||||
|
||||
@ -308,9 +304,8 @@ class TestQuarkGetPortsByIPAddress(test_quark_plugin.TestQuarkPlugin):
|
||||
ip_mod.ports = [port_model]
|
||||
addr_models.append(ip_mod)
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find_by_ip_address")
|
||||
) as (port_find_by_addr,):
|
||||
with mock.patch("quark.db.api.port_find_by_ip_address") as \
|
||||
port_find_by_addr:
|
||||
port_find_by_addr.return_value = addr_models
|
||||
yield
|
||||
|
||||
@ -354,15 +349,14 @@ class TestQuarkCreatePortFailure(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.update(port)
|
||||
port_models = port_model
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address"),
|
||||
mock.patch("quark.db.api.port_count_all"),
|
||||
) as (port_create, net_find, port_find, alloc_ip, alloc_mac,
|
||||
port_count):
|
||||
with mock.patch("quark.db.api.port_create") as port_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address") as \
|
||||
alloc_mac, \
|
||||
mock.patch("quark.db.api.port_count_all") as port_count:
|
||||
port_create.return_value = port_models
|
||||
net_find.return_value = network
|
||||
port_find.return_value = models.Port()
|
||||
@ -412,15 +406,12 @@ class TestQuarkCreatePortRM9305(test_quark_plugin.TestQuarkPlugin):
|
||||
port_models = port_model
|
||||
db_mod = "quark.db.api"
|
||||
ipam = "quark.ipam.QuarkIpam"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.port_create" % db_mod),
|
||||
mock.patch("%s.network_find" % db_mod),
|
||||
mock.patch("%s.port_find" % db_mod),
|
||||
mock.patch("%s.allocate_ip_address" % ipam),
|
||||
mock.patch("%s.allocate_mac_address" % ipam),
|
||||
mock.patch("%s.port_count_all" % db_mod),
|
||||
) as (port_create, net_find, port_find, alloc_ip, alloc_mac,
|
||||
port_count):
|
||||
with mock.patch("%s.port_create" % db_mod) as port_create, \
|
||||
mock.patch("%s.network_find" % db_mod) as net_find, \
|
||||
mock.patch("%s.port_find" % db_mod) as port_find, \
|
||||
mock.patch("%s.allocate_ip_address" % ipam) as alloc_ip, \
|
||||
mock.patch("%s.allocate_mac_address" % ipam) as alloc_mac, \
|
||||
mock.patch("%s.port_count_all" % db_mod) as port_count:
|
||||
port_create.return_value = port_models
|
||||
net_find.return_value = network
|
||||
port_find.return_value = None
|
||||
@ -515,16 +506,16 @@ class TestQuarkCreatePortsSameDevBadRequest(test_quark_plugin.TestQuarkPlugin):
|
||||
new_ips.extend([ip_mod])
|
||||
return mock.DEFAULT
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address"),
|
||||
mock.patch("quark.db.api.port_count_all"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
) as (port_create, net_find, alloc_ip, alloc_mac, port_count,
|
||||
limit_check, subnet_find):
|
||||
with mock.patch("quark.db.api.port_create") as port_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address") as \
|
||||
alloc_mac, \
|
||||
mock.patch("quark.db.api.port_count_all") as port_count, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check") as \
|
||||
limit_check, \
|
||||
mock.patch("quark.db.api.subnet_find") as subnet_find:
|
||||
port_create.side_effect = _create_db_port
|
||||
net_find.return_value = network
|
||||
alloc_ip.side_effect = _alloc_ip
|
||||
@ -741,15 +732,15 @@ class TestQuarkPortCreateQuota(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.update(port)
|
||||
port_models = port_model
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address"),
|
||||
mock.patch("quark.db.api.port_count_all"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (port_create, net_find, alloc_ip, alloc_mac, port_count,
|
||||
limit_check):
|
||||
with mock.patch("quark.db.api.port_create") as port_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address") as \
|
||||
alloc_mac, \
|
||||
mock.patch("quark.db.api.port_count_all") as port_count, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check") as \
|
||||
limit_check:
|
||||
port_create.return_value = port_models
|
||||
net_find.return_value = network
|
||||
alloc_ip.return_value = addr
|
||||
@ -804,12 +795,12 @@ class TestQuarkUpdatePort(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.network = net_model
|
||||
port_model.update(port)
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.db.api.port_update"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port"),
|
||||
) as (port_find, port_update, alloc_ip, dealloc_ip):
|
||||
with mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.db.api.port_update") as port_update, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port") as \
|
||||
dealloc_ip:
|
||||
port_find.return_value = port_model
|
||||
port_update.return_value = port_model
|
||||
if new_ips:
|
||||
@ -931,18 +922,18 @@ class TestQuarkUpdatePortSecurityGroups(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.update(port)
|
||||
port_model["security_groups"].append(sg_mod)
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.db.api.port_update"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"),
|
||||
with mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.db.api.port_update") as port_update, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port") as \
|
||||
dealloc_ip, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"), \
|
||||
mock.patch("quark.plugin_modules.ports.STRATEGY"
|
||||
".is_provider_network"),
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.drivers.base.BaseDriver.update_port")
|
||||
) as (port_find, port_update, alloc_ip, dealloc_ip, limit_check,
|
||||
net_strat, sg_find, driver_port_update):
|
||||
".is_provider_network") as net_strat, \
|
||||
mock.patch("quark.db.api.security_group_find") as sg_find, \
|
||||
mock.patch("quark.drivers.base.BaseDriver.update_port") as \
|
||||
driver_port_update:
|
||||
port_find.return_value = port_model
|
||||
|
||||
def _port_update(context, port_db, **kwargs):
|
||||
@ -1033,12 +1024,11 @@ class TestQuarkUpdatePortSetsIps(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model = models.Port()
|
||||
port_model['network'] = net_model
|
||||
port_model.update(port)
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.db.api.port_update"),
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (port_find, port_update, dealloc_ip, limit_check):
|
||||
with mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.db.api.port_update") as port_update, \
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port") as \
|
||||
dealloc_ip, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"):
|
||||
port_find.return_value = port_model
|
||||
port_update.return_value = port_model
|
||||
alloc_ip = mock.patch("quark.ipam.QuarkIpam.allocate_ip_address",
|
||||
@ -1080,13 +1070,13 @@ class TestQuarkCreatePortOnSharedNetworks(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.update(port)
|
||||
port_models = port_model
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (port_create, net_find, alloc_ip, alloc_mac, limit_check):
|
||||
with mock.patch("quark.db.api.port_create") as port_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address") as \
|
||||
alloc_mac, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"):
|
||||
port_create.return_value = port_models
|
||||
net_find.return_value = network
|
||||
alloc_ip.return_value = addr
|
||||
@ -1145,14 +1135,14 @@ class TestQuarkDeletePort(test_quark_plugin.TestQuarkPlugin):
|
||||
port_model.network = net_model
|
||||
port_models = port_model
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port"),
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_mac_address"),
|
||||
mock.patch("quark.db.api.port_delete"),
|
||||
mock.patch("quark.drivers.base.BaseDriver.delete_port")
|
||||
) as (port_find, dealloc_ip, dealloc_mac, db_port_del,
|
||||
driver_port_del):
|
||||
with mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port") as \
|
||||
dealloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_mac_address") as \
|
||||
dealloc_mac, \
|
||||
mock.patch("quark.db.api.port_delete") as db_port_del, \
|
||||
mock.patch("quark.drivers.base.BaseDriver.delete_port") as \
|
||||
driver_port_del:
|
||||
port_find.return_value = port_models
|
||||
dealloc_ip.return_value = addr
|
||||
dealloc_mac.return_value = mac
|
||||
@ -1318,25 +1308,24 @@ class TestPortDriverSelection(test_quark_plugin.TestQuarkPlugin):
|
||||
bar_ipam.allocate_mac_address.return_value = mac
|
||||
ipam = {"FOO": foo_ipam, "BAR": bar_ipam}
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("oslo_utils.uuidutils.generate_uuid"),
|
||||
mock.patch("quark.plugin_views._make_port_dict"),
|
||||
mock.patch("quark.db.api.port_count_all"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"),
|
||||
with mock.patch("quark.db.api.port_create") as port_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("oslo_utils.uuidutils.generate_uuid") as gen_uuid, \
|
||||
mock.patch("quark.plugin_views._make_port_dict"), \
|
||||
mock.patch("quark.db.api.port_count_all") as port_count, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"), \
|
||||
mock.patch("quark.plugin_modules.ports.registry."
|
||||
"DRIVER_REGISTRY.drivers",
|
||||
new_callable=mock.PropertyMock(return_value=drivers)),
|
||||
new_callable=mock.PropertyMock(
|
||||
return_value=drivers)), \
|
||||
mock.patch("quark.plugin_modules.ports.registry."
|
||||
"DRIVER_REGISTRY.port_driver_compat_map",
|
||||
new_callable=mock.PropertyMock(
|
||||
return_value=compat_map)),
|
||||
return_value=compat_map)), \
|
||||
mock.patch("quark.plugin_modules.ports.ipam."
|
||||
"IPAM_REGISTRY.strategies",
|
||||
new_callable=mock.PropertyMock(return_value=ipam))
|
||||
) as (port_create, net_find, gen_uuid, make_port,
|
||||
port_count, limit_check, _, _, _):
|
||||
new_callable=mock.PropertyMock(
|
||||
return_value=ipam)):
|
||||
net_find.return_value = network
|
||||
gen_uuid.return_value = 1
|
||||
port_count.return_value = 0
|
||||
@ -1770,17 +1759,16 @@ class TestQuarkPortCreateFiltering(test_quark_plugin.TestQuarkPlugin):
|
||||
network["network_plugin"] = "BASE"
|
||||
network["ipam_strategy"] = "ANY"
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address"),
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address"),
|
||||
mock.patch("oslo_utils.uuidutils.generate_uuid"),
|
||||
mock.patch("quark.plugin_views._make_port_dict"),
|
||||
mock.patch("quark.db.api.port_count_all"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (port_create, net_find, alloc_ip, alloc_mac, gen_uuid, make_port,
|
||||
port_count, limit_check):
|
||||
with mock.patch("quark.db.api.port_create") as port_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_ip_address") as \
|
||||
alloc_ip, \
|
||||
mock.patch("quark.ipam.QuarkIpam.allocate_mac_address") as \
|
||||
alloc_mac, \
|
||||
mock.patch("oslo_utils.uuidutils.generate_uuid") as gen_uuid, \
|
||||
mock.patch("quark.plugin_views._make_port_dict"), \
|
||||
mock.patch("quark.db.api.port_count_all") as port_count, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"):
|
||||
net_find.return_value = network
|
||||
alloc_ip.return_value = addr
|
||||
alloc_mac.return_value = mac
|
||||
@ -1870,13 +1858,12 @@ class TestQuarkPortCreateFiltering(test_quark_plugin.TestQuarkPlugin):
|
||||
class TestQuarkPortUpdateFiltering(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.port_find"),
|
||||
mock.patch("quark.db.api.port_update"),
|
||||
mock.patch("quark.drivers.registry.DriverRegistry.get_driver"),
|
||||
mock.patch("quark.plugin_views._make_port_dict"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (port_find, port_update, get_driver, make_port, limit_check):
|
||||
with mock.patch("quark.db.api.port_find") as port_find, \
|
||||
mock.patch("quark.db.api.port_update") as port_update, \
|
||||
mock.patch("quark.drivers.registry."
|
||||
"DriverRegistry.get_driver"), \
|
||||
mock.patch("quark.plugin_views._make_port_dict"), \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"):
|
||||
yield port_find, port_update
|
||||
|
||||
def test_update_port_attribute_filtering(self):
|
||||
@ -1930,15 +1917,12 @@ class TestQuarkPortCreateAsAdvancedService(test_quark_plugin.TestQuarkPlugin):
|
||||
port_models = port_model
|
||||
db_mod = "quark.db.api"
|
||||
ipam = "quark.ipam.QuarkIpam"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.port_create" % db_mod),
|
||||
mock.patch("%s.network_find" % db_mod),
|
||||
mock.patch("%s.port_find" % db_mod),
|
||||
mock.patch("%s.allocate_ip_address" % ipam),
|
||||
mock.patch("%s.allocate_mac_address" % ipam),
|
||||
mock.patch("%s.port_count_all" % db_mod),
|
||||
) as (port_create, net_find, port_find, alloc_ip, alloc_mac,
|
||||
port_count):
|
||||
with mock.patch("%s.port_create" % db_mod) as port_create, \
|
||||
mock.patch("%s.network_find" % db_mod) as net_find, \
|
||||
mock.patch("%s.port_find" % db_mod) as port_find, \
|
||||
mock.patch("%s.allocate_ip_address" % ipam) as alloc_ip, \
|
||||
mock.patch("%s.allocate_mac_address" % ipam) as alloc_mac, \
|
||||
mock.patch("%s.port_count_all" % db_mod) as port_count:
|
||||
port_create.return_value = port_models
|
||||
net_find.return_value = network
|
||||
port_find.return_value = None
|
||||
|
@ -57,17 +57,16 @@ class TestQuarkCreateRoutes(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, create_route, find_routes, subnet):
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.route_create" % db_mod),
|
||||
mock.patch("%s.route_find" % db_mod),
|
||||
mock.patch("%s.subnet_find" % db_mod),
|
||||
# QuotaEngine.limit_check must be mocked:
|
||||
# This module can't run independently otherwise, as the Quota
|
||||
# model isn't defined in this test unit, and no clean way to
|
||||
# use a model such that it would be defined. In other words,
|
||||
# running the other tests still has side-effects, which should
|
||||
# be investigated and cleaned up later.
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (route_create, route_find, subnet_find, quota):
|
||||
with mock.patch("%s.route_create" % db_mod) as route_create, \
|
||||
mock.patch("%s.route_find" % db_mod) as route_find, \
|
||||
mock.patch("%s.subnet_find" % db_mod) as subnet_find, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"):
|
||||
route_create.return_value = create_route
|
||||
route_find.return_value = find_routes
|
||||
subnet_find.return_value = subnet
|
||||
@ -117,10 +116,8 @@ class TestQuarkDeleteRoutes(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, route):
|
||||
db_mod = "quark.db.api"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s.route_delete" % db_mod),
|
||||
mock.patch("%s.route_find" % db_mod),
|
||||
) as (route_delete, route_find):
|
||||
with mock.patch("%s.route_delete" % db_mod) as route_delete, \
|
||||
mock.patch("%s.route_find" % db_mod) as route_find:
|
||||
route_find.return_value = route
|
||||
yield route_delete, route_find
|
||||
|
||||
|
@ -152,10 +152,8 @@ class TestQuarkUpdateSecurityGroup(test_quark_plugin.TestQuarkPlugin):
|
||||
updated_group = group.copy()
|
||||
updated_group["name"] = "bar"
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.db.api.security_group_update"),
|
||||
) as (db_find, db_update):
|
||||
with mock.patch("quark.db.api.security_group_find") as db_find, \
|
||||
mock.patch("quark.db.api.security_group_update") as db_update:
|
||||
db_find.return_value = group
|
||||
db_update.return_value = updated_group
|
||||
update = dict(security_group=dict(name="bar"))
|
||||
@ -179,10 +177,8 @@ class TestQuarkCreateSecurityGroup(test_quark_plugin.TestQuarkPlugin):
|
||||
dbgroup = models.SecurityGroup()
|
||||
dbgroup.update(security_group)
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.db.api.security_group_create"),
|
||||
) as (db_find, db_create):
|
||||
with mock.patch("quark.db.api.security_group_find") as db_find, \
|
||||
mock.patch("quark.db.api.security_group_create") as db_create:
|
||||
db_find.return_value.count.return_value = other
|
||||
db_create.return_value = dbgroup
|
||||
yield db_create
|
||||
@ -234,10 +230,9 @@ class TestQuarkDeleteSecurityGroup(test_quark_plugin.TestQuarkPlugin):
|
||||
dbgroup = models.SecurityGroup()
|
||||
dbgroup.update(security_group)
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.db.api.security_group_delete"),
|
||||
) as (group_find, db_group_delete):
|
||||
with mock.patch("quark.db.api.security_group_find") as group_find, \
|
||||
mock.patch("quark.db.api.security_group_delete") as \
|
||||
db_group_delete:
|
||||
group_find.return_value = dbgroup
|
||||
db_group_delete.return_value = dbgroup
|
||||
yield db_group_delete
|
||||
@ -303,13 +298,15 @@ class TestQuarkCreateSecurityGroupRule(test_quark_plugin.TestQuarkPlugin):
|
||||
dbrule["group_id"] = rule['security_group_id']
|
||||
return dbrule
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.db.api.security_group_rule_find"),
|
||||
mock.patch("quark.db.api.security_group_rule_create"),
|
||||
mock.patch("quark.protocols.human_readable_protocol"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check")
|
||||
) as (group_find, rule_find, rule_create, human, limit_check):
|
||||
with mock.patch("quark.db.api.security_group_find") as group_find, \
|
||||
mock.patch("quark.db.api.security_group_rule_find") as \
|
||||
rule_find, \
|
||||
mock.patch("quark.db.api.security_group_rule_create") as \
|
||||
rule_create, \
|
||||
mock.patch("quark.protocols.human_readable_protocol") as \
|
||||
human, \
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check") as \
|
||||
limit_check:
|
||||
group_find.return_value = dbgroup
|
||||
rule_find.return_value.count.return_value = group.get(
|
||||
'port_rules', None) if group else 0
|
||||
@ -435,11 +432,11 @@ class TestQuarkDeleteSecurityGroupRule(test_quark_plugin.TestQuarkPlugin):
|
||||
dbrule = models.SecurityGroupRule()
|
||||
dbrule.update(dict(rule, group=dbgroup))
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.db.api.security_group_rule_find"),
|
||||
mock.patch("quark.db.api.security_group_rule_delete"),
|
||||
) as (group_find, rule_find, db_group_delete):
|
||||
with mock.patch("quark.db.api.security_group_find") as group_find, \
|
||||
mock.patch("quark.db.api.security_group_rule_find") as \
|
||||
rule_find, \
|
||||
mock.patch("quark.db.api.security_group_rule_delete") as \
|
||||
db_group_delete:
|
||||
group_find.return_value = dbgroup
|
||||
rule_find.return_value = dbrule
|
||||
yield db_group_delete
|
||||
@ -545,16 +542,16 @@ class TestQuarkProtocolHandling(test_quark_plugin.TestQuarkPlugin):
|
||||
class TestSecurityGroupExceptions(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, finds_rule=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.db.api.security_group_rule_find"),
|
||||
with mock.patch("quark.db.api.security_group_find") as group_find, \
|
||||
mock.patch("quark.db.api.security_group_rule_find") as \
|
||||
rule_find, \
|
||||
mock.patch("neutron.extensions.securitygroup."
|
||||
"SecurityGroupNotFound.__init__"),
|
||||
"SecurityGroupNotFound.__init__") as group_exc, \
|
||||
mock.patch("neutron.extensions.securitygroup."
|
||||
"SecurityGroupRuleNotFound.__init__"),
|
||||
"SecurityGroupRuleNotFound.__init__") as \
|
||||
rule_exc, \
|
||||
mock.patch("quark.plugin_modules.security_groups."
|
||||
"_validate_security_group_rule")
|
||||
) as (group_find, rule_find, group_exc, rule_exc, validate):
|
||||
"_validate_security_group_rule"):
|
||||
group_find.return_value = None
|
||||
rule_find.return_value = None
|
||||
if finds_rule:
|
||||
|
@ -181,12 +181,10 @@ class TestQuarkCreateSubnetOverlapping(test_quark_plugin.TestQuarkPlugin):
|
||||
subnet_models.append(s)
|
||||
network = models.Network()
|
||||
network.update(dict(id=1, subnets=subnet_models))
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_create"),
|
||||
mock.patch("neutron.common.rpc.get_notifier")
|
||||
) as (net_find, subnet_find, subnet_create, get_notifier):
|
||||
with mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_create") as subnet_create, \
|
||||
mock.patch("neutron.common.rpc.get_notifier"):
|
||||
net_find.return_value = network
|
||||
subnet_find.return_value = subnet_models
|
||||
subnet_create.return_value = models.Subnet(
|
||||
@ -239,14 +237,11 @@ class TestQuarkCreateSubnetAllocationPools(test_quark_plugin.TestQuarkPlugin):
|
||||
return mock.patch.object(models.Subnet, "allocation_pools")
|
||||
return mock.MagicMock()
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_create"),
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
_allocation_pools_mock(),
|
||||
) as (net_find, subnet_find, subnet_create, get_notifier,
|
||||
alloc_pools_method):
|
||||
with mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_create") as subnet_create, \
|
||||
mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
_allocation_pools_mock() as alloc_pools_method:
|
||||
net_find.return_value = s["network"]
|
||||
subnet_find.return_value = []
|
||||
subnet_create.return_value = s
|
||||
@ -401,19 +396,18 @@ class TestQuarkCreateSubnet(test_quark_plugin.TestQuarkPlugin):
|
||||
if allocation_pools is not None:
|
||||
return mock.patch.object(models.Subnet, "allocation_pools")
|
||||
return mock.MagicMock()
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.dns_create"),
|
||||
mock.patch("quark.db.api.route_create"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
_allocation_pools_mock(),
|
||||
mock.patch("sqlalchemy.orm.session.SessionTransaction.commit"),
|
||||
mock.patch(
|
||||
"sqlalchemy.orm.unitofwork.UOWTransaction.register_object")
|
||||
) as (subnet_create, net_find, dns_create, route_create, subnet_find,
|
||||
get_notifier, alloc_pools_method, commit, register_object):
|
||||
with mock.patch("quark.db.api.subnet_create") as subnet_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.dns_create") as dns_create, \
|
||||
mock.patch("quark.db.api.route_create") as route_create, \
|
||||
mock.patch("quark.db.api.subnet_find"), \
|
||||
mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
_allocation_pools_mock() as alloc_pools_method, \
|
||||
mock.patch("sqlalchemy.orm.session."
|
||||
"SessionTransaction.commit"), \
|
||||
mock.patch("sqlalchemy.orm.unitofwork."
|
||||
"UOWTransaction.register_object") as \
|
||||
register_object:
|
||||
subnet_create.return_value = subnet_mod
|
||||
net_find.return_value = network
|
||||
route_create.side_effect = route_models
|
||||
@ -857,16 +851,13 @@ class TestQuarkAllocationPoolCache(test_quark_plugin.TestQuarkPlugin):
|
||||
gateway=r["nexthop"],
|
||||
subnet_id=subnet_mod["id"])
|
||||
for r in host_routes]
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_update"),
|
||||
mock.patch("quark.db.api.dns_create"),
|
||||
mock.patch("quark.db.api.route_find"),
|
||||
mock.patch("quark.db.api.route_update"),
|
||||
mock.patch("quark.db.api.route_create"),
|
||||
mock.patch("sqlalchemy.orm.session.SessionTransaction.commit")
|
||||
) as (subnet_find, subnet_update, dns_create, route_find,
|
||||
route_update, route_create, commit):
|
||||
with mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update") as subnet_update, \
|
||||
mock.patch("quark.db.api.dns_create"), \
|
||||
mock.patch("quark.db.api.route_find") as route_find, \
|
||||
mock.patch("quark.db.api.route_update"), \
|
||||
mock.patch("quark.db.api.route_create"), \
|
||||
mock.patch("sqlalchemy.orm.session.SessionTransaction.commit"):
|
||||
subnet_find.return_value = subnet_mod
|
||||
if has_subnet:
|
||||
route_find.return_value = (subnet_mod["routes"][0] if
|
||||
@ -963,19 +954,17 @@ class TestQuarkUpdateSubnet(test_quark_plugin.TestQuarkPlugin):
|
||||
gateway=r["nexthop"],
|
||||
subnet_id=subnet_mod["id"])
|
||||
for r in host_routes]
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_update"),
|
||||
mock.patch("quark.db.api.dns_create"),
|
||||
mock.patch("quark.db.api.route_find"),
|
||||
mock.patch("quark.db.api.route_update"),
|
||||
mock.patch("quark.db.api.route_create"),
|
||||
mock.patch("sqlalchemy.orm.session.SessionTransaction.commit"),
|
||||
mock.patch(
|
||||
"sqlalchemy.orm.unitofwork.UOWTransaction.register_object")
|
||||
) as (subnet_find, subnet_update,
|
||||
dns_create,
|
||||
route_find, route_update, route_create, commit, register_object):
|
||||
with mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update") as subnet_update, \
|
||||
mock.patch("quark.db.api.dns_create") as dns_create, \
|
||||
mock.patch("quark.db.api.route_find") as route_find, \
|
||||
mock.patch("quark.db.api.route_update") as route_update, \
|
||||
mock.patch("quark.db.api.route_create") as route_create, \
|
||||
mock.patch("sqlalchemy.orm.session."
|
||||
"SessionTransaction.commit"), \
|
||||
mock.patch("sqlalchemy.orm.unitofwork."
|
||||
"UOWTransaction.register_object") as \
|
||||
register_object:
|
||||
subnet_find.return_value = subnet_mod
|
||||
if has_subnet:
|
||||
route_find.return_value = (subnet_mod["routes"][0] if
|
||||
@ -1216,12 +1205,11 @@ class TestQuarkDeleteSubnet(test_quark_plugin.TestQuarkPlugin):
|
||||
ip_mods.append(ip_mod)
|
||||
|
||||
strategy_prefix = "quark.network_strategy.JSONStrategy"
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_delete"),
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("%s.is_provider_network" % strategy_prefix)
|
||||
) as (sub_find, sub_delete, get_notifier, is_provider_network):
|
||||
with mock.patch("quark.db.api.subnet_find") as sub_find, \
|
||||
mock.patch("quark.db.api.subnet_delete") as sub_delete, \
|
||||
mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("%s.is_provider_network" % strategy_prefix) as \
|
||||
is_provider_network:
|
||||
if subnet_mod:
|
||||
subnet_mod.allocated_ips = ip_mods
|
||||
sub_find.return_value = subnet_mod
|
||||
@ -1288,17 +1276,16 @@ class TestSubnetsQuotas(test_quark_plugin.TestQuarkPlugin):
|
||||
s["_allocation_pool_cache"] = None
|
||||
subnet = models.Subnet(**s)
|
||||
subnets.append(subnet)
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.plugin_modules.subnets.get_subnets"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.subnet_create"),
|
||||
mock.patch("quark.db.api.subnet_delete"),
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("oslo_utils.timeutils.utcnow"),
|
||||
mock.patch("quark.plugin_modules.subnets._validate_subnet_cidr")
|
||||
) as (get_subnets, sub_find, net_find, sub_create, sub_del, notify,
|
||||
time_func, sub_validate):
|
||||
with mock.patch("quark.plugin_modules.subnets.get_subnets") as \
|
||||
get_subnets, \
|
||||
mock.patch("quark.db.api.subnet_find") as sub_find, \
|
||||
mock.patch("quark.db.api.network_find"), \
|
||||
mock.patch("quark.db.api.subnet_create") as sub_create, \
|
||||
mock.patch("quark.db.api.subnet_delete"), \
|
||||
mock.patch("neutron.common.rpc.get_notifier") as notify, \
|
||||
mock.patch("oslo_utils.timeutils.utcnow") as time_func, \
|
||||
mock.patch("quark.plugin_modules.subnets."
|
||||
"_validate_subnet_cidr"):
|
||||
sub_create.return_value = subnets[0]
|
||||
sub_find.return_value = subnets[0]
|
||||
retsubs = []
|
||||
@ -1473,17 +1460,14 @@ class TestQuarkDiagnoseSubnets(test_quark_plugin.TestQuarkPlugin):
|
||||
class TestQuarkCreateSubnetAttrFilters(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_create"),
|
||||
mock.patch("quark.db.api.network_find"),
|
||||
mock.patch("quark.db.api.dns_create"),
|
||||
mock.patch("quark.db.api.route_create"),
|
||||
mock.patch("quark.plugin_views._make_subnet_dict"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("sqlalchemy.orm.session.SessionTransaction.commit")
|
||||
) as (subnet_create, net_find, dns_create, route_create, sub_dict,
|
||||
subnet_find, get_notifier, commit):
|
||||
with mock.patch("quark.db.api.subnet_create") as subnet_create, \
|
||||
mock.patch("quark.db.api.network_find") as net_find, \
|
||||
mock.patch("quark.db.api.dns_create"), \
|
||||
mock.patch("quark.db.api.route_create") as route_create, \
|
||||
mock.patch("quark.plugin_views._make_subnet_dict"), \
|
||||
mock.patch("quark.db.api.subnet_find"), \
|
||||
mock.patch("neutron.common.rpc.get_notifier"), \
|
||||
mock.patch("sqlalchemy.orm.session.SessionTransaction.commit"):
|
||||
route_create.return_value = models.Route()
|
||||
yield subnet_create, net_find
|
||||
|
||||
@ -1534,17 +1518,14 @@ class TestQuarkUpdateSubnetAttrFilters(test_quark_plugin.TestQuarkPlugin):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
pool_mod = "quark.allocation_pool.AllocationPools"
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_update"),
|
||||
mock.patch("quark.db.api.dns_create"),
|
||||
mock.patch("quark.db.api.route_find"),
|
||||
mock.patch("quark.db.api.route_update"),
|
||||
mock.patch("quark.db.api.route_create"),
|
||||
mock.patch(pool_mod),
|
||||
mock.patch("quark.plugin_views._make_subnet_dict")
|
||||
) as (subnet_find, subnet_update, dns_create, route_find,
|
||||
route_update, route_create, make_subnet, gateway_exclude):
|
||||
with mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update") as subnet_update, \
|
||||
mock.patch("quark.db.api.dns_create"), \
|
||||
mock.patch("quark.db.api.route_find"), \
|
||||
mock.patch("quark.db.api.route_update"), \
|
||||
mock.patch("quark.db.api.route_create"), \
|
||||
mock.patch(pool_mod), \
|
||||
mock.patch("quark.plugin_views._make_subnet_dict"):
|
||||
yield subnet_update, subnet_find
|
||||
|
||||
def test_update_subnet_attr_filters(self):
|
||||
|
@ -112,20 +112,24 @@ class QuarkMacAddressAllocateDeallocated(QuarkIpamBaseTest):
|
||||
mac_range = dict(id=1, first_address=0, last_address=255,
|
||||
next_auto_assign_mac=0, do_not_use=do_not_use,
|
||||
cidr="AA:BB:CC/24")
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.mac_address_reallocate"),
|
||||
mock.patch("quark.db.api.mac_address_reallocate_find"),
|
||||
with mock.patch("quark.db.api.mac_address_reallocate") as \
|
||||
addr_realloc, \
|
||||
mock.patch("quark.db.api.mac_address_reallocate_find") as \
|
||||
addr_realloc_find, \
|
||||
mock.patch("quark.db.api."
|
||||
"mac_address_range_find_allocation_counts"),
|
||||
mock.patch("quark.db.api.mac_address_create"),
|
||||
mock.patch("quark.db.api.mac_address_range_find"),
|
||||
mock.patch("quark.db.api.mac_address_delete"),
|
||||
mock.patch("quark.db.api.mac_range_update_next_auto_assign_mac"),
|
||||
mock.patch("quark.db.api.mac_range_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (addr_realloc, addr_realloc_find, mac_range_count,
|
||||
mac_create, range_find, mac_delete, mac_auto_assign, set_full,
|
||||
refresh):
|
||||
"mac_address_range_find_allocation_counts") as \
|
||||
mac_range_count, \
|
||||
mock.patch("quark.db.api.mac_address_create") as mac_create, \
|
||||
mock.patch("quark.db.api.mac_address_range_find") as \
|
||||
range_find, \
|
||||
mock.patch("quark.db.api.mac_address_delete") as mac_delete, \
|
||||
mock.patch("quark.db.api."
|
||||
"mac_range_update_next_auto_assign_mac") as \
|
||||
mac_auto_assign, \
|
||||
mock.patch("quark.db.api.mac_range_update_set_full") as \
|
||||
set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
address_mod = models.MacAddress(**address)
|
||||
range_mod = models.MacAddressRange(**mac_range)
|
||||
if mac_find:
|
||||
@ -174,14 +178,16 @@ class QuarkNewMacAddressAllocation(QuarkIpamBaseTest):
|
||||
def _stubs(self, addresses=None, ranges=None):
|
||||
if not addresses:
|
||||
addresses = [None]
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.mac_address_find"),
|
||||
with mock.patch("quark.db.api.mac_address_find") as mac_find, \
|
||||
mock.patch("quark.db.api."
|
||||
"mac_address_range_find_allocation_counts"),
|
||||
mock.patch("quark.db.api.mac_range_update_next_auto_assign_mac"),
|
||||
mock.patch("quark.db.api.mac_range_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (mac_find, mac_range_count, mac_auto, mac_set_full, refresh):
|
||||
"mac_address_range_find_allocation_counts") as \
|
||||
mac_range_count, \
|
||||
mock.patch("quark.db.api."
|
||||
"mac_range_update_next_auto_assign_mac"), \
|
||||
mock.patch("quark.db.api.mac_range_update_set_full") as \
|
||||
mac_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
address_mod = [mac_helper(a) for a in addresses]
|
||||
range_mod = (range_helper(ranges[0]), ranges[1])
|
||||
mac_find.side_effect = address_mod
|
||||
@ -264,12 +270,12 @@ class QuarkNewMacAddressAllocationCreateConflict(QuarkIpamBaseTest):
|
||||
def _stubs(self, addresses=None, ranges=None):
|
||||
if not addresses:
|
||||
addresses = [None]
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.mac_address_find"),
|
||||
mock.patch("quark.db.api.mac_address_create"),
|
||||
with mock.patch("quark.db.api.mac_address_find") as mac_find, \
|
||||
mock.patch("quark.db.api.mac_address_create") as \
|
||||
mac_create, \
|
||||
mock.patch("quark.db.api."
|
||||
"mac_address_range_find_allocation_counts"),
|
||||
) as (mac_find, mac_create, mac_range_count):
|
||||
"mac_address_range_find_allocation_counts") as \
|
||||
mac_range_count:
|
||||
mac_find.side_effect = [None, None]
|
||||
address_mod = [mac_helper(a) for a in addresses]
|
||||
mac_create.side_effect = address_mod
|
||||
@ -295,12 +301,13 @@ class QuarkNewMacAddressReallocationDeadlocks(QuarkIpamBaseTest):
|
||||
addresses = [None]
|
||||
old_override = cfg.CONF.QUARK.mac_address_retry_max
|
||||
cfg.CONF.set_override('mac_address_retry_max', 1, 'QUARK')
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.mac_address_reallocate"),
|
||||
mock.patch("quark.db.api.mac_address_create"),
|
||||
with mock.patch("quark.db.api.mac_address_reallocate") as \
|
||||
mac_realloc, \
|
||||
mock.patch("quark.db.api.mac_address_create") as \
|
||||
mac_create, \
|
||||
mock.patch("quark.db.api."
|
||||
"mac_address_range_find_allocation_counts"),
|
||||
) as (mac_realloc, mac_create, mac_range_count):
|
||||
"mac_address_range_find_allocation_counts") as \
|
||||
mac_range_count:
|
||||
mac_realloc.side_effect = [Exception, None]
|
||||
mac_create.side_effect = addresses
|
||||
mac_range_count.return_value = ranges
|
||||
@ -321,12 +328,11 @@ class QuarkNewMacAddressReallocationDeadlocks(QuarkIpamBaseTest):
|
||||
class QuarkMacAddressDeallocation(QuarkIpamBaseTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, mac, mac_range):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.mac_address_find"),
|
||||
mock.patch("quark.db.api.mac_address_update"),
|
||||
mock.patch("quark.db.api.mac_address_range_find"),
|
||||
mock.patch("quark.db.api.mac_address_delete")
|
||||
) as (mac_find, mac_update, range_find, mac_delete):
|
||||
with mock.patch("quark.db.api.mac_address_find") as mac_find, \
|
||||
mock.patch("quark.db.api.mac_address_update") as mac_update, \
|
||||
mock.patch("quark.db.api.mac_address_range_find") as \
|
||||
range_find, \
|
||||
mock.patch("quark.db.api.mac_address_delete") as mac_delete:
|
||||
mac_update.return_value = mac
|
||||
mac_find.return_value = mac
|
||||
range_find.return_value = mac_range
|
||||
@ -478,18 +484,20 @@ class QuarkIpamTestBothIpAllocation(QuarkIpamBaseTest):
|
||||
def _stubs(self, addresses=None, subnets=None):
|
||||
if not addresses:
|
||||
addresses = [None, None]
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_reallocate"),
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find"),
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_find"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (addr_realloc, addr_realloc_find, addr_find,
|
||||
subnet_alloc_find, subnet_find, subnet_update,
|
||||
subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.ip_address_reallocate") as \
|
||||
addr_realloc, \
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find") as \
|
||||
addr_realloc_find, \
|
||||
mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_alloc_find, \
|
||||
mock.patch("quark.db.api.subnet_find") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_update, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
addr_mods = []
|
||||
sub_mods = []
|
||||
for a in addresses:
|
||||
@ -887,16 +895,19 @@ class QuarkIpamTestBothRequiredIpAllocation(QuarkIpamBaseTest):
|
||||
if not addresses:
|
||||
addresses = [None, None]
|
||||
self.context.session.add = mock.Mock()
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_reallocate"),
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find"),
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (addr_realloc, addr_realloc_find, addr_find,
|
||||
subnet_find, subnet_update, subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.ip_address_reallocate") as \
|
||||
addr_realloc, \
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find") as \
|
||||
addr_realloc_find, \
|
||||
mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_update, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
addrs = [ip_helper(a) for a in addresses]
|
||||
addr_realloc.side_effect = addrs[:1]
|
||||
addr_realloc_find.side_effect = addrs[:1]
|
||||
@ -1129,12 +1140,14 @@ class QuarkIpamAllocateFromV6Subnet(QuarkIpamBaseTest):
|
||||
ip_mod["allocated_at"] = timeutils.utcnow()
|
||||
ip_mod["version"] = ip_address.version
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.models.IPPolicy.get_cidrs_ip_set"),
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.ip_address_create"),
|
||||
mock.patch("quark.db.api.ip_address_update")
|
||||
) as (policy_find, ip_address_find, ip_create, ip_update):
|
||||
with mock.patch("quark.db.models.IPPolicy.get_cidrs_ip_set") as \
|
||||
policy_find, \
|
||||
mock.patch("quark.db.api.ip_address_find") as \
|
||||
ip_address_find, \
|
||||
mock.patch("quark.db.api.ip_address_create") as \
|
||||
ip_create, \
|
||||
mock.patch("quark.db.api.ip_address_update") as \
|
||||
ip_update:
|
||||
policy_find.return_value = policies
|
||||
ip_address_find.return_value = ip_mod
|
||||
ip_create.return_value = ip_mod
|
||||
@ -1194,16 +1207,19 @@ class QuarkNewIPAddressAllocation(QuarkIpamBaseTest):
|
||||
if not addresses:
|
||||
addresses = [None]
|
||||
self.context.session.add = mock.Mock()
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_reallocate"),
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find"),
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (addr_realloc, addr_realloc_find, addr_find,
|
||||
subnet_find, subnet_update, subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.ip_address_reallocate") as \
|
||||
addr_realloc, \
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find") as \
|
||||
addr_realloc_find, \
|
||||
mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_update, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
addrs = [ip_helper(a) for a in addresses]
|
||||
addr_realloc.side_effect = addrs[:1]
|
||||
addr_realloc_find.side_effect = addrs[:1]
|
||||
@ -1496,15 +1512,16 @@ class QuarkIPAddressAllocationTestRetries(QuarkIpamBaseTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, address=None, subnets=None):
|
||||
self.context.session.add = mock.Mock()
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.ip_address_create"),
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (addr_find, addr_create, subnet_find, subnet_update,
|
||||
subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.ip_address_create") as addr_create, \
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_update, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
addr_find.side_effect = [None, None, None]
|
||||
addr_mods = []
|
||||
for a in address:
|
||||
@ -1635,14 +1652,14 @@ class QuarkIPAddressAllocateDeallocated(QuarkIpamBaseTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, ip_find, subnet, address, addresses_found,
|
||||
sub_found=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_reallocate"),
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find"),
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.ip_address_update"),
|
||||
mock.patch("quark.ipam.QuarkIpamANY._choose_available_subnet")
|
||||
) as (addr_realloc, addr_realloc_find, addr_find, addr_update,
|
||||
choose_subnet):
|
||||
with mock.patch("quark.db.api.ip_address_reallocate") as \
|
||||
addr_realloc, \
|
||||
mock.patch("quark.db.api.ip_address_reallocate_find") as \
|
||||
addr_realloc_find, \
|
||||
mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.ip_address_update") as addr_update, \
|
||||
mock.patch("quark.ipam.QuarkIpamANY."
|
||||
"_choose_available_subnet") as choose_subnet:
|
||||
addr_mod = models.IPAddress(**address)
|
||||
subnet_mod = models.Subnet(**subnet)
|
||||
subnet_mod["next_auto_assign_ip"] = subnet["next_auto_assign_ip"]
|
||||
@ -1703,13 +1720,15 @@ class TestQuarkIpPoliciesIpAllocation(QuarkIpamBaseTest):
|
||||
if not addresses:
|
||||
addresses = [None]
|
||||
self.context.session.add = mock.Mock()
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh")
|
||||
) as (addr_find, subnet_find, subnet_update, subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_update, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
addr_find.side_effect = [ip_helper(a) for a in addresses]
|
||||
sub_mods = []
|
||||
if subnets:
|
||||
@ -1813,16 +1832,16 @@ class QuarkIPAddressAllocationNotifications(QuarkIpamBaseTest):
|
||||
def _stubs(self, address, addresses=None, subnets=None, deleted_at=None):
|
||||
if not addresses:
|
||||
addresses = [None]
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.ip_address_find"),
|
||||
mock.patch("quark.db.api.ip_address_create"),
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh"),
|
||||
mock.patch("neutron.common.rpc.get_notifier"),
|
||||
mock.patch("oslo_utils.timeutils.utcnow"),
|
||||
) as (addr_find, addr_create, subnet_find, subnet_update, refresh,
|
||||
notify, timeutils):
|
||||
with mock.patch("quark.db.api.ip_address_find") as addr_find, \
|
||||
mock.patch("quark.db.api.ip_address_create") as addr_create, \
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_update, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh, \
|
||||
mock.patch("neutron.common.rpc.get_notifier") as notify, \
|
||||
mock.patch("oslo_utils.timeutils.utcnow") as timeutils:
|
||||
addrs_found = []
|
||||
for a in addresses:
|
||||
if a:
|
||||
@ -1952,12 +1971,14 @@ class QuarkIpamTestV6IpGeneration(QuarkIpamBaseTest):
|
||||
class QuarkIpamTestSelectSubnet(QuarkIpamBaseTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, subnet, count, increments=True, marks_full=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh"),
|
||||
) as (subnet_find, subnet_incr, subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.subnet_find_ordered_by_most_full") \
|
||||
as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_incr, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
sub_mods = []
|
||||
sub_mods.append((subnet_helper(subnet), count))
|
||||
|
||||
@ -2049,12 +2070,13 @@ class QuarkIpamTestSelectSubnet(QuarkIpamBaseTest):
|
||||
class QuarkIpamTestSelectSubnetLocking(QuarkIpamBaseTest):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, subnet, count, increments=True, marks_full=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find_ordered_by_most_full"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh"),
|
||||
) as (subnet_find, subnet_incr, subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.subnet_find_ordered_by_most_full") as \
|
||||
subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_incr, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh"):
|
||||
sub_mods = []
|
||||
sub_mods.append((subnet_helper(subnet), count))
|
||||
|
||||
@ -2228,12 +2250,13 @@ class IronicIpamTestSelectSubnet(QuarkIpamBaseTest):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, subnet, count, increments=True, marks_full=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.db.api.subnet_find_unused"),
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip"),
|
||||
mock.patch("quark.db.api.subnet_update_set_full"),
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh"),
|
||||
) as (subnet_find, subnet_incr, subnet_set_full, refresh):
|
||||
with mock.patch("quark.db.api.subnet_find_unused") as subnet_find, \
|
||||
mock.patch("quark.db.api.subnet_update_next_auto_assign_ip") \
|
||||
as subnet_incr, \
|
||||
mock.patch("quark.db.api.subnet_update_set_full") as \
|
||||
subnet_set_full, \
|
||||
mock.patch("sqlalchemy.orm.session.Session.refresh") as \
|
||||
refresh:
|
||||
sub_mods = []
|
||||
sub_mods.append((subnet_helper(subnet), count))
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import contextlib
|
||||
import datetime
|
||||
import os
|
||||
import tempfile
|
||||
@ -96,10 +95,8 @@ class Test2748e48cee3a(BaseMigrationTest):
|
||||
dict(id="222", created_at=datetime.date(1970, 1, 1),
|
||||
ip_policy_id="111", cidr="192.168.10.0/16"))
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
tu.utcnow.return_value = datetime.datetime(2004, 2, 14)
|
||||
uuid.generate_uuid.return_value = "foo"
|
||||
alembic_command.upgrade(self.config, '2748e48cee3a')
|
||||
@ -121,10 +118,8 @@ class Test2748e48cee3a(BaseMigrationTest):
|
||||
dict(id="222", created_at=datetime.date(1970, 1, 1),
|
||||
ip_policy_id="111", cidr="fd00::/7"))
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
tu.utcnow.return_value = datetime.datetime(2004, 2, 14)
|
||||
uuid.generate_uuid.return_value = "foo"
|
||||
alembic_command.upgrade(self.config, '2748e48cee3a')
|
||||
@ -168,10 +163,8 @@ class Test2748e48cee3a(BaseMigrationTest):
|
||||
dict(id="223", created_at=dt, ip_policy_id="113",
|
||||
cidr="0.0.0.0/24"))
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
tu.utcnow.return_value = datetime.datetime(2004, 2, 14)
|
||||
uuid.generate_uuid.return_value = "foo"
|
||||
alembic_command.upgrade(self.config, '2748e48cee3a')
|
||||
@ -202,10 +195,8 @@ class Test2748e48cee3a(BaseMigrationTest):
|
||||
dict(id="223", created_at=datetime.date(1970, 1, 1),
|
||||
ip_policy_id="111", cidr="192.168.10.0/23"))
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
tu.utcnow.return_value = datetime.datetime(2004, 2, 14)
|
||||
uuid.generate_uuid.return_value = "foo"
|
||||
alembic_command.upgrade(self.config, '2748e48cee3a')
|
||||
@ -276,10 +267,8 @@ class Test45a07fac3d38(BaseMigrationTest):
|
||||
self.ip_policy_cidrs.insert(),
|
||||
dict(id="222", created_at=datetime.date(1970, 1, 1),
|
||||
ip_policy_id="111", cidr="192.168.10.13/32"))
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
uuid.generate_uuid.side_effect = (1, 2, 3)
|
||||
tu.utcnow.return_value = datetime.datetime(1970, 1, 1)
|
||||
alembic_command.upgrade(self.config, '45a07fac3d38')
|
||||
@ -305,10 +294,8 @@ class Test45a07fac3d38(BaseMigrationTest):
|
||||
self.ip_policy_cidrs.insert(),
|
||||
dict(id="222", created_at=datetime.date(1970, 1, 1),
|
||||
ip_policy_id="111", cidr="fd00::3/128"))
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
uuid.generate_uuid.side_effect = (1, 2, 3)
|
||||
tu.utcnow.return_value = datetime.datetime(1970, 1, 1)
|
||||
alembic_command.upgrade(self.config, '45a07fac3d38')
|
||||
@ -479,10 +466,8 @@ class Test552b213c2b8c(BaseMigrationTest):
|
||||
self.subnets.insert(),
|
||||
dict(id="000", tenant_id="foo", _cidr="192.168.10.0/24",
|
||||
ip_policy_id=None))
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
dt = datetime.datetime(1970, 1, 1)
|
||||
tu.utcnow.return_value = dt
|
||||
uuid.generate_uuid.side_effect = ("666", "667", "668")
|
||||
@ -514,10 +499,8 @@ class Test552b213c2b8c(BaseMigrationTest):
|
||||
self.subnets.insert(),
|
||||
dict(id="000", tenant_id="foo", _cidr="fd00::/64",
|
||||
ip_policy_id=None))
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
dt = datetime.datetime(1970, 1, 1)
|
||||
tu.utcnow.return_value = dt
|
||||
uuid.generate_uuid.side_effect = ("666", "667", "668")
|
||||
@ -563,10 +546,8 @@ class Test552b213c2b8c(BaseMigrationTest):
|
||||
dict(id="221", created_at=dt,
|
||||
ip_policy_id="111", cidr="192.168.10.13/32"))
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("oslo_utils.uuidutils"),
|
||||
mock.patch("oslo_utils.timeutils")
|
||||
) as (uuid, tu):
|
||||
with mock.patch("oslo_utils.uuidutils") as uuid, \
|
||||
mock.patch("oslo_utils.timeutils") as tu:
|
||||
tu.utcnow.return_value = dt
|
||||
uuid.generate_uuid.side_effect = ("5", "6", "7", "8", "9", "10")
|
||||
alembic_command.upgrade(self.config, '552b213c2b8c')
|
||||
|
@ -123,9 +123,7 @@ class TestNVPDriver(test_base.TestBase):
|
||||
class TestNVPDriverCreateNetwork(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
) as (conn,):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn:
|
||||
connection = self._create_connection()
|
||||
conn.return_value = connection
|
||||
yield connection
|
||||
@ -164,12 +162,11 @@ class TestNVPDriverDefaultTransportZoneBindings(TestNVPDriver):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("quark.drivers.nvp_driver.SA_REGISTRY."
|
||||
"get_strategy"),
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
) as (sa_get_strategy, conn, switch_list):
|
||||
with mock.patch("quark.drivers.nvp_driver.SA_REGISTRY."
|
||||
"get_strategy") as sa_get_strategy, \
|
||||
mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
switch_list:
|
||||
connection = self._create_connection()
|
||||
conn.return_value = connection
|
||||
|
||||
@ -216,9 +213,7 @@ class TestNVPDriverProviderNetwork(TestNVPDriver):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, tz):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
) as (conn,):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn:
|
||||
connection = self._create_connection()
|
||||
switch = self._create_lswitch(1, False)
|
||||
switch.transport_zone = mock.Mock()
|
||||
@ -351,10 +346,9 @@ class TestNVPDriverProviderNetwork(TestNVPDriver):
|
||||
class TestNVPDriverDeleteNetwork(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_exists=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
) as (conn, switch_list):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
switch_list:
|
||||
connection = self._create_connection()
|
||||
conn.return_value = connection
|
||||
if network_exists:
|
||||
@ -383,11 +377,10 @@ class TestNVPDriverDeleteNetwork(TestNVPDriver):
|
||||
class TestNVPDriverDeleteNetworkWithExceptions(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, network_exists=True, exception=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_delete" % self.d_pkg),
|
||||
) as (conn, switch_list, switch_delete):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
switch_list, \
|
||||
mock.patch("%s._lswitch_delete" % self.d_pkg) as switch_delete:
|
||||
connection = self._create_connection()
|
||||
conn.return_value = connection
|
||||
if network_exists:
|
||||
@ -437,12 +430,12 @@ class TestNVPDriverCreatePort(TestNVPDriver):
|
||||
'''In all cases an lswitch should be queried.'''
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, has_lswitch=True, maxed_ports=False, net_details=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
mock.patch("%s._get_network_details" % self.d_pkg),
|
||||
) as (conn, next_conn, get_switches, get_net_dets):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg), \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
get_switches, \
|
||||
mock.patch("%s._get_network_details" % self.d_pkg) as \
|
||||
get_net_dets:
|
||||
connection = self._create_connection(has_switches=has_lswitch,
|
||||
maxed_ports=maxed_ports)
|
||||
conn.return_value = connection
|
||||
@ -591,10 +584,8 @@ class TestNVPDriverCreatePort(TestNVPDriver):
|
||||
class TestNVPDriverUpdatePort(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
) as (conn, next_conn):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg):
|
||||
connection = self._create_connection()
|
||||
connection.securityprofile = self._create_security_profile()
|
||||
conn.return_value = connection
|
||||
@ -629,9 +620,7 @@ class TestNVPDriverUpdatePort(TestNVPDriver):
|
||||
class TestNVPDriverLswitchesForNetwork(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, single_switch=True):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
) as (conn,):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn:
|
||||
connection = self._create_connection(
|
||||
has_switches=True, switch_count=1)
|
||||
conn.return_value = connection
|
||||
@ -696,10 +685,8 @@ class TestSwitchCopying(TestNVPDriver):
|
||||
class TestNVPDriverDeletePort(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, switch_count=1):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
) as (conn, next_conn):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg):
|
||||
connection = self._create_connection(switch_count=switch_count)
|
||||
conn.return_value = connection
|
||||
yield connection
|
||||
@ -736,10 +723,8 @@ class TestNVPDriverDeletePort(TestNVPDriver):
|
||||
class TestNVPDriverDeletePortWithExceptions(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, switch_exception=None, delete_exception=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_from_port" % self.d_pkg),
|
||||
) as (conn, switch):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitch_from_port" % self.d_pkg) as switch:
|
||||
connection = self._create_connection()
|
||||
conn.return_value = connection
|
||||
if switch_exception:
|
||||
@ -820,10 +805,8 @@ class TestNVPDriverDeletePortWithExceptions(TestNVPDriver):
|
||||
class TestNVPDriverCreateSecurityGroup(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
) as (conn, next_conn):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg):
|
||||
connection = self._create_connection()
|
||||
connection.securityprofile = self._create_security_profile()
|
||||
conn.return_value = connection
|
||||
@ -875,10 +858,8 @@ class TestNVPDriverCreateSecurityGroup(TestNVPDriver):
|
||||
class TestNVPDriverDeleteSecurityGroup(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
) as (conn, next_conn):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg):
|
||||
connection = self._create_connection()
|
||||
connection.securityprofile = self._create_security_profile()
|
||||
conn.return_value = connection
|
||||
@ -905,10 +886,8 @@ class TestNVPDriverDeleteSecurityGroup(TestNVPDriver):
|
||||
class TestNVPDriverUpdateSecurityGroup(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
) as (conn, next_conn):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg):
|
||||
connection = self._create_connection()
|
||||
connection.securityprofile = self._create_security_profile()
|
||||
conn.return_value = connection
|
||||
@ -966,10 +945,8 @@ class TestNVPDriverUpdateSecurityGroup(TestNVPDriver):
|
||||
class TestNVPDriverCreateSecurityGroupRule(TestNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._next_connection" % self.d_pkg),
|
||||
) as (conn, next_conn):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg):
|
||||
connection = self._create_connection()
|
||||
connection.securityprofile = self._create_security_profile()
|
||||
connection.securityrule = self._create_security_rule()
|
||||
@ -1050,9 +1027,7 @@ class TestNVPDriverDeleteSecurityGroupRule(TestNVPDriver):
|
||||
for rule in rules:
|
||||
rulelist['logical_port_%s_rules' % rule.pop('direction')].append(
|
||||
rule)
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
) as (conn,):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn:
|
||||
connection = self._create_connection()
|
||||
connection.securityprofile = self._create_security_profile()
|
||||
connection.securityrule = self._create_security_rule()
|
||||
@ -1135,10 +1110,8 @@ class TestNVPGetConnection(TestNVPDriver):
|
||||
retries=1,
|
||||
backoff=0,
|
||||
usages=0))
|
||||
with contextlib.nested(
|
||||
mock.patch("aiclib.nvp.Connection"),
|
||||
mock.patch("%s._next_connection" % self.d_pkg)
|
||||
) as (aiclib_conn, next_conn):
|
||||
with mock.patch("aiclib.nvp.Connection") as aiclib_conn, \
|
||||
mock.patch("%s._next_connection" % self.d_pkg) as next_conn:
|
||||
yield aiclib_conn, next_conn
|
||||
cfg.CONF.clear_override("controller_connection", "NVP")
|
||||
|
||||
@ -1208,9 +1181,7 @@ class TestNVPNextConnection(TestNVPDriver):
|
||||
conn2["ip_address"] = "192.168.0.2"
|
||||
|
||||
self.driver.nvp_connections.extend([conn1, conn2])
|
||||
with contextlib.nested(
|
||||
mock.patch("random.randint")
|
||||
) as (randint,):
|
||||
with mock.patch("random.randint") as randint:
|
||||
randint.return_value = 1
|
||||
yield randint
|
||||
cfg.CONF.clear_override("controller_connection", "NVP")
|
||||
|
@ -51,11 +51,11 @@ class TestOptimizedNVPDriverDeleteNetwork(TestOptimizedNVPDriver):
|
||||
'''Need to ensure that network of X switches deletes X switches.'''
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, switch_count=1):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
) as (conn, select_switch, get_switches):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg) as \
|
||||
select_switch, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
get_switches:
|
||||
connection = self._create_connection()
|
||||
switch = self._create_lswitch_mock()
|
||||
conn.return_value = connection
|
||||
@ -104,12 +104,12 @@ class TestOptimizedNVPDriverDeleteNetworkWithExceptions(
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, switch_count=1, error_code=500):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_delete" % self.d_pkg)
|
||||
) as (conn, select_switch, get_switches, delete_switch):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg) as \
|
||||
select_switch, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
get_switches, \
|
||||
mock.patch("%s._lswitch_delete" % self.d_pkg) as delete_switch:
|
||||
connection = self._create_connection()
|
||||
switch = self._create_lswitch_mock()
|
||||
conn.return_value = connection
|
||||
@ -150,14 +150,14 @@ class TestOptimizedNVPDriverDeletePortMultiSwitch(TestOptimizedNVPDriver):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, port_count=2, exception=None):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lport_select_by_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
mock.patch("%s._lport_delete" % self.d_pkg),
|
||||
) as (conn, select_port, select_switch,
|
||||
two_switch, port_delete):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lport_select_by_id" % self.d_pkg) as \
|
||||
select_port, \
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg) as \
|
||||
select_switch, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
two_switch, \
|
||||
mock.patch("%s._lport_delete" % self.d_pkg) as port_delete:
|
||||
connection = self._create_connection()
|
||||
port = self._create_lport_mock(port_count)
|
||||
switch = self._create_lswitch_mock()
|
||||
@ -243,12 +243,13 @@ class TestOptimizedNVPDriverDeletePortSingleSwitch(TestOptimizedNVPDriver):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, port_count=1):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lport_select_by_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
) as (conn, select_port, select_switch, one_switch):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lport_select_by_id" % self.d_pkg) as \
|
||||
select_port, \
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg) as \
|
||||
select_switch, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
one_switch:
|
||||
connection = self._create_connection()
|
||||
switch = self._create_lswitch_mock()
|
||||
conn.return_value = connection
|
||||
@ -271,12 +272,13 @@ class TestOptimizedNVPDriverDeletePortMissing(TestOptimizedNVPDriver):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, port_count=2):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lport_select_by_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg),
|
||||
) as (conn, select_port, select_switch, one_switch):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lport_select_by_id" % self.d_pkg) as \
|
||||
select_port, \
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg) as \
|
||||
select_switch, \
|
||||
mock.patch("%s._lswitches_for_network" % self.d_pkg) as \
|
||||
one_switch:
|
||||
connection = self._create_connection()
|
||||
port = self._create_lport_mock(port_count)
|
||||
switch = self._create_lswitch_mock()
|
||||
@ -301,15 +303,17 @@ class TestOptimizedNVPDriverCreatePort(TestOptimizedNVPDriver):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, has_lswitch=True, maxed_ports=False):
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_free" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_first" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg),
|
||||
mock.patch("%s._lswitch_create_optimized" % self.d_pkg),
|
||||
mock.patch("%s._get_network_details" % self.d_pkg)
|
||||
) as (conn, select_free, select_first,
|
||||
select_by_id, create_opt, get_net_dets):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._lswitch_select_free" % self.d_pkg) as \
|
||||
select_free, \
|
||||
mock.patch("%s._lswitch_select_first" % self.d_pkg) as \
|
||||
select_first, \
|
||||
mock.patch("%s._lswitch_select_by_nvp_id" % self.d_pkg) as \
|
||||
select_by_id, \
|
||||
mock.patch("%s._lswitch_create_optimized" % self.d_pkg) as \
|
||||
create_opt, \
|
||||
mock.patch("%s._get_network_details" % self.d_pkg) as \
|
||||
get_net_dets:
|
||||
connection = self._create_connection()
|
||||
conn.return_value = connection
|
||||
if has_lswitch:
|
||||
@ -446,10 +450,9 @@ class TestOptimizedNVPDriverUpdatePort(TestOptimizedNVPDriver):
|
||||
mod_path = "quark.drivers.%s"
|
||||
op_path = "optimized_nvp_driver.OptimizedNVPDriver"
|
||||
lport_path = "%s._lport_select_by_id" % op_path
|
||||
with contextlib.nested(
|
||||
mock.patch(mod_path % "nvp_driver.NVPDriver.update_port"),
|
||||
mock.patch(mod_path % lport_path),
|
||||
) as (update_port, port_find):
|
||||
with mock.patch(mod_path % "nvp_driver.NVPDriver.update_port") as \
|
||||
update_port, \
|
||||
mock.patch(mod_path % lport_path) as port_find:
|
||||
ret_port = quark.drivers.optimized_nvp_driver.LSwitchPort()
|
||||
port_find.return_value = ret_port
|
||||
update_port.return_value = dict(switch_id=2)
|
||||
@ -467,10 +470,9 @@ class TestCreateSecurityGroups(TestOptimizedNVPDriver):
|
||||
class TestDeleteSecurityGroups(TestOptimizedNVPDriver):
|
||||
def test_delete_security_group(self):
|
||||
mod_path = "quark.drivers.nvp_driver.NVPDriver"
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._query_security_group" % self.d_pkg),
|
||||
mock.patch("%s.delete_security_group" % mod_path)):
|
||||
with mock.patch("%s._connection" % self.d_pkg), \
|
||||
mock.patch("%s._query_security_group" % self.d_pkg), \
|
||||
mock.patch("%s.delete_security_group" % mod_path):
|
||||
|
||||
session_delete = self.context.session.delete
|
||||
self.context.session.delete = mock.Mock(return_value=None)
|
||||
@ -483,11 +485,11 @@ class TestSecurityGroupRules(TestOptimizedNVPDriver):
|
||||
@contextlib.contextmanager
|
||||
def _stubs(self, rules=None):
|
||||
rules = rules or []
|
||||
with contextlib.nested(
|
||||
mock.patch("%s._connection" % self.d_pkg),
|
||||
mock.patch("%s._query_security_group" % self.d_pkg),
|
||||
mock.patch("%s._check_rule_count_per_port" % self.d_pkg),
|
||||
) as (conn, query_sec_group, rule_count):
|
||||
with mock.patch("%s._connection" % self.d_pkg) as conn, \
|
||||
mock.patch("%s._query_security_group" % self.d_pkg) as \
|
||||
query_sec_group, \
|
||||
mock.patch("%s._check_rule_count_per_port" % self.d_pkg) \
|
||||
as rule_count:
|
||||
query_sec_group.return_value = (quark.drivers.optimized_nvp_driver.
|
||||
SecurityProfile())
|
||||
connection = self._create_connection()
|
||||
|
@ -152,11 +152,11 @@ class QuarkRedisSgToolPurgeOrphans(QuarkRedisSgToolBase):
|
||||
def _stubs(self):
|
||||
ports = [{"device_id": 1, "mac_address": 1}]
|
||||
vifs = ["1.1", "2.2", "3.3"]
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.context.get_admin_context"),
|
||||
mock.patch("quark.db.api.ports_with_security_groups_find"),
|
||||
mock.patch("%s._get_connection" % TOOL_MOD)
|
||||
) as (get_admin_ctxt, db_ports_groups, get_conn):
|
||||
with mock.patch("neutron.context.get_admin_context") as \
|
||||
get_admin_ctxt, \
|
||||
mock.patch("quark.db.api.ports_with_security_groups_find") \
|
||||
as db_ports_groups, \
|
||||
mock.patch("%s._get_connection" % TOOL_MOD) as get_conn:
|
||||
connection_mock = mock.MagicMock()
|
||||
get_conn.return_value = connection_mock
|
||||
ports_with_groups_mock = mock.MagicMock()
|
||||
@ -216,12 +216,13 @@ class QuarkRedisSgToolWriteGroups(QuarkRedisSgToolBase):
|
||||
vifs = ["1.1", "2.2", "3.3"]
|
||||
security_groups = [{"id": 1, "name": "test_group"}]
|
||||
|
||||
with contextlib.nested(
|
||||
mock.patch("neutron.context.get_admin_context"),
|
||||
mock.patch("quark.db.api.security_group_rule_find"),
|
||||
mock.patch("quark.db.api.ports_with_security_groups_find"),
|
||||
mock.patch("%s._get_connection" % TOOL_MOD)
|
||||
) as (get_admin_ctxt, rule_find, db_ports_groups, get_conn):
|
||||
with mock.patch("neutron.context.get_admin_context") as \
|
||||
get_admin_ctxt, \
|
||||
mock.patch("quark.db.api.security_group_rule_find") as \
|
||||
rule_find, \
|
||||
mock.patch("quark.db.api.ports_with_security_groups_find") \
|
||||
as db_ports_groups, \
|
||||
mock.patch("%s._get_connection" % TOOL_MOD) as get_conn:
|
||||
connection_mock = mock.MagicMock()
|
||||
get_conn.return_value = connection_mock
|
||||
ports_with_groups_mock = mock.MagicMock()
|
||||
|
@ -12,7 +12,6 @@
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
import contextlib
|
||||
import json
|
||||
import mock
|
||||
|
||||
@ -57,10 +56,8 @@ class TestRespAsyncIDMiddleware(test_base.TestBase):
|
||||
|
||||
def test_mw_none_context(self):
|
||||
mw = jobmw.filter_factory(self.conf)(self.app)
|
||||
with contextlib.nested(
|
||||
mock.patch('%s._get_resp' % mw_mock_path),
|
||||
mock.patch('%s._get_ctx' % mw_mock_path)) as \
|
||||
(get_resp, get_ctx):
|
||||
with mock.patch('%s._get_resp' % mw_mock_path) as get_resp, \
|
||||
mock.patch('%s._get_ctx' % mw_mock_path) as get_ctx:
|
||||
get_resp.return_value = self.resp_return
|
||||
get_ctx.return_value = self.none_ctx
|
||||
resp = mw.__call__.request('/', method='GET', body=self.body)
|
||||
@ -71,10 +68,8 @@ class TestRespAsyncIDMiddleware(test_base.TestBase):
|
||||
|
||||
def test_mw_empty_context(self):
|
||||
mw = jobmw.filter_factory(self.conf)(self.app)
|
||||
with contextlib.nested(
|
||||
mock.patch('%s._get_resp' % mw_mock_path),
|
||||
mock.patch('%s._get_ctx' % mw_mock_path)) as \
|
||||
(get_resp, get_ctx):
|
||||
with mock.patch('%s._get_resp' % mw_mock_path) as get_resp, \
|
||||
mock.patch('%s._get_ctx' % mw_mock_path) as get_ctx:
|
||||
get_resp.return_value = self.resp_return
|
||||
get_ctx.return_value = self.no_ctx
|
||||
resp = mw.__call__.request('/', method='GET', body=self.body)
|
||||
@ -85,10 +80,8 @@ class TestRespAsyncIDMiddleware(test_base.TestBase):
|
||||
|
||||
def test_mw_missing_context(self):
|
||||
mw = jobmw.filter_factory(self.conf)(self.app)
|
||||
with contextlib.nested(
|
||||
mock.patch('%s._get_resp' % mw_mock_path),
|
||||
mock.patch('%s._get_ctx' % mw_mock_path)) as \
|
||||
(get_resp, get_ctx):
|
||||
with mock.patch('%s._get_resp' % mw_mock_path) as get_resp, \
|
||||
mock.patch('%s._get_ctx' % mw_mock_path) as get_ctx:
|
||||
get_resp.return_value = self.resp_return
|
||||
get_ctx.return_value = self.random_ctx
|
||||
resp = mw.__call__.request('/', method='GET', body=self.body)
|
||||
@ -99,10 +92,8 @@ class TestRespAsyncIDMiddleware(test_base.TestBase):
|
||||
|
||||
def test_mw_modify_resp(self):
|
||||
mw = jobmw.filter_factory(self.conf)(self.app)
|
||||
with contextlib.nested(
|
||||
mock.patch('%s._get_resp' % mw_mock_path),
|
||||
mock.patch('%s._get_ctx' % mw_mock_path)) as \
|
||||
(get_resp, get_ctx):
|
||||
with mock.patch('%s._get_resp' % mw_mock_path) as get_resp, \
|
||||
mock.patch('%s._get_ctx' % mw_mock_path) as get_ctx:
|
||||
get_resp.return_value = self.resp_return
|
||||
get_ctx.return_value = self.job_ctx
|
||||
resp = mw.__call__.request('/', method='GET', body=self.body)
|
||||
@ -116,10 +107,8 @@ class TestRespAsyncIDMiddleware(test_base.TestBase):
|
||||
|
||||
def test_mw_error_resp(self):
|
||||
mw = jobmw.filter_factory(self.conf)(self.app)
|
||||
with contextlib.nested(
|
||||
mock.patch('%s._get_resp' % mw_mock_path),
|
||||
mock.patch('%s._get_ctx' % mw_mock_path)) as \
|
||||
(get_resp, get_ctx):
|
||||
with mock.patch('%s._get_resp' % mw_mock_path) as get_resp, \
|
||||
mock.patch('%s._get_ctx' % mw_mock_path) as get_ctx:
|
||||
get_resp.return_value = self.err_resp
|
||||
get_ctx.return_value = self.job_ctx
|
||||
resp = mw.__call__.request('/', method='GET', body=self.body)
|
||||
|
Loading…
Reference in New Issue
Block a user