delete common_db_mixin

The functionality within neutron.db.common_db_mixin is available via
neutron-lib APIs. This patch removes common_db_mixin and updates any
uses of it to use neutron-lib instead.

Depends-On: https://review.openstack.org/#/c/636159/

NeutronLibImpact

Change-Id: I2388f90b37abb09408809dda8c21da551bcd94bb
This commit is contained in:
Boden R 2019-02-07 14:51:09 -07:00
parent e9e76ce4b7
commit 957eca96f4
22 changed files with 18 additions and 118 deletions

View File

@ -1,62 +0,0 @@
# Copyright (c) 2014 OpenStack Foundation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron_lib.db import model_query
from neutron_lib.db import utils as db_utils
# TODO(HenryG): Deprecate and schedule for removal
class CommonDbMixin(object):
"""Deprecated."""
@staticmethod
def _model_query(context, model):
return model_query.query_with_hooks(context, model)
@staticmethod
def _fields(resource, fields):
return db_utils.resource_fields(resource, fields)
@staticmethod
def _get_by_id(context, model, id):
return model_query.get_by_id(context, model, id)
@staticmethod
def _get_collection_query(context, model,
filters=None, sorts=None,
limit=None, marker_obj=None,
page_reverse=False):
return model_query.get_collection_query(context, model,
filters, sorts,
limit, marker_obj,
page_reverse)
@staticmethod
def _get_collection(context, model, dict_func,
filters=None, fields=None, sorts=None,
limit=None, marker_obj=None,
page_reverse=False):
return model_query.get_collection(context, model, dict_func,
filters, fields, sorts,
limit, marker_obj,
page_reverse)
@staticmethod
def _get_collection_count(context, model, filters=None):
return model_query.get_collection_count(context, model, filters)
# TODO(HenryG): Remove this when available in neutron-lib
def _get_marker_obj(self, context, resource, limit, marker):
return db_utils.get_marker_obj(self, context, resource, limit, marker)

View File

@ -34,7 +34,6 @@ from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
from sqlalchemy.orm import exc from sqlalchemy.orm import exc
from neutron.db import common_db_mixin
from neutron.db import models_v2 from neutron.db import models_v2
from neutron.objects import base as base_obj from neutron.objects import base as base_obj
from neutron.objects import ports as port_obj from neutron.objects import ports as port_obj
@ -78,7 +77,7 @@ def filter_fields(f):
return inner_filter return inner_filter
class DbBasePluginCommon(common_db_mixin.CommonDbMixin): class DbBasePluginCommon(object):
"""Stores getters and helper methods for db_base_plugin_v2 """Stores getters and helper methods for db_base_plugin_v2
All private getters and simple helpers like _make_*_dict were moved from All private getters and simple helpers like _make_*_dict were moved from

View File

@ -18,7 +18,6 @@ from neutron_lib.exceptions import flavors as flav_exc
from oslo_db import exception as db_exc from oslo_db import exception as db_exc
from oslo_log import log as logging from oslo_log import log as logging
from neutron.db import common_db_mixin
from neutron.db import servicetype_db as sdb from neutron.db import servicetype_db as sdb
from neutron.objects import base as base_obj from neutron.objects import base as base_obj
from neutron.objects import flavor as obj_flavor from neutron.objects import flavor as obj_flavor
@ -27,7 +26,7 @@ from neutron.objects import flavor as obj_flavor
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
class FlavorsDbMixin(common_db_mixin.CommonDbMixin): class FlavorsDbMixin(object):
"""Class to support flavors and service profiles.""" """Class to support flavors and service profiles."""

View File

@ -21,7 +21,6 @@ from oslo_db import exception as db_exc
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.api.rpc.agentnotifiers import metering_rpc_agent_api from neutron.api.rpc.agentnotifiers import metering_rpc_agent_api
from neutron.db import common_db_mixin as base_db
from neutron.db import l3_dvr_db from neutron.db import l3_dvr_db
from neutron.extensions import metering from neutron.extensions import metering
from neutron.objects import base as base_obj from neutron.objects import base as base_obj
@ -29,8 +28,7 @@ from neutron.objects import metering as metering_objs
from neutron.objects import router as l3_obj from neutron.objects import router as l3_obj
class MeteringDbMixin(metering.MeteringPluginBase, class MeteringDbMixin(metering.MeteringPluginBase):
base_db.CommonDbMixin):
def __init__(self): def __init__(self):
self.meter_rpc = metering_rpc_agent_api.MeteringAgentNotifyAPI() self.meter_rpc = metering_rpc_agent_api.MeteringAgentNotifyAPI()

