From dc136094352f02c0b5770630c0464b9922501a1e Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Thu, 9 Aug 2018 21:02:01 +0000 Subject: [PATCH] Update metering driver to load interface driver Currently the metering iptables driver is using the old method to load the interface driver. This patch allows it to load interface driver via stevedore aliases. Change-Id: I9e3027c1ec695ec3a09db0c53a0388e406e4ced6 Related-Bug: #1504536 (cherry-picked from commit 38309ca4dc79e033a7b8384f4e9f1224c5a69524) --- .../metering/drivers/iptables/iptables_driver.py | 9 ++------- ...es-driver-load-interface-driver-ca397f1db40ec643.yaml | 7 +++++++ 2 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 releasenotes/notes/metering-iptables-driver-load-interface-driver-ca397f1db40ec643.yaml diff --git a/neutron/services/metering/drivers/iptables/iptables_driver.py b/neutron/services/metering/drivers/iptables/iptables_driver.py index 767528c3429..d736a30c8da 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 interface @@ -109,11 +108,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``