load interface_driver using a symbolic name

Instead of relying on a full class path let's use symbolic names and
namespaces from setup.cfg which relies on stevedore to use a proper
class. This can only be used for code-paths that do not rely on direct
usage of importlib which is not the case for the metering agent, which
is why its config is left untouched.

Co-Authored-By: Anton Kremenetsky <akremenetsky@dev.rtsoft.ru>
Co-Authored-By: Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
Change-Id: I4d3389a0fe376fed87265f51fdd69caf14fb3b16
Closes-Bug: #1747964
This commit is contained in:
Anton Kremenetsky 2018-02-07 20:27:07 +03:00 committed by Dmitrii Shcherbakov
parent 07baa05788
commit bf0cdcf9ee
6 changed files with 80 additions and 11 deletions

View File

@ -4,7 +4,7 @@
############################################################################### ###############################################################################
[DEFAULT] [DEFAULT]
state_path = /var/lib/neutron state_path = /var/lib/neutron
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver interface_driver = openvswitch
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
debug = {{ debug }} debug = {{ debug }}

View File

@ -0,0 +1,28 @@
###############################################################################
# [ WARNING ]
# Configuration file maintained by Juju. Local changes may be overwritten.
###############################################################################
[DEFAULT]
interface_driver = openvswitch
auth_url = {{ service_protocol }}://{{ keystone_host }}:{{ service_port }}/v2.0
auth_region = {{ region }}
admin_tenant_name = {{ service_tenant }}
admin_user = {{ service_username }}
admin_password = {{ service_password }}
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
handle_internal_only_routers = {{ handle_internal_only_router }}
{% if plugin == 'n1kv' %}
l3_agent_manager = neutron.agent.l3_agent.L3NATAgentWithStateReport
external_network_bridge = br-int
ovs_use_veth = False
use_namespaces = True
{% else %}
ovs_use_veth = True
{% endif %}
{% if external_configuration_new -%}
gateway_external_network_id =
external_network_bridge =
{% elif ext_net_id %}
gateway_external_network_id = {{ ext_net_id }}
{% endif -%}
agent_mode = {{ agent_mode }}

View File

@ -0,0 +1,13 @@
# kilo
###############################################################################
# [ WARNING ]
# Configuration file maintained by Juju. Local changes may be overwritten.
###############################################################################
[DEFAULT]
periodic_interval = 10
interface_driver = openvswitch
ovs_use_veth = False
device_driver = neutron_lbaas.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
[haproxy]
loadbalancer_state_path = $state_path/lbaas
user_group = nogroup

View File

