pacemaker  2.1.6-802a72226b
Scalable High-Availability cluster resource manager
Enumerations | Functions
pcmki_fence.h File Reference
#include <crm/stonith-ng.h>
#include <crm/common/output_internal.h>
Include dependency graph for pcmki_fence.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  pcmk__fence_history { pcmk__fence_history_none, pcmk__fence_history_reduced, pcmk__fence_history_full }
 Control how much of the fencing history is output. More...
 

Functions

int pcmk__request_fencing (stonith_t *st, const char *target, const char *action, const char *name, unsigned int timeout, unsigned int tolerance, int delay, char **reason)
 Ask the cluster to perform fencing. More...
 
int pcmk__fence_history (pcmk__output_t *out, stonith_t *st, const char *target, unsigned int timeout, int verbose, bool broadcast, bool cleanup)
 List the fencing operations that have occurred for a specific node. More...
 
int pcmk__fence_installed (pcmk__output_t *out, stonith_t *st, unsigned int timeout)
 List all installed fence agents. More...
 
int pcmk__fence_last (pcmk__output_t *out, const char *target, bool as_nodeid)
 When was a device last fenced? More...
 
int pcmk__fence_list_targets (pcmk__output_t *out, stonith_t *st, const char *device_id, unsigned int timeout)
 List nodes that can be fenced. More...
 
int pcmk__fence_metadata (pcmk__output_t *out, stonith_t *st, const char *agent, unsigned int timeout)
 Get metadata for a fence agent. More...
 
int pcmk__fence_registered (pcmk__output_t *out, stonith_t *st, const char *target, unsigned int timeout)
 List registered fence devices. More...
 
int pcmk__fence_register_level (stonith_t *st, const char *target, int fence_level, const stonith_key_value_t *devices)
 Register a fencing level for a specific node, node regex, or attribute. More...
 
int pcmk__fence_unregister_level (stonith_t *st, const char *target, int fence_level)
 Unregister a fencing level for specific node, node regex, or attribute. More...
 
int pcmk__fence_validate (pcmk__output_t *out, stonith_t *st, const char *agent, const char *id, const stonith_key_value_t *params, unsigned int timeout)
 Validate a fence device configuration. More...
 
int pcmk__get_fencing_history (stonith_t *st, stonith_history_t **stonith_history, enum pcmk__fence_history fence_history)
 Fetch fencing history, optionally reducing it. More...
 

Enumeration Type Documentation

◆ pcmk__fence_history

Control how much of the fencing history is output.

Enumerator
pcmk__fence_history_none 
pcmk__fence_history_reduced 
pcmk__fence_history_full 

Definition at line 18 of file pcmki_fence.h.

Function Documentation

◆ pcmk__fence_history()

int pcmk__fence_history ( pcmk__output_t out,
stonith_t st,
const char *  target,
unsigned int  timeout,
int  verbose,
bool  broadcast,
bool  cleanup 
)

List the fencing operations that have occurred for a specific node.

