[ClusterLabs Developers] Pacemaker developers: Everything has changed!

Ken Gaillot kgaillot at redhat.com
Mon Apr 30 19:18:36 EDT 2018

This will be of interest to anyone who works on the pacemaker code
base, or who develops tools for use with Pacemaker.

In Pacemaker 2.0.0-rc3, many of the file and directory names in the
code base have been renamed to follow the daemon renaming. pacemakerd
keeps its name. The other daemons have been renamed:

 attrd    -> pacemaker-attrd ("the attribute manager")
 cib      -> pacemaker-based ("the CIB manager")
 crmd     -> pacemaker-controld ("the controller")
 pengine  -> pacemaker-schedulerd ("the scheduler")
 stonithd -> pacemaker-fenced ("the fencer")
 lrmd     -> pacemaker-execd ("the (local) executor")
 pacemaker_remoted -> pacemaker-remoted ("the remote executor")

The code for each of these is now underneath a new "daemons"
subdirectory (e.g. daemons/schedulerd/). pacemaker-remoted is in the
execd directory, since it is just a different compilation of the same

The daemons' code files have been renamed to have a unique prefix, e.g.
the old pengine/utils.c is now daemons/schedulerd/sched_utils.c. This
will help when reading the trace logs ("which utils.c is that?") and
when specifying PCMK_trace_files.

The various regression test names have also changed. They are all now
located under the cts subdirectory.

As a result, if you have any existing pacemaker checkouts with work on
the daemon code that hasn't been merged, you will probably want to make
a clean checkout of the latest code, and merge in your outstanding work
by hand. If your work is just on the libraries, it should be fine to do
an automatic merge.

If you work on a tool that needs Pacemaker, the daemon renaming may
affect you:

If you parse the logs, not only will messages show the new names
instead of the old ones, but the format of the messages has been
tweaked slightly.

If you invoke the daemons directly for metadata etc., the good news is
that by default, symlinks will be installed at the old names, so they
will continue working for that purpose. However you should update to
the new names when possible, as those links can be disabled, and
eventually will go away.

A reminder about another change: Master/slave resources are now called
promotable clones, and the <master> tag is deprecated in favor of a
regular <clone> tag with a new "promotable" meta-attribute set to
"true". The old syntax will be supported for at least the lifetime of
the 2.0.x series, but if you create or modify clone syntax, you should
update it to handle the new syntax as soon as possible.

What has NOT changed with the daemon names: the public C API, including
library names.

Further details are available at https://wiki.clusterlabs.org/wiki/Pace
Ken Gaillot <kgaillot at redhat.com>

More information about the Developers mailing list