@ -4,7 +4,7 @@
# Configuration file maintained by Juju. Local changes may be overwritten. # Configuration file maintained by Juju. Local changes may be overwritten.
############################################################################### ###############################################################################
[DEFAULT] [DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver interface_driver = openvswitch
auth_url = {{ service_protocol }}://{{ keystone_host }}:{{ service_port }}/v2.0 auth_url = {{ service_protocol }}://{{ keystone_host }}:{{ service_port }}/v2.0
auth_region = {{ region }} auth_region = {{ region }}
admin_tenant_name = {{ service_tenant }} admin_tenant_name = {{ service_tenant }}

View File

@ -4,7 +4,7 @@
# Configuration file maintained by Juju. Local changes may be overwritten. # Configuration file maintained by Juju. Local changes may be overwritten.
############################################################################### ###############################################################################
[DEFAULT] [DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver interface_driver = openvswitch
device_driver = neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver device_driver = neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
[haproxy] [haproxy]
loadbalancer_state_path = $state_path/lbaas loadbalancer_state_path = $state_path/lbaas

View File

@ -15,6 +15,9 @@ from charmhelpers.contrib.openstack.amulet.utils import (
# ERROR # ERROR
) )
from charmhelpers.contrib.openstack.utils import (
CompareOpenStackReleases,
)
# Use DEBUG to turn on debug logging # Use DEBUG to turn on debug logging
u = OpenStackAmuletUtils(DEBUG) u = OpenStackAmuletUtils(DEBUG)
@ -597,10 +600,18 @@ class NeutronGatewayBasicDeployment(OpenStackAmuletDeployment):
u.log.debug('Checking neutron gateway dhcp agent config file data...') u.log.debug('Checking neutron gateway dhcp agent config file data...')
unit = self.neutron_gateway_sentry unit = self.neutron_gateway_sentry
conf = '/etc/neutron/dhcp_agent.ini' conf = '/etc/neutron/dhcp_agent.ini'
cmp_os_release = CompareOpenStackReleases(
self._get_openstack_release_string()
)
if cmp_os_release >= 'mitaka':
interface_driver = 'openvswitch'
else:
interface_driver = ('neutron.agent.linux.interface.'
'OVSInterfaceDriver')
expected = { expected = {
'state_path': '/var/lib/neutron', 'state_path': '/var/lib/neutron',
'interface_driver': 'neutron.agent.linux.interface.' 'interface_driver': interface_driver,
'OVSInterfaceDriver',
'dhcp_driver': 'neutron.agent.linux.dhcp.Dnsmasq', 'dhcp_driver': 'neutron.agent.linux.dhcp.Dnsmasq',
'root_helper': 'sudo /usr/bin/neutron-rootwrap ' 'root_helper': 'sudo /usr/bin/neutron-rootwrap '
'/etc/neutron/rootwrap.conf', '/etc/neutron/rootwrap.conf',
@ -653,9 +664,17 @@ class NeutronGatewayBasicDeployment(OpenStackAmuletDeployment):
interface='publicURL') interface='publicURL')
conf = '/etc/neutron/l3_agent.ini' conf = '/etc/neutron/l3_agent.ini'
cmp_os_release = CompareOpenStackReleases(
self._get_openstack_release_string()
)
if cmp_os_release >= 'mitaka':
interface_driver = 'openvswitch'
else:
interface_driver = ('neutron.agent.linux.interface.'
'OVSInterfaceDriver')
expected = { expected = {
'interface_driver': 'neutron.agent.linux.interface.' 'interface_driver': interface_driver,
'OVSInterfaceDriver',
'auth_url': ep, 'auth_url': ep,
'auth_region': 'RegionOne', 'auth_region': 'RegionOne',
'admin_tenant_name': 'services', 'admin_tenant_name': 'services',
@ -679,10 +698,17 @@ class NeutronGatewayBasicDeployment(OpenStackAmuletDeployment):
unit = self.neutron_gateway_sentry unit = self.neutron_gateway_sentry
conf = '/etc/neutron/lbaas_agent.ini' conf = '/etc/neutron/lbaas_agent.ini'
cmp_os_release = CompareOpenStackReleases(
self._get_openstack_release_string()
)
if cmp_os_release >= 'mitaka':
interface_driver = 'openvswitch'
else:
interface_driver = ('neutron.agent.linux.interface.'
'OVSInterfaceDriver')
expected = { expected = {
'DEFAULT': { 'DEFAULT': {
'interface_driver': 'neutron.agent.linux.interface.' 'interface_driver': interface_driver,
'OVSInterfaceDriver',
'periodic_interval': '10', 'periodic_interval': '10',
'ovs_use_veth': 'False', 'ovs_use_veth': 'False',
}, },
@ -753,13 +779,15 @@ class NeutronGatewayBasicDeployment(OpenStackAmuletDeployment):
'config file data...') 'config file data...')
unit = self.neutron_gateway_sentry unit = self.neutron_gateway_sentry
conf = '/etc/neutron/metering_agent.ini' conf = '/etc/neutron/metering_agent.ini'
interface_driver = ('neutron.agent.linux.interface.'
'OVSInterfaceDriver')
expected = { expected = {
'driver': 'neutron.services.metering.drivers.iptables.' 'driver': 'neutron.services.metering.drivers.iptables.'
'iptables_driver.IptablesMeteringDriver', 'iptables_driver.IptablesMeteringDriver',
'measure_interval': '30', 'measure_interval': '30',
'report_interval': '300', 'report_interval': '300',
'interface_driver': 'neutron.agent.linux.interface.' 'interface_driver': interface_driver,
'OVSInterfaceDriver',
'use_namespaces': 'True' 'use_namespaces': 'True'
} }
section = 'DEFAULT' section = 'DEFAULT'