Rework pacemaker constraints from ovs and netns cleanup agents

In the current neutron-* services constraints chain, the ovs and
netns cleanup services are re-run after a neutron-server restart.
As discussed at [1] this may not be desirable leaving some neutron
services down and any tenant routers without IP.

This review introduces a second constraints chain so we now have:

neutron-server-->openvswitch-->dhcp-->l3-->metadata
and
ovs-cleanup-->netns-cleanup-->openvswitch

Instead of a single chain like

neutron-server-->ovs-cleanup-->netns-cleanup-->openvswitch-->
dhcp-->l3-->metadata

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1266910#c12

Related-Bug: 1501378
Change-Id: I4096704257aff74ff5bd37d8d01d8a776c6c6a76
This commit is contained in:
marios 2015-09-30 13:47:58 +03:00
parent 9e918a4a51
commit 3dd47a7c2a
1 changed files with 22 additions and 18 deletions

View File

@ -1048,24 +1048,8 @@ if hiera('step') >= 4 {
ocf_agent_name => "neutron:NetnsCleanup",
clone_params => "interleave=true",
}
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
constraint_type => "order",
first_resource => "${::keystone::params::service_name}-clone",
second_resource => "${::neutron::params::server_service}-clone",
first_action => "start",
second_action => "start",
require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
Pacemaker::Resource::Service[$::neutron::params::server_service]],
}
pacemaker::constraint::base { 'neutron-server-to-neutron-ovs-cleanup-constraint':
constraint_type => "order",
first_resource => "${::neutron::params::server_service}-clone",
second_resource => "${::neutron::params::ovs_cleanup_service}-clone",
first_action => "start",
second_action => "start",
require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
Pacemaker::Resource::Ocf["${::neutron::params::ovs_cleanup_service}"]],
}
# neutron - one chain ovs-cleanup-->netns-cleanup-->ovs-agent
pacemaker::constraint::base { 'neutron-ovs-cleanup-to-netns-cleanup-constraint':
constraint_type => "order",
first_resource => "${::neutron::params::ovs_cleanup_service}-clone",
@ -1098,6 +1082,26 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Ocf["neutron-netns-cleanup"],
Pacemaker::Resource::Service["${::neutron::params::ovs_agent_service}"]],
}
#another chain keystone-->neutron-server-->ovs-agent-->dhcp-->l3
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
constraint_type => "order",
first_resource => "${::keystone::params::service_name}-clone",
second_resource => "${::neutron::params::server_service}-clone",
first_action => "start",
second_action => "start",
require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
Pacemaker::Resource::Service[$::neutron::params::server_service]],
}
pacemaker::constraint::base { 'neutron-server-to-openvswitch-agent-constraint':
constraint_type => "order",
first_resource => "${::neutron::params::server_service}-clone",
second_resource => "${::neutron::params::ovs_agent_service}-clone",
first_action => "start",
second_action => "start",
require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
pacemaker::constraint::base { 'neutron-openvswitch-agent-to-dhcp-agent-constraint':
constraint_type => "order",
first_resource => "${::neutron::params::ovs_agent_service}-clone",