HomeClusterLabs Projects

Maint: mocked/based: add based-notifyfenced module

Description

Maint: mocked/based: add based-notifyfenced module

This is to demonstrate how the current arrangement at _other_
daemons (fenced in particular, as the name may suggest) is sometimes
insufficient (see the following fix for fenced daemon) regarding
liveness requirements, since high-rate stream of notifications from
pacemaker-based can effectively block any progress regarding their
own native services they provide (starving their own clients out).

It would be rather difficult to achieve the same triggering
circumstances artificially in vanilla settings, especially when
constrained at number-of-nodes/resources dimension (bothersome
artificial-messaging-load-through-configuration) -- leveraging the
skeleton from the previous commit, we can now emulate the same just
with a single node under test and with next to zero configuration

  • just configure a single node cluster through corosync.conf, start

corosync, run "./based -N" (preferably as hacluster:haclient), only
then pacemaker-fenced and try to communicate with it (e.g. via
stonith_admin) -- see the in-line comment wrt. how to use this module.

Note that this first module has some parts ifdef'd out since it's
intented also as a template for writing additional modules -- you'll:

  • copy based-notifyspam.c as based-mymodule.c, and edit it, so that...
  • OPTCHAR is a new, unique short option character (preferably uppercase, leaving lower-cased letters reserved as action modifiers, cf. xml/regression.sh)
  • drop everything unneeded except for mock_based_MOD_argparse_hook and mock_based_MOD_init, configure the callbacks there respectively
  • should the new hook mounting place be needed, declare new hook prototype in based.h, append such respective member to the struct mock_based_hooks_s there, locate the corresponding location for its application in based.c and apply it here (follow the example of hooks.cib_notify)
  • add the respective "BASED_OBJECTS += based-MOD.o" to Makefile
  • test...

Details

Provenance
Jan Pokorný <jpokorny@redhat.com>Authored on May 15 2019, 12:23 PM
Parents
rP07ced9224cb4: Maint: introduce mock/experimental skeletons, now for based daemon
Branches
Unknown
Tags
Unknown

Event Timeline