Note
This is the internal version of pcmk_fence_history(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure
[in,out]stA connection to the fencer API
[in]targetThe node to get history for
[in]timeoutHow long to wait for operation to complete (in ms)
[in]verboseInclude additional output
[in]broadcastGather fencing history from all nodes
[in]cleanupClean up fencing history after listing
Returns
Standard Pacemaker return code

Definition at line 231 of file pcmk_fence.c.

◆ pcmk__fence_installed()

int pcmk__fence_installed ( pcmk__output_t out,
stonith_t st,
unsigned int  timeout 
)

List all installed fence agents.

Note
This is the internal version of pcmk_fence_installed(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure
[in,out]stA connection to the fencer API
[in]timeoutHow long to wait for the operation to complete (in ms)
Returns
Standard Pacemaker return code

Definition at line 324 of file pcmk_fence.c.

◆ pcmk__fence_last()

int pcmk__fence_last ( pcmk__output_t out,
const char *  target,
bool  as_nodeid 
)

When was a device last fenced?

Note
This is the internal version of pcmk_fence_last(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure.
[in]targetThe node that was fenced.
[in]as_nodeid
Returns
Standard Pacemaker return code

Definition at line 366 of file pcmk_fence.c.

◆ pcmk__fence_list_targets()

int pcmk__fence_list_targets ( pcmk__output_t out,
stonith_t st,
const char *  device_id,
unsigned int  timeout 
)

List nodes that can be fenced.

Note
This is the internal version of pcmk_fence_list_targets(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure
[in,out]stA connection to the fencer API
[in]device_idResource ID of fence device to check
[in]timeoutHow long to wait for operation to complete (in ms)
Returns
Standard Pacemaker return code

Definition at line 404 of file pcmk_fence.c.

◆ pcmk__fence_metadata()

int pcmk__fence_metadata ( pcmk__output_t out,
stonith_t st,
const char *  agent,
unsigned int  timeout 
)

Get metadata for a fence agent.

Note
This is the internal version of pcmk_fence_metadata(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure
[in,out]stA connection to the fencer API
[in]agentThe fence agent to get metadata for
[in]timeoutHow long to wait for the operation to complete (in ms)
Returns
Standard Pacemaker return code

Definition at line 451 of file pcmk_fence.c.

◆ pcmk__fence_register_level()

int pcmk__fence_register_level ( stonith_t st,
const char *  target,
int  fence_level,
const stonith_key_value_t devices 
)

Register a fencing level for a specific node, node regex, or attribute.

Note
This is the internal version of pcmk_fence_register_level(). External users of the pacemaker API should use that function instead.

target can take three different forms:

  • name=value, in which case target is an attribute.
  • , in which case target is a node regex.
  • Otherwise, target is a node name.
Parameters
[in,out]stA connection to the fencer API
[in]targetThe object to register a fencing level for
[in]fence_levelIndex number of level to add
[in]devicesDevices to use in level
Returns
Standard Pacemaker return code

Definition at line 537 of file pcmk_fence.c.

◆ pcmk__fence_registered()

int pcmk__fence_registered ( pcmk__output_t out,
stonith_t st,
const char *  target,
unsigned int  timeout 
)

List registered fence devices.

Note
This is the internal version of pcmk_fence_metadata(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure
[in,out]stA connection to the fencer API
[in]targetIf not NULL, return only devices that can fence this
[in]timeoutHow long to wait for the operation to complete (in ms)
Returns
Standard Pacemaker return code

Definition at line 489 of file pcmk_fence.c.

◆ pcmk__fence_unregister_level()

int pcmk__fence_unregister_level ( stonith_t st,
const char *  target,
int  fence_level 
)

Unregister a fencing level for specific node, node regex, or attribute.

Note
This is the internal version of pcmk_fence_unregister_level(). External users of the pacemaker API should use that function instead.

target can take three different forms:

  • name=value, in which case target is an attribute.
  • , in which case target is a node regex.
  • Otherwise, target is a node name.
Parameters
[in,out]stA connection to the fencer API
[in]targetThe object to unregister a fencing level for
[in]fence_levelIndex number of level to remove
Returns
Standard Pacemaker return code

Definition at line 553 of file pcmk_fence.c.

◆ pcmk__fence_validate()

int pcmk__fence_validate ( pcmk__output_t out,
stonith_t st,
const char *  agent,
const char *  id,
const stonith_key_value_t params,
unsigned int  timeout 
)

Validate a fence device configuration.

Note
This is the internal version of pcmk_stonith_validate(). External users of the pacemaker API should use that function instead.
out should be initialized with pcmk__output_new() before calling this function and destroyed with out->finish and pcmk__output_free() before reusing it with any other functions in this library.
Parameters
[in,out]outThe output functions structure
[in,out]stA connection to the fencer API
[in]agentThe agent to validate (for example, "fence_xvm")
[in]idFence device ID (may be NULL)
[in]paramsFence device configuration parameters
[in]timeoutHow long to wait for the operation to complete (in ms)
Returns
Standard Pacemaker return code

Definition at line 567 of file pcmk_fence.c.

◆ pcmk__get_fencing_history()

int pcmk__get_fencing_history ( stonith_t st,
stonith_history_t **  stonith_history,
enum pcmk__fence_history  fence_history 
)

Fetch fencing history, optionally reducing it.

Parameters
[in,out]stA connection to the fencer API
[out]stonith_historyDestination for storing the history
[in]fence_historyHow much of the fencing history to display
Returns
Standard Pacemaker return code

Definition at line 604 of file pcmk_fence.c.

◆ pcmk__request_fencing()

int pcmk__request_fencing ( stonith_t st,
const char *  target,
const char *  action,
const char *  name,
unsigned int  timeout,
unsigned int  tolerance,
int  delay,
char **  reason 
)

Ask the cluster to perform fencing.

Note
This is the internal version of pcmk_request_fencing(). External users of the pacemaker API should use that function instead.
Parameters
[in,out]stA connection to the fencer API
[in]targetThe node that should be fenced
[in]actionThe fencing action (on, off, reboot) to perform
[in]nameWho requested the fence action?
[in]timeoutHow long to wait for operation to complete (in ms)
[in]toleranceIf a successful action for target happened within this many milliseconds, return success without performing the action again
[in]delayApply this delay (in milliseconds) before initiating fencing action (a value of -1 applies no delay and disables any fencing delay from pcmk_delay_base and pcmk_delay_max)
[out]reasonIf not NULL, where to put descriptive failure reason
Returns
Standard Pacemaker return code
Note
If reason is not NULL, the caller is responsible for freeing its returned value.
Todo:
delay is eventually used with g_timeout_add() and should be guint

Definition at line 184 of file pcmk_fence.c.