Fixups for liberty b3 support
This commit is contained in:
parent
52f549a7ba
commit
d36d90689e
@ -114,6 +114,8 @@ API_PORTS = {
|
|||||||
NEUTRON_CONF_DIR = "/etc/neutron"
|
NEUTRON_CONF_DIR = "/etc/neutron"
|
||||||
|
|
||||||
NEUTRON_CONF = '%s/neutron.conf' % NEUTRON_CONF_DIR
|
NEUTRON_CONF = '%s/neutron.conf' % NEUTRON_CONF_DIR
|
||||||
|
NEUTRON_LBAAS_CONF = '%s/neutron_lbaas.conf' % NEUTRON_CONF_DIR
|
||||||
|
NEUTRON_VPNAAS_CONF = '%s/neutron_vpnaas.conf' % NEUTRON_CONF_DIR
|
||||||
HAPROXY_CONF = '/etc/haproxy/haproxy.cfg'
|
HAPROXY_CONF = '/etc/haproxy/haproxy.cfg'
|
||||||
APACHE_CONF = '/etc/apache2/sites-available/openstack_https_frontend'
|
APACHE_CONF = '/etc/apache2/sites-available/openstack_https_frontend'
|
||||||
APACHE_24_CONF = '/etc/apache2/sites-available/openstack_https_frontend.conf'
|
APACHE_24_CONF = '/etc/apache2/sites-available/openstack_https_frontend.conf'
|
||||||
@ -158,6 +160,16 @@ BASE_RESOURCE_MAP = OrderedDict([
|
|||||||
}),
|
}),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
LIBERTY_RESOURCE_MAP = OrderedDict([
|
||||||
|
(NEUTRON_LBAAS_CONF, {
|
||||||
|
'services': ['neutron-server'],
|
||||||
|
'contexts': [],
|
||||||
|
}),
|
||||||
|
(NEUTRON_VPNAAS_CONF, {
|
||||||
|
'services': ['neutron-server'],
|
||||||
|
'contexts': [],
|
||||||
|
}),
|
||||||
|
])
|
||||||
|
|
||||||
def api_port(service):
|
def api_port(service):
|
||||||
return API_PORTS[service]
|
return API_PORTS[service]
|
||||||
@ -238,12 +250,16 @@ def determine_ports():
|
|||||||
return list(set(ports))
|
return list(set(ports))
|
||||||
|
|
||||||
|
|
||||||
def resource_map():
|
def resource_map(release=None):
|
||||||
'''
|
'''
|
||||||
Dynamically generate a map of resources that will be managed for a single
|
Dynamically generate a map of resources that will be managed for a single
|
||||||
hook execution.
|
hook execution.
|
||||||
'''
|
'''
|
||||||
|
release = release or os_release('neutron-common')
|
||||||
|
|
||||||
resource_map = deepcopy(BASE_RESOURCE_MAP)
|
resource_map = deepcopy(BASE_RESOURCE_MAP)
|
||||||
|
if release >= 'liberty':
|
||||||
|
resource_map.update(LIBERTY_RESOURCE_MAP)
|
||||||
|
|
||||||
if os.path.exists('/etc/apache2/conf-available'):
|
if os.path.exists('/etc/apache2/conf-available'):
|
||||||
resource_map.pop(APACHE_CONF)
|
resource_map.pop(APACHE_CONF)
|
||||||
|
104
templates/liberty/neutron.conf
Normal file
104
templates/liberty/neutron.conf
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# liberty
|
||||||
|
###############################################################################
|
||||||
|
# [ WARNING ]
|
||||||
|
# Configuration file maintained by Juju. Local changes may be overwritten.
|
||||||
|
# Restart trigger {{ restart_trigger }}
|
||||||
|
###############################################################################
|
||||||
|
[DEFAULT]
|
||||||
|
verbose = {{ verbose }}
|
||||||
|
debug = {{ debug }}
|
||||||
|
use_syslog = {{ use_syslog }}
|
||||||
|
state_path = /var/lib/neutron
|
||||||
|
bind_host = {{ bind_host }}
|
||||||
|
auth_strategy = keystone
|
||||||
|
notification_driver = neutron.openstack.common.notifier.rpc_notifier
|
||||||
|
api_workers = {{ workers }}
|
||||||
|
rpc_workers = {{ workers }}
|
||||||
|
|
||||||
|
router_distributed = {{ enable_dvr }}
|
||||||
|
|
||||||
|
l3_ha = {{ l3_ha }}
|
||||||
|
{% if l3_ha -%}
|
||||||
|
max_l3_agents_per_router = {{ max_l3_agents_per_router }}
|
||||||
|
min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if neutron_bind_port -%}
|
||||||
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
{% else -%}
|
||||||
|
bind_port = 9696
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if core_plugin -%}
|
||||||
|
core_plugin = {{ core_plugin }}
|
||||||
|
{% if service_plugins -%}
|
||||||
|
service_plugins = {{ service_plugins }}
|
||||||
|
{% else -%}
|
||||||
|
{% if neutron_plugin in ['ovs', 'ml2', 'Calico'] -%}
|
||||||
|
service_plugins = router,firewall,lbaas,vpnaas,metering
|
||||||
|
{% endif -%}
|
||||||
|
{% endif -%}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if neutron_security_groups -%}
|
||||||
|
allow_overlapping_ips = True
|
||||||
|
{% if neutron_plugin == 'Calico' -%}
|
||||||
|
neutron_firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
||||||
|
{% else -%}
|
||||||
|
neutron_firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
|
||||||
|
{% endif -%}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if neutron_plugin == 'Calico' -%}
|
||||||
|
dhcp_agents_per_network = 1000
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
notify_nova_on_port_status_changes = True
|
||||||
|
notify_nova_on_port_data_changes = True
|
||||||
|
nova_url = {{ nova_url }}
|
||||||
|
nova_region_name = {{ region }}
|
||||||
|
{% if auth_host -%}
|
||||||
|
nova_admin_username = {{ admin_user }}
|
||||||
|
nova_admin_tenant_id = {{ admin_tenant_id }}
|
||||||
|
nova_admin_password = {{ admin_password }}
|
||||||
|
nova_admin_auth_url = {{ auth_protocol }}://{{ auth_host }}:{{ auth_port }}/v2.0
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if sections and 'DEFAULT' in sections -%}
|
||||||
|
{% for key, value in sections['DEFAULT'] -%}
|
||||||
|
{{ key }} = {{ value }}
|
||||||
|
{% endfor -%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% include "section-zeromq" %}
|
||||||
|
|
||||||
|
[quotas]
|
||||||
|
quota_driver = neutron.db.quota_db.DbQuotaDriver
|
||||||
|
{% if neutron_security_groups -%}
|
||||||
|
quota_items = network,subnet,port,security_group,security_group_rule
|
||||||
|
quota_security_group = {{ quota_security_group }}
|
||||||
|
quota_security_group_rule = {{ quota_security_group_rule }}
|
||||||
|
{% else -%}
|
||||||
|
quota_items = network,subnet,port
|
||||||
|
{% endif -%}
|
||||||
|
quota_network = {{ quota_network }}
|
||||||
|
quota_subnet = {{ quota_subnet }}
|
||||||
|
quota_port = {{ quota_port }}
|
||||||
|
quota_vip = {{ quota_vip }}
|
||||||
|
quota_pool = {{ quota_pool }}
|
||||||
|
quota_member = {{ quota_member }}
|
||||||
|
quota_health_monitors = {{ quota_health_monitors }}
|
||||||
|
quota_router = {{ quota_router }}
|
||||||
|
quota_floatingip = {{ quota_floatingip }}
|
||||||
|
|
||||||
|
[agent]
|
||||||
|
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
|
||||||
|
|
||||||
|
{% include "section-keystone-authtoken" %}
|
||||||
|
|
||||||
|
{% include "parts/section-database" %}
|
||||||
|
|
||||||
|
{% include "section-rabbitmq-oslo" %}
|
||||||
|
|
||||||
|
[oslo_concurrency]
|
||||||
|
lock_path = $state_path/lock
|
19
templates/liberty/neutron_lbaas.conf
Normal file
19
templates/liberty/neutron_lbaas.conf
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# liberty
|
||||||
|
###############################################################################
|
||||||
|
# [ WARNING ]
|
||||||
|
# Configuration file maintained by Juju. Local changes may be overwritten.
|
||||||
|
###############################################################################
|
||||||
|
# [service_auth]
|
||||||
|
# auth_url = http://127.0.0.1:5000/v2.0
|
||||||
|
# admin_tenant_name = %SERVICE_TENANT_NAME%
|
||||||
|
# admin_user = %SERVICE_USER%
|
||||||
|
# admin_password = %SERVICE_PASSWORD%
|
||||||
|
# admin_user_domain = %SERVICE_USER_DOMAIN%
|
||||||
|
# admin_project_domain = %SERVICE_PROJECT_DOMAIN%
|
||||||
|
# region = %REGION%
|
||||||
|
# service_name = lbaas
|
||||||
|
# auth_version = 2
|
||||||
|
|
||||||
|
[service_providers]
|
||||||
|
service_provider=LOADBALANCER:Haproxy:neutron_lbaas.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
|
||||||
|
service_provider=LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
|
7
templates/liberty/neutron_vpnaas.conf
Normal file
7
templates/liberty/neutron_vpnaas.conf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# liberty
|
||||||
|
###############################################################################
|
||||||
|
# [ WARNING ]
|
||||||
|
# Configuration file maintained by Juju. Local changes may be overwritten.
|
||||||
|
###############################################################################
|
||||||
|
[service_providers]
|
||||||
|
service_provider=VPN:openswan:neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default
|
@ -702,9 +702,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
self.relation_ids.side_effect = self._fake_relids
|
self.relation_ids.side_effect = self._fake_relids
|
||||||
_id_rel_joined = self.patch('identity_joined')
|
_id_rel_joined = self.patch('identity_joined')
|
||||||
hooks.configure_https()
|
hooks.configure_https()
|
||||||
calls = [call('a2dissite', 'openstack_https_frontend'),
|
self.check_call.assert_called_with(['a2ensite', 'openstack_https_frontend'])
|
||||||
call('service', 'apache2', 'reload')]
|
|
||||||
self.check_call.assert_called_has_calls(calls)
|
|
||||||
self.assertTrue(_id_rel_joined.called)
|
self.assertTrue(_id_rel_joined.called)
|
||||||
|
|
||||||
def test_configure_https_nohttps(self):
|
def test_configure_https_nohttps(self):
|
||||||
@ -712,9 +710,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||||||
self.relation_ids.side_effect = self._fake_relids
|
self.relation_ids.side_effect = self._fake_relids
|
||||||
_id_rel_joined = self.patch('identity_joined')
|
_id_rel_joined = self.patch('identity_joined')
|
||||||
hooks.configure_https()
|
hooks.configure_https()
|
||||||
calls = [call('a2dissite', 'openstack_https_frontend'),
|
self.check_call.assert_called_with(['a2dissite', 'openstack_https_frontend'])
|
||||||
call('service', 'apache2', 'reload')]
|
|
||||||
self.check_call.assert_called_has_calls(calls)
|
|
||||||
self.assertTrue(_id_rel_joined.called)
|
self.assertTrue(_id_rel_joined.called)
|
||||||
|
|
||||||
def test_conditional_neutron_migration_icehouse(self):
|
def test_conditional_neutron_migration_icehouse(self):
|
||||||
|
@ -132,6 +132,20 @@ class TestNeutronAPIUtils(CharmTestCase):
|
|||||||
[self.assertIn(q_conf, _map.keys()) for q_conf in confs]
|
[self.assertIn(q_conf, _map.keys()) for q_conf in confs]
|
||||||
self.assertTrue(nutils.APACHE_24_CONF not in _map.keys())
|
self.assertTrue(nutils.APACHE_24_CONF not in _map.keys())
|
||||||
|
|
||||||
|
|
||||||
|
@patch.object(nutils, 'manage_plugin')
|
||||||
|
@patch('os.path.exists')
|
||||||
|
def test_resource_map_liberty(self, _path_exists, _manage_plugin):
|
||||||
|
_path_exists.return_value = False
|
||||||
|
_manage_plugin.return_value = True
|
||||||
|
self.os_release.return_value = 'liberty'
|
||||||
|
_map = nutils.resource_map()
|
||||||
|
confs = [nutils.NEUTRON_CONF, nutils.NEUTRON_DEFAULT,
|
||||||
|
nutils.APACHE_CONF, nutils.NEUTRON_LBAAS_CONF,
|
||||||
|
nutils.NEUTRON_VPNAAS_CONF]
|
||||||
|
[self.assertIn(q_conf, _map.keys()) for q_conf in confs]
|
||||||
|
self.assertTrue(nutils.APACHE_24_CONF not in _map.keys())
|
||||||
|
|
||||||
@patch.object(nutils, 'manage_plugin')
|
@patch.object(nutils, 'manage_plugin')
|
||||||
@patch('os.path.exists')
|
@patch('os.path.exists')
|
||||||
def test_resource_map_apache24(self, _path_exists, _manage_plugin):
|
def test_resource_map_apache24(self, _path_exists, _manage_plugin):
|
||||||
@ -232,7 +246,7 @@ class TestNeutronAPIUtils(CharmTestCase):
|
|||||||
configs = MagicMock()
|
configs = MagicMock()
|
||||||
nutils.do_openstack_upgrade(configs)
|
nutils.do_openstack_upgrade(configs)
|
||||||
self.os_release.assert_called_with('neutron-common')
|
self.os_release.assert_called_with('neutron-common')
|
||||||
self.log.assert_called()
|
self.assertTrue(self.log.called)
|
||||||
self.configure_installation_source.assert_called_with(
|
self.configure_installation_source.assert_called_with(
|
||||||
'cloud:trusty-juno'
|
'cloud:trusty-juno'
|
||||||
)
|
)
|
||||||
@ -271,7 +285,7 @@ class TestNeutronAPIUtils(CharmTestCase):
|
|||||||
configs = MagicMock()
|
configs = MagicMock()
|
||||||
nutils.do_openstack_upgrade(configs)
|
nutils.do_openstack_upgrade(configs)
|
||||||
self.os_release.assert_called_with('neutron-common')
|
self.os_release.assert_called_with('neutron-common')
|
||||||
self.log.assert_called()
|
self.assertTrue(self.log.called)
|
||||||
self.configure_installation_source.assert_called_with(
|
self.configure_installation_source.assert_called_with(
|
||||||
'cloud:trusty-kilo'
|
'cloud:trusty-kilo'
|
||||||
)
|
)
|
||||||
@ -311,7 +325,7 @@ class TestNeutronAPIUtils(CharmTestCase):
|
|||||||
configs = MagicMock()
|
configs = MagicMock()
|
||||||
nutils.do_openstack_upgrade(configs)
|
nutils.do_openstack_upgrade(configs)
|
||||||
self.os_release.assert_called_with('neutron-common')
|
self.os_release.assert_called_with('neutron-common')
|
||||||
self.log.assert_called()
|
self.assertTrue(self.log.called)
|
||||||
self.configure_installation_source.assert_called_with(
|
self.configure_installation_source.assert_called_with(
|
||||||
'cloud:trusty-kilo'
|
'cloud:trusty-kilo'
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user