pacemaker: run neutron-server-start-wait-stop only at step 4
authorEmilien Macchi <emilien@redhat.com>
Thu, 10 Dec 2015 21:23:50 +0000 (16:23 -0500)
committerEmilien Macchi <emilien@redhat.com>
Fri, 11 Dec 2015 02:01:04 +0000 (21:01 -0500)
commit676ec6ea6d7995266b8162c8caa89f72693eb929
treefd7164fc79129399edb4d8b30f3bef9ef4f94c3e
parent99bd9970d6bedee8228a6c8ff3d6f45aa1380e22
pacemaker: run neutron-server-start-wait-stop only at step 4

neutron-server-start-wait-stop is a dangerous Exec that is exposed to
race conditions, because it does not have "onlyif" or "unless"
statements.

That means during a deployment, this exec can be run in the wrong order
during Step 5 and/or 6, while it was supposed to be run at Step 4 only.
If that happens, the exec will fail because puppet tries to start
neutron-server while Pacemaker already started the resource. So in that
case, systemd would returns 1 to Puppet which would return 6 to the
overcloud deployment and the deployment would fail to finish correctly.

This patch aims to prevent from this scenario by making sure we run the
exec only during the step 4.

Also, in order to secure it a bit more, we add 'unless' statement to
this exec, so we would make sure the Puppet run would be idempotent and
the Exec would run one successful time only.

https://bugzilla.redhat.com/show_bug.cgi?id=1290582

Change-Id: I42813c5cff6c525c15c9c24baad4e355f88af672
puppet/manifests/overcloud_controller_pacemaker.pp