diff --git a/neutron/services/metering/drivers/iptables/iptables_driver.py b/neutron/services/metering/drivers/iptables/iptables_driver.py index e00d515c350..69c3955a421 100644 --- a/neutron/services/metering/drivers/iptables/iptables_driver.py +++ b/neutron/services/metering/drivers/iptables/iptables_driver.py @@ -15,9 +15,8 @@ from oslo_config import cfg from oslo_log import helpers as log_helpers from oslo_log import log as logging -from oslo_utils import importutils -from neutron._i18n import _ +from neutron.agent.common import utils as common_utils from neutron.agent.l3 import dvr_snat_ns from neutron.agent.l3 import namespaces from neutron.agent.linux import ip_lib @@ -107,11 +106,7 @@ class IptablesMeteringDriver(abstract_driver.MeteringAbstractDriver): self.conf = conf or cfg.CONF self.routers = {} - if not self.conf.interface_driver: - raise SystemExit(_('An interface driver must be specified')) - LOG.info("Loading interface driver %s", self.conf.interface_driver) - self.driver = importutils.import_object(self.conf.interface_driver, - self.conf) + self.driver = common_utils.load_interface_driver(self.conf) def _update_router(self, router): r = self.routers.get(router['id'], diff --git a/releasenotes/notes/metering-iptables-driver-load-interface-driver-ca397f1db40ec643.yaml b/releasenotes/notes/metering-iptables-driver-load-interface-driver-ca397f1db40ec643.yaml new file mode 100644 index 00000000000..997b232fc03 --- /dev/null +++ b/releasenotes/notes/metering-iptables-driver-load-interface-driver-ca397f1db40ec643.yaml @@ -0,0 +1,7 @@ +--- +other: + - | + The metering agent iptables driver can now load its interface driver by + using a stevedore alias in the ``metering_agent.ini`` file. For example, + ``interface_driver = openvswitch`` instead of + ``interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver``