Fixed Neutron ML2 issues

- Value of CONFIG_NEUTRON_ML2_VXLAN_GROUP is missing quotes which generates
Puppet syntax error when it is used

- Command 'neutron-db-manage upgrade' is run only on certain host, so race
condition has to be set only on relevant host

- In case of multihost installation Neutron API has to be available for OSCLIENT_HOST
and HORIZON_HOST

Fixes: rhbz#1066519, rhbz#1068962
Closes-bug: 1288447

Change-Id: I40a7cd0c3117152eac945ab26bf0b51e911a4765
This commit is contained in:
Martin Magr
2014-03-03 15:10:17 +01:00
parent 2f9240689d
commit 7f536f7e51
2 changed files with 34 additions and 14 deletions

View File

@@ -583,7 +583,7 @@ def initSequences(controller):
'CONFIG_NEUTRON_ML2_VNI_RANGES'):
config[key] = str([i.strip() for i in config[key].split(',') if i])
key = 'CONFIG_NEUTRON_ML2_VXLAN_GROUP'
config[key] = config[key] or 'undef'
config[key] = "'%s'" % config[key] if config[key] else 'undef'
config['CONFIG_NEUTRON_L2_DBNAME'] = plugin_db
config['CONFIG_NEUTRON_CORE_PLUGIN'] = plugin_path
@@ -624,8 +624,14 @@ def create_manifests(config):
service_plugins = []
if config['CONFIG_NEUTRON_LBAAS_HOSTS']:
lbp = 'neutron.services.loadbalancer.plugin.LoadBalancerPlugin'
service_plugins.append(lbp)
service_plugins.append(
'neutron.services.loadbalancer.plugin.LoadBalancerPlugin'
)
if config['CONFIG_NEUTRON_L2_PLUGIN'] == 'ml2':
# ML2 uses the L3 Router service plugin to implement l3 agent
service_plugins.append(
'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin'
)
config['SERVICE_PLUGINS'] = (str(service_plugins) if service_plugins
else 'undef')
@@ -638,6 +644,15 @@ def create_manifests(config):
elif config['CONFIG_NEUTRON_L2_PLUGIN'] == 'ml2':
plugin_manifest = 'neutron_ml2_plugin.pp'
# host to which allow neutron server
allowed_hosts = set(q_hosts)
if config['CONFIG_CLIENT_INSTALL'] == 'y':
allowed_hosts.add(config['CONFIG_OSCLIENT_HOST'])
if config['CONFIG_HORIZON_INSTALL'] == 'y':
allowed_hosts.add(config['CONFIG_HORIZON_HOST'])
if config['CONFIG_NOVA_INSTALL'] == 'y':
allowed_hosts.add(config['CONFIG_NOVA_API_HOST'])
for host in q_hosts:
manifest_file = "%s_neutron.pp" % (host,)
manifest_data = getManifestTemplate("neutron.pp")
@@ -648,9 +663,10 @@ def create_manifests(config):
manifest_file = "%s_neutron.pp" % (host,)
manifest_data = getManifestTemplate("neutron_api.pp")
# Firewall Rules
config['FIREWALL_ALLOWED'] = ",".join(["'%s'" % i for i in q_hosts])
config['FIREWALL_ALLOWED'] = ",".join(["'%s'" % i
for i in allowed_hosts])
config['FIREWALL_SERVICE_NAME'] = "neutron"
config['FIREWALL_PORTS'] = "'9696','67','68'"
config['FIREWALL_PORTS'] = "'9696'"
manifest_data += getManifestTemplate("firewall.pp")
appendManifestFile(manifest_file, manifest_data, 'neutron')

View File

@@ -17,14 +17,18 @@ if 'linuxbridge' in %(CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS)s and !defined(Packag
}
class { 'neutron::plugins::ml2':
type_drivers => %(CONFIG_NEUTRON_ML2_TYPE_DRIVERS)s,
tenant_network_types => %(CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES)s,
mechanism_drivers => %(CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS)s,
flat_networks => %(CONFIG_NEUTRON_ML2_FLAT_NETWORKS)s,
network_vlan_ranges => %(CONFIG_NEUTRON_ML2_VLAN_RANGES)s,
tunnel_id_ranges => %(CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES)s,
vxlan_group => %(CONFIG_NEUTRON_ML2_VXLAN_GROUP)s,
vni_ranges => %(CONFIG_NEUTRON_ML2_VNI_RANGES)s,
type_drivers => %(CONFIG_NEUTRON_ML2_TYPE_DRIVERS)s,
tenant_network_types => %(CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES)s,
mechanism_drivers => %(CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS)s,
flat_networks => %(CONFIG_NEUTRON_ML2_FLAT_NETWORKS)s,
network_vlan_ranges => %(CONFIG_NEUTRON_ML2_VLAN_RANGES)s,
tunnel_id_ranges => %(CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES)s,
vxlan_group => %(CONFIG_NEUTRON_ML2_VXLAN_GROUP)s,
vni_ranges => %(CONFIG_NEUTRON_ML2_VNI_RANGES)s,
enable_security_group => 'dummy',
}
Neutron_plugin_ml2<||> -> File['/etc/neutron/plugin.ini'] -> Exec['neutron-db-manage upgrade']
# For cases where "neutron-db-manage upgrade" command is called we need to fill config file first
if defined(Exec['neutron-db-manage upgrade']) {
Neutron_plugin_ml2<||> -> File['/etc/neutron/plugin.ini'] -> Exec['neutron-db-manage upgrade']
}