View File

@ -22,13 +22,12 @@ from neutron_lib.db import utils as db_utils
from neutron_lib import exceptions as n_exc from neutron_lib import exceptions as n_exc
from oslo_db import exception as db_exc from oslo_db import exception as db_exc
from neutron.db import common_db_mixin
from neutron.extensions import rbac as ext_rbac from neutron.extensions import rbac as ext_rbac
from neutron.objects import base as base_obj from neutron.objects import base as base_obj
from neutron.objects import rbac as rbac_obj from neutron.objects import rbac as rbac_obj
class RbacPluginMixin(common_db_mixin.CommonDbMixin): class RbacPluginMixin(object):
"""Plugin mixin that implements the RBAC DB operations.""" """Plugin mixin that implements the RBAC DB operations."""
object_type_cache = {} object_type_cache = {}

View File

@ -19,15 +19,13 @@ from neutron_lib.plugins.ml2 import api
from neutron_lib.utils import net from neutron_lib.utils import net
from oslo_log import log as logging from oslo_log import log as logging
from neutron.db import common_db_mixin
from neutron.db import portsecurity_db_common as ps_db_common from neutron.db import portsecurity_db_common as ps_db_common
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
class PortSecurityExtensionDriver(api.ExtensionDriver, class PortSecurityExtensionDriver(api.ExtensionDriver,
ps_db_common.PortSecurityDbCommon, ps_db_common.PortSecurityDbCommon):
common_db_mixin.CommonDbMixin):
_supported_extension_alias = 'port-security' _supported_extension_alias = 'port-security'
def initialize(self): def initialize(self):

View File

@ -31,7 +31,6 @@ from neutron_lib.plugins import utils as p_utils
from oslo_log import log as logging from oslo_log import log as logging
from neutron._i18n import _ from neutron._i18n import _
from neutron.db import common_db_mixin
from neutron.objects import auto_allocate as auto_allocate_obj from neutron.objects import auto_allocate as auto_allocate_obj
from neutron.objects import base as base_obj from neutron.objects import base as base_obj
from neutron.objects import network as net_obj from neutron.objects import network as net_obj
@ -88,7 +87,7 @@ def _ensure_external_network_default_value_callback(
@resource_extend.has_resource_extenders @resource_extend.has_resource_extenders
class AutoAllocatedTopologyMixin(common_db_mixin.CommonDbMixin): class AutoAllocatedTopologyMixin(object):
def __new__(cls, *args, **kwargs): def __new__(cls, *args, **kwargs):
# NOTE(kevinbenton): we subscribe on object construction because # NOTE(kevinbenton): we subscribe on object construction because

View File

@ -37,7 +37,6 @@ from oslo_utils import importutils
from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api
from neutron.api.rpc.handlers import l3_rpc from neutron.api.rpc.handlers import l3_rpc
from neutron.db import common_db_mixin
from neutron.db import dns_db from neutron.db import dns_db
from neutron.db import extraroute_db from neutron.db import extraroute_db
from neutron.db import l3_dvr_ha_scheduler_db from neutron.db import l3_dvr_ha_scheduler_db
@ -73,7 +72,6 @@ def disable_l3_qos_extension_by_plugins(ext, aliases):
@resource_extend.has_resource_extenders @resource_extend.has_resource_extenders
class L3RouterPlugin(service_base.ServicePluginBase, class L3RouterPlugin(service_base.ServicePluginBase,
common_db_mixin.CommonDbMixin,
extraroute_db.ExtraRoute_db_mixin, extraroute_db.ExtraRoute_db_mixin,
l3_hamode_db.L3_HA_NAT_db_mixin, l3_hamode_db.L3_HA_NAT_db_mixin,
l3_gateway_ip_qos.L3_gw_ip_qos_db_mixin, l3_gateway_ip_qos.L3_gw_ip_qos_db_mixin,

View File

@ -29,7 +29,6 @@ from oslo_db import exception as db_exc
from oslo_log import helpers as log_helpers from oslo_log import helpers as log_helpers
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.db import common_db_mixin
from neutron.db import segments_db as db from neutron.db import segments_db as db
from neutron.extensions import segment as extension from neutron.extensions import segment as extension
from neutron import manager from neutron import manager
@ -58,7 +57,7 @@ def check_user_configured_segment_plugin():
return _USER_CONFIGURED_SEGMENT_PLUGIN return _USER_CONFIGURED_SEGMENT_PLUGIN
class SegmentDbMixin(common_db_mixin.CommonDbMixin): class SegmentDbMixin(object):
"""Mixin class to add segment.""" """Mixin class to add segment."""
@staticmethod @staticmethod

View File

@ -20,7 +20,6 @@ from neutron_lib.plugins import directory
from oslo_log import helpers as log_helpers from oslo_log import helpers as log_helpers
from sqlalchemy.orm import exc from sqlalchemy.orm import exc
from neutron.db import common_db_mixin
from neutron.db import standard_attr from neutron.db import standard_attr
from neutron.extensions import tagging from neutron.extensions import tagging
from neutron.objects import tag as tag_obj from neutron.objects import tag as tag_obj
@ -31,7 +30,7 @@ resource_model_map = standard_attr.get_standard_attr_resource_model_map()
@resource_extend.has_resource_extenders @resource_extend.has_resource_extenders
class TagPlugin(common_db_mixin.CommonDbMixin, tagging.TagPluginBase): class TagPlugin(tagging.TagPluginBase):
"""Implementation of the Neutron Tag Service Plugin.""" """Implementation of the Neutron Tag Service Plugin."""
supported_extension_aliases = ['standard-attr-tag'] supported_extension_aliases = ['standard-attr-tag']

View File

@ -29,7 +29,6 @@ from neutron_lib.services import base as service_base
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.db import common_db_mixin
from neutron.db import db_base_plugin_common from neutron.db import db_base_plugin_common
from neutron.objects import base as objects_base from neutron.objects import base as objects_base
from neutron.objects import trunk as trunk_objects from neutron.objects import trunk as trunk_objects
@ -45,8 +44,7 @@ LOG = logging.getLogger(__name__)
@resource_extend.has_resource_extenders @resource_extend.has_resource_extenders
@registry.has_registry_receivers @registry.has_registry_receivers
class TrunkPlugin(service_base.ServicePluginBase, class TrunkPlugin(service_base.ServicePluginBase):
common_db_mixin.CommonDbMixin):
supported_extension_aliases = [trunk_apidef.ALIAS, supported_extension_aliases = [trunk_apidef.ALIAS,
trunk_details.ALIAS] trunk_details.ALIAS]

View File

@ -28,7 +28,6 @@ import testtools
import neutron import neutron
from neutron.agent.common import ovs_lib from neutron.agent.common import ovs_lib
from neutron.db import agents_db from neutron.db import agents_db
from neutron.db import common_db_mixin
HOST = 'localhost' HOST = 'localhost'
DEFAULT_AZ = 'nova' DEFAULT_AZ = 'nova'
@ -52,8 +51,7 @@ def get_test_log_path():
return os.environ.get('OS_LOG_PATH', '/tmp') return os.environ.get('OS_LOG_PATH', '/tmp')
class FakePlugin(common_db_mixin.CommonDbMixin, class FakePlugin(agents_db.AgentDbMixin):
agents_db.AgentDbMixin):
pass pass

View File

@ -24,7 +24,6 @@ import testscenarios
from neutron.db import agents_db from neutron.db import agents_db
from neutron.db import agentschedulers_db from neutron.db import agentschedulers_db
from neutron.db import common_db_mixin
from neutron.objects import network from neutron.objects import network
from neutron.scheduler import dhcp_agent_scheduler from neutron.scheduler import dhcp_agent_scheduler
from neutron.tests.common import helpers from neutron.tests.common import helpers
@ -106,7 +105,6 @@ class BaseTestScheduleNetwork(object):
class TestChanceScheduleNetwork(test_dhcp_sch.TestDhcpSchedulerBaseTestCase, class TestChanceScheduleNetwork(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
agentschedulers_db.DhcpAgentSchedulerDbMixin, agentschedulers_db.DhcpAgentSchedulerDbMixin,
agents_db.AgentDbMixin, agents_db.AgentDbMixin,
common_db_mixin.CommonDbMixin,
BaseTestScheduleNetwork): BaseTestScheduleNetwork):
"""Test various scenarios for ChanceScheduler.schedule.""" """Test various scenarios for ChanceScheduler.schedule."""
@ -144,7 +142,6 @@ class TestChanceScheduleNetwork(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
class TestWeightScheduleNetwork(test_dhcp_sch.TestDhcpSchedulerBaseTestCase, class TestWeightScheduleNetwork(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
agentschedulers_db.DhcpAgentSchedulerDbMixin, agentschedulers_db.DhcpAgentSchedulerDbMixin,
agents_db.AgentDbMixin, agents_db.AgentDbMixin,
common_db_mixin.CommonDbMixin,
BaseTestScheduleNetwork): BaseTestScheduleNetwork):
"""Test various scenarios for WeightScheduler.schedule.""" """Test various scenarios for WeightScheduler.schedule."""
@ -190,8 +187,7 @@ class TestWeightScheduleNetwork(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
class TestAutoSchedule(test_dhcp_sch.TestDhcpSchedulerBaseTestCase, class TestAutoSchedule(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
agentschedulers_db.DhcpAgentSchedulerDbMixin, agentschedulers_db.DhcpAgentSchedulerDbMixin,
agents_db.AgentDbMixin, agents_db.AgentDbMixin):
common_db_mixin.CommonDbMixin):
"""Test various scenarios for ChanceScheduler.auto_schedule_networks. """Test various scenarios for ChanceScheduler.auto_schedule_networks.
Below is the brief description of the scenario variables Below is the brief description of the scenario variables
@ -435,8 +431,7 @@ class TestAutoSchedule(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
class TestAZAwareWeightScheduler(test_dhcp_sch.TestDhcpSchedulerBaseTestCase, class TestAZAwareWeightScheduler(test_dhcp_sch.TestDhcpSchedulerBaseTestCase,
agentschedulers_db.DhcpAgentSchedulerDbMixin, agentschedulers_db.DhcpAgentSchedulerDbMixin,
agents_db.AgentDbMixin, agents_db.AgentDbMixin):
common_db_mixin.CommonDbMixin):
"""Test various scenarios for AZAwareWeightScheduler.schedule. """Test various scenarios for AZAwareWeightScheduler.schedule.
az_count az_count

View File

@ -20,13 +20,11 @@ from neutron_lib import context
from neutron_lib.plugins import constants from neutron_lib.plugins import constants
from neutron_lib.plugins import directory from neutron_lib.plugins import directory
from neutron.db import common_db_mixin
from neutron.db import extraroute_db from neutron.db import extraroute_db
from neutron.tests.unit import testlib_api from neutron.tests.unit import testlib_api
class _Plugin(common_db_mixin.CommonDbMixin, class _Plugin(extraroute_db.ExtraRoute_dbonly_mixin):
extraroute_db.ExtraRoute_dbonly_mixin):
pass pass

View File

@ -28,7 +28,6 @@ from neutron_lib.plugins import utils as plugin_utils
from oslo_utils import uuidutils from oslo_utils import uuidutils
from neutron.db import agents_db from neutron.db import agents_db
from neutron.db import common_db_mixin
from neutron.db import l3_dvr_db from neutron.db import l3_dvr_db
from neutron.db import l3_dvrscheduler_db from neutron.db import l3_dvrscheduler_db
from neutron.db.models import l3 as l3_models from neutron.db.models import l3 as l3_models
@ -43,7 +42,6 @@ _uuid = uuidutils.generate_uuid
class FakeL3Plugin(test_l3.TestL3PluginBaseAttributes, class FakeL3Plugin(test_l3.TestL3PluginBaseAttributes,
common_db_mixin.CommonDbMixin,
l3_dvr_db.L3_NAT_with_dvr_db_mixin, l3_dvr_db.L3_NAT_with_dvr_db_mixin,
l3_dvrscheduler_db.L3_DVRsch_db_mixin, l3_dvrscheduler_db.L3_DVRsch_db_mixin,
agents_db.AgentDbMixin): agents_db.AgentDbMixin):

View File

@ -42,7 +42,6 @@ import testtools
from neutron.agent.common import utils as agent_utils from neutron.agent.common import utils as agent_utils
from neutron.api.rpc.handlers import l3_rpc from neutron.api.rpc.handlers import l3_rpc
from neutron.db import agents_db from neutron.db import agents_db
from neutron.db import common_db_mixin
from neutron.db import l3_agentschedulers_db from neutron.db import l3_agentschedulers_db
from neutron.db import l3_hamode_db from neutron.db import l3_hamode_db
from neutron.objects import l3_hamode from neutron.objects import l3_hamode
@ -56,7 +55,6 @@ _uuid = uuidutils.generate_uuid
class FakeL3PluginWithAgents(test_l3.TestL3PluginBaseAttributes, class FakeL3PluginWithAgents(test_l3.TestL3PluginBaseAttributes,
common_db_mixin.CommonDbMixin,
l3_hamode_db.L3_HA_NAT_db_mixin, l3_hamode_db.L3_HA_NAT_db_mixin,
l3_agentschedulers_db.L3AgentSchedulerDbMixin, l3_agentschedulers_db.L3AgentSchedulerDbMixin,
agents_db.AgentDbMixin): agents_db.AgentDbMixin):

View File

@ -13,7 +13,6 @@
import mock import mock
from neutron_lib.api.definitions import port_security as psec from neutron_lib.api.definitions import port_security as psec
from neutron.db import common_db_mixin
from neutron.db import portsecurity_db_common as pdc from neutron.db import portsecurity_db_common as pdc
from neutron.objects import base as objects_base from neutron.objects import base as objects_base
from neutron.objects import network from neutron.objects import network
@ -21,7 +20,7 @@ from neutron.objects.port.extensions import port_security as p_ps
from neutron.tests import base from neutron.tests import base
class FakePlugin(pdc.PortSecurityDbCommon, common_db_mixin.CommonDbMixin): class FakePlugin(pdc.PortSecurityDbCommon):
pass pass

View File

@ -23,7 +23,6 @@ from neutron_lib import context
import sqlalchemy import sqlalchemy
import testtools import testtools
from neutron.db import common_db_mixin
from neutron.db import securitygroups_db from neutron.db import securitygroups_db
from neutron.extensions import securitygroup from neutron.extensions import securitygroup
from neutron.services.revisions import revision_plugin from neutron.services.revisions import revision_plugin
@ -61,8 +60,7 @@ def fake_callback(resource, event, *args, **kwargs):
raise KeyError('bar') raise KeyError('bar')
class SecurityGroupDbMixinImpl(securitygroups_db.SecurityGroupDbMixin, class SecurityGroupDbMixinImpl(securitygroups_db.SecurityGroupDbMixin):
common_db_mixin.CommonDbMixin):
pass pass

View File

@ -44,7 +44,6 @@ from webob import exc
from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api
from neutron.api.rpc.handlers import l3_rpc from neutron.api.rpc.handlers import l3_rpc
from neutron.db import common_db_mixin
from neutron.db import db_base_plugin_v2 from neutron.db import db_base_plugin_v2
from neutron.db import dns_db from neutron.db import dns_db
from neutron.db import external_net_db from neutron.db import external_net_db
@ -336,7 +335,6 @@ class TestNoL3NatPlugin(TestL3NatBasePlugin):
# A L3 routing service plugin class for tests with plugins that # A L3 routing service plugin class for tests with plugins that
# delegate away L3 routing functionality # delegate away L3 routing functionality
class TestL3NatServicePlugin(TestL3PluginBaseAttributes, class TestL3NatServicePlugin(TestL3PluginBaseAttributes,
common_db_mixin.CommonDbMixin,
l3_dvr_db.L3_NAT_with_dvr_db_mixin, l3_dvr_db.L3_NAT_with_dvr_db_mixin,
l3_db.L3_NAT_db_mixin, dns_db.DNSDbMixin): l3_db.L3_NAT_db_mixin, dns_db.DNSDbMixin):

View File

@ -17,7 +17,6 @@ from neutron_lib import constants as lib_const
from neutron_lib.plugins import constants from neutron_lib.plugins import constants
from neutron.db.availability_zone import router as router_az_db from neutron.db.availability_zone import router as router_az_db
from neutron.db import common_db_mixin
from neutron.db import l3_agentschedulers_db from neutron.db import l3_agentschedulers_db
from neutron.db import l3_db from neutron.db import l3_db
from neutron.extensions import l3 from neutron.extensions import l3
@ -32,8 +31,7 @@ class AZL3ExtensionManager(test_az.AZExtensionManager):
l3.L3.get_resources()) l3.L3.get_resources())
class AZRouterTestPlugin(common_db_mixin.CommonDbMixin, class AZRouterTestPlugin(l3_db.L3_NAT_db_mixin,
l3_db.L3_NAT_db_mixin,
router_az_db.RouterAvailabilityZoneMixin, router_az_db.RouterAvailabilityZoneMixin,
l3_agentschedulers_db.AZL3AgentSchedulerDbMixin): l3_agentschedulers_db.AZL3AgentSchedulerDbMixin):
supported_extension_aliases = [l3_apidef.ALIAS, supported_extension_aliases = [l3_apidef.ALIAS,

View File

@ -30,7 +30,6 @@ from oslo_serialization import jsonutils
import testtools import testtools
from neutron.db import agents_db from neutron.db import agents_db
from neutron.db import common_db_mixin
from neutron.db import l3_agentschedulers_db from neutron.db import l3_agentschedulers_db
from neutron.db import l3_hamode_db from neutron.db import l3_hamode_db
from neutron.plugins.ml2 import driver_context from neutron.plugins.ml2 import driver_context
@ -59,8 +58,7 @@ DEVICE_OWNER_COMPUTE = constants.DEVICE_OWNER_COMPUTE_PREFIX + 'fake'
DEVICE_OWNER_ROUTER_HA_INTF = constants.DEVICE_OWNER_ROUTER_HA_INTF + 'fake' DEVICE_OWNER_ROUTER_HA_INTF = constants.DEVICE_OWNER_ROUTER_HA_INTF + 'fake'
class FakeL3PluginWithAgents(common_db_mixin.CommonDbMixin, class FakeL3PluginWithAgents(l3_hamode_db.L3_HA_NAT_db_mixin,
l3_hamode_db.L3_HA_NAT_db_mixin,
l3_agentschedulers_db.L3AgentSchedulerDbMixin, l3_agentschedulers_db.L3AgentSchedulerDbMixin,
agents_db.AgentDbMixin): agents_db.AgentDbMixin):
pass pass

View File

@ -26,7 +26,6 @@ from oslo_utils import uuidutils
import testscenarios import testscenarios
from neutron.db import agentschedulers_db as sched_db from neutron.db import agentschedulers_db as sched_db
from neutron.db import common_db_mixin
from neutron.objects import agent from neutron.objects import agent
from neutron.objects import network as network_obj from neutron.objects import network as network_obj
from neutron.scheduler import dhcp_agent_scheduler from neutron.scheduler import dhcp_agent_scheduler
@ -405,8 +404,7 @@ class TestAutoScheduleSegments(test_plugin.Ml2PluginV2TestCase,
class TestNetworksFailover(TestDhcpSchedulerBaseTestCase, class TestNetworksFailover(TestDhcpSchedulerBaseTestCase,
sched_db.DhcpAgentSchedulerDbMixin, sched_db.DhcpAgentSchedulerDbMixin):
common_db_mixin.CommonDbMixin):
def test_reschedule_network_from_down_agent(self): def test_reschedule_network_from_down_agent(self):
net_id = uuidutils.generate_uuid() net_id = uuidutils.generate_uuid()
agents = self._create_and_set_agents_down(['host-a', 'host-b'], 1) agents = self._create_and_set_agents_down(['host-a', 'host-b'], 1)