Rework support for mitaka b2 milestone
This commit is contained in:
commit
1c64a6c64c
@ -84,6 +84,7 @@ GIT_PACKAGE_BLACKLIST = [
|
||||
'neutron-server',
|
||||
'neutron-plugin-openvswitch',
|
||||
'neutron-plugin-openvswitch-agent',
|
||||
'neutron-openvswitch-agent',
|
||||
]
|
||||
|
||||
NOVA_CONF_DIR = "/etc/nova"
|
||||
@ -94,6 +95,7 @@ NEUTRON_DEFAULT = '/etc/default/neutron-server'
|
||||
NEUTRON_L3_AGENT_CONF = "/etc/neutron/l3_agent.ini"
|
||||
NEUTRON_FWAAS_CONF = "/etc/neutron/fwaas_driver.ini"
|
||||
ML2_CONF = '%s/plugins/ml2/ml2_conf.ini' % NEUTRON_CONF_DIR
|
||||
OVS_CONF = '%s/plugins/ml2/openvswitch_agent.ini' % NEUTRON_CONF_DIR
|
||||
EXT_PORT_CONF = '/etc/init/ext-port.conf'
|
||||
NEUTRON_METADATA_AGENT_CONF = "/etc/neutron/metadata_agent.ini"
|
||||
DVR_PACKAGES = ['neutron-l3-agent']
|
||||
@ -114,6 +116,10 @@ BASE_RESOURCE_MAP = OrderedDict([
|
||||
'services': ['neutron-plugin-openvswitch-agent'],
|
||||
'contexts': [neutron_ovs_context.OVSPluginContext()],
|
||||
}),
|
||||
(OVS_CONF, {
|
||||
'services': ['neutron-openvswitch-agent'],
|
||||
'contexts': [neutron_ovs_context.OVSPluginContext()],
|
||||
}),
|
||||
(PHY_NIC_MTU_CONF, {
|
||||
'services': ['os-charm-phy-nic-mtu'],
|
||||
'contexts': [context.PhyNICMTUContext()],
|
||||
@ -193,6 +199,11 @@ def determine_packages():
|
||||
if p in pkgs:
|
||||
pkgs.remove(p)
|
||||
|
||||
release = os_release('neutron-common', base='icehouse')
|
||||
if release >= 'mitaka' and 'neutron-plugin-openvswitch-agent' in pkgs:
|
||||
pkgs.remove('neutron-plugin-openvswitch-agent')
|
||||
pkgs.append('neutron-openvswitch-agent')
|
||||
|
||||
return pkgs
|
||||
|
||||
|
||||
@ -221,6 +232,19 @@ def resource_map():
|
||||
resource_map.update(DHCP_RESOURCE_MAP)
|
||||
metadata_services = ['neutron-metadata-agent', 'neutron-dhcp-agent']
|
||||
resource_map[NEUTRON_CONF]['services'] += metadata_services
|
||||
# Remap any service names as required
|
||||
if os_release('neutron-common', base='icehouse') >= 'mitaka':
|
||||
# ml2_conf.ini -> openvswitch_agent.ini
|
||||
del resource_map[ML2_CONF]
|
||||
# drop of -plugin from service name
|
||||
resource_map[NEUTRON_CONF]['services'].remove(
|
||||
'neutron-plugin-openvswitch-agent'
|
||||
)
|
||||
resource_map[NEUTRON_CONF]['services'].append(
|
||||
'neutron-openvswitch-agent'
|
||||
)
|
||||
else:
|
||||
del resource_map[OVS_CONF]
|
||||
return resource_map
|
||||
|
||||
|
||||
|
27
templates/mitaka/openvswitch_agent.ini
Normal file
27
templates/mitaka/openvswitch_agent.ini
Normal file
@ -0,0 +1,27 @@
|
||||
# mitaka
|
||||
###############################################################################
|
||||
# [ WARNING ]
|
||||
# Configuration file maintained by Juju. Local changes may be overwritten.
|
||||
# Config managed by neutron-openvswitch charm
|
||||
###############################################################################
|
||||
[ovs]
|
||||
enable_tunneling = True
|
||||
local_ip = {{ local_ip }}
|
||||
bridge_mappings = {{ bridge_mappings }}
|
||||
|
||||
[agent]
|
||||
tunnel_types = {{ overlay_network_type }}
|
||||
l2_population = {{ l2_population }}
|
||||
enable_distributed_routing = {{ distributed_routing }}
|
||||
prevent_arp_spoofing = {{ prevent_arp_spoofing }}
|
||||
{% if veth_mtu -%}
|
||||
veth_mtu = {{ veth_mtu }}
|
||||
{% endif -%}
|
||||
|
||||
[securitygroup]
|
||||
{% if neutron_security_groups -%}
|
||||
enable_security_group = True
|
||||
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
|
||||
{% else -%}
|
||||
enable_security_group = False
|
||||
{% endif -%}
|
@ -9,7 +9,7 @@ from charmhelpers.contrib.openstack.amulet.deployment import (
|
||||
OpenStackAmuletDeployment
|
||||
)
|
||||
|
||||
# This file needs de-linted. The (mis)use of n-o q-a below causes all lint
|
||||
# This file needs de-linted. The (mis)use of n-o q-a below causes all lint
|
||||
# to go undetected. Remove that & fixme.
|
||||
from charmhelpers.contrib.openstack.amulet.utils import (
|
||||
OpenStackAmuletUtils,
|
||||
@ -67,7 +67,7 @@ class NeutronOVSBasicDeployment(OpenStackAmuletDeployment):
|
||||
def _add_relations(self):
|
||||
"""Add all of the relations for the services."""
|
||||
relations = {
|
||||
'neutron-openvswitch:amqp': 'rabbitmq-server:amqp',
|
||||
'neutron-openvswitch:amqp': 'rabbitmq-server:amqp',
|
||||
'neutron-openvswitch:neutron-plugin':
|
||||
'nova-compute:neutron-plugin',
|
||||
'neutron-openvswitch:neutron-plugin-api':
|
||||
@ -160,6 +160,12 @@ class NeutronOVSBasicDeployment(OpenStackAmuletDeployment):
|
||||
self.neutron_api_sentry: ['neutron-server'],
|
||||
}
|
||||
|
||||
if self._get_openstack_release() >= self.trusty_mitaka:
|
||||
services[self.compute_sentry] = [
|
||||
'nova-compute',
|
||||
'neutron-openvswitch-agent'
|
||||
]
|
||||
|
||||
ret = u.validate_services_by_name(services)
|
||||
if ret:
|
||||
amulet.raise_status(amulet.FAIL, msg=ret)
|
||||
@ -218,7 +224,10 @@ class NeutronOVSBasicDeployment(OpenStackAmuletDeployment):
|
||||
|
||||
# Needs love - test actions not clear in log
|
||||
unit = self.compute_sentry
|
||||
conf = "/etc/neutron/plugins/ml2/ml2_conf.ini"
|
||||
if self._get_openstack_release() >= self.trusty_mitaka:
|
||||
conf = "/etc/neutron/plugins/ml2/openvswitch_agent.ini"
|
||||
else:
|
||||
conf = "/etc/neutron/plugins/ml2/ml2_conf.ini"
|
||||
for value in vpair:
|
||||
self.d.configure(service, {charm_key: value})
|
||||
time.sleep(60)
|
||||
@ -253,7 +262,10 @@ class NeutronOVSBasicDeployment(OpenStackAmuletDeployment):
|
||||
|
||||
# Needs love - not idempotent
|
||||
unit = self.compute_sentry
|
||||
conf = "/etc/neutron/plugins/ml2/ml2_conf.ini"
|
||||
if self._get_openstack_release() >= self.trusty_mitaka:
|
||||
conf = "/etc/neutron/plugins/ml2/openvswitch_agent.ini"
|
||||
else:
|
||||
conf = "/etc/neutron/plugins/ml2/ml2_conf.ini"
|
||||
self.d.configure('neutron-api', {'neutron-security-groups': 'True'})
|
||||
self.d.configure('neutron-openvswitch',
|
||||
{'disable-security-groups': 'True'})
|
||||
|
@ -111,12 +111,29 @@ class TestNeutronOVSUtils(CharmTestCase):
|
||||
self.test_config.set('enable-local-dhcp-and-metadata', False)
|
||||
_git_requested.return_value = False
|
||||
_use_dvr.return_value = False
|
||||
_os_rel.return_value = 'trusty'
|
||||
_os_rel.return_value = 'icehouse'
|
||||
self.os_release.return_value = 'icehouse'
|
||||
_head_pkgs.return_value = head_pkg
|
||||
pkg_list = nutils.determine_packages()
|
||||
expect = ['neutron-plugin-openvswitch-agent', head_pkg]
|
||||
self.assertItemsEqual(pkg_list, expect)
|
||||
|
||||
@patch.object(nutils, 'use_dvr')
|
||||
@patch.object(nutils, 'git_install_requested')
|
||||
@patch.object(charmhelpers.contrib.openstack.neutron, 'os_release')
|
||||
@patch.object(charmhelpers.contrib.openstack.neutron, 'headers_package')
|
||||
def test_determine_packages_mitaka(self, _head_pkgs, _os_rel,
|
||||
_git_requested, _use_dvr):
|
||||
self.test_config.set('enable-local-dhcp-and-metadata', False)
|
||||
_git_requested.return_value = False
|
||||
_use_dvr.return_value = False
|
||||
_os_rel.return_value = 'mitaka'
|
||||
self.os_release.return_value = 'mitaka'
|
||||
_head_pkgs.return_value = head_pkg
|
||||
pkg_list = nutils.determine_packages()
|
||||
expect = ['neutron-openvswitch-agent', head_pkg]
|
||||
self.assertItemsEqual(pkg_list, expect)
|
||||
|
||||
@patch.object(nutils, 'use_dvr')
|
||||
@patch.object(nutils, 'git_install_requested')
|
||||
@patch.object(charmhelpers.contrib.openstack.neutron, 'os_release')
|
||||
@ -126,7 +143,8 @@ class TestNeutronOVSUtils(CharmTestCase):
|
||||
self.test_config.set('enable-local-dhcp-and-metadata', True)
|
||||
_git_requested.return_value = False
|
||||
_use_dvr.return_value = False
|
||||
_os_rel.return_value = 'trusty'
|
||||
_os_rel.return_value = 'icehouse'
|
||||
self.os_release.return_value = 'icehouse'
|
||||
_head_pkgs.return_value = head_pkg
|
||||
pkg_list = nutils.determine_packages()
|
||||
expect = ['neutron-plugin-openvswitch-agent', head_pkg,
|
||||
@ -142,7 +160,8 @@ class TestNeutronOVSUtils(CharmTestCase):
|
||||
self.test_config.set('enable-local-dhcp-and-metadata', False)
|
||||
_git_requested.return_value = True
|
||||
_use_dvr.return_value = True
|
||||
_os_rel.return_value = 'trusty'
|
||||
_os_rel.return_value = 'icehouse'
|
||||
self.os_release.return_value = 'icehouse'
|
||||
_head_pkgs.return_value = head_pkg
|
||||
pkg_list = nutils.determine_packages()
|
||||
self.assertFalse('neutron-l3-agent' in pkg_list)
|
||||
@ -159,7 +178,7 @@ class TestNeutronOVSUtils(CharmTestCase):
|
||||
self.ctxts.append(ctxt)
|
||||
|
||||
_use_dvr.return_value = False
|
||||
self.os_release.return_value = 'trusty'
|
||||
self.os_release.return_value = 'icehouse'
|
||||
templating.OSConfigRenderer.side_effect = _mock_OSConfigRenderer
|
||||
_regconfs = nutils.register_configs()
|
||||
confs = ['/etc/neutron/neutron.conf',
|
||||
@ -167,18 +186,50 @@ class TestNeutronOVSUtils(CharmTestCase):
|
||||
'/etc/init/os-charm-phy-nic-mtu.conf']
|
||||
self.assertItemsEqual(_regconfs.configs, confs)
|
||||
|
||||
@patch.object(nutils, 'use_dvr')
|
||||
def test_register_configs_mitaka(self, _use_dvr):
|
||||
class _mock_OSConfigRenderer():
|
||||
def __init__(self, templates_dir=None, openstack_release=None):
|
||||
self.configs = []
|
||||
self.ctxts = []
|
||||
|
||||
def register(self, config, ctxt):
|
||||
self.configs.append(config)
|
||||
self.ctxts.append(ctxt)
|
||||
|
||||
_use_dvr.return_value = False
|
||||
self.os_release.return_value = 'mitaka'
|
||||
templating.OSConfigRenderer.side_effect = _mock_OSConfigRenderer
|
||||
_regconfs = nutils.register_configs()
|
||||
confs = ['/etc/neutron/neutron.conf',
|
||||
'/etc/neutron/plugins/ml2/openvswitch_agent.ini',
|
||||
'/etc/init/os-charm-phy-nic-mtu.conf']
|
||||
self.assertItemsEqual(_regconfs.configs, confs)
|
||||
|
||||
@patch.object(nutils, 'use_dvr')
|
||||
def test_resource_map(self, _use_dvr):
|
||||
_use_dvr.return_value = False
|
||||
self.os_release.return_value = 'icehouse'
|
||||
_map = nutils.resource_map()
|
||||
svcs = ['neutron-plugin-openvswitch-agent']
|
||||
confs = [nutils.NEUTRON_CONF]
|
||||
[self.assertIn(q_conf, _map.keys()) for q_conf in confs]
|
||||
self.assertEqual(_map[nutils.NEUTRON_CONF]['services'], svcs)
|
||||
|
||||
@patch.object(nutils, 'use_dvr')
|
||||
def test_resource_map_mitaka(self, _use_dvr):
|
||||
_use_dvr.return_value = False
|
||||
self.os_release.return_value = 'mitaka'
|
||||
_map = nutils.resource_map()
|
||||
svcs = ['neutron-openvswitch-agent']
|
||||
confs = [nutils.NEUTRON_CONF]
|
||||
[self.assertIn(q_conf, _map.keys()) for q_conf in confs]
|
||||
self.assertEqual(_map[nutils.NEUTRON_CONF]['services'], svcs)
|
||||
|
||||
@patch.object(nutils, 'use_dvr')
|
||||
def test_resource_map_dvr(self, _use_dvr):
|
||||
_use_dvr.return_value = True
|
||||
self.os_release.return_value = 'icehouse'
|
||||
_map = nutils.resource_map()
|
||||
svcs = ['neutron-plugin-openvswitch-agent', 'neutron-metadata-agent',
|
||||
'neutron-l3-agent']
|
||||
|
Loading…
x
Reference in New Issue
Block a user