|
pacemaker
2.1.4-dc6eb4362
Scalable High-Availability cluster resource manager
|
#include <crm_internal.h>#include <sys/time.h>#include <sys/resource.h>#include <crm/msg_xml.h>#include <crm/common/xml.h>#include <crm/common/mainloop.h>#include <crm/cluster/internal.h>#include <crm/cluster/election_internal.h>#include <crm/crm.h>
Go to the source code of this file.
Macros | |
| #define | STORM_INTERVAL 2 /* in seconds */ |
| #define | LOSS_DAMPEN 2 /* in seconds */ |
Functions | |
| enum election_result | election_state (election_t *e) |
| Get current state of an election. More... | |
| election_t * | election_init (const char *name, const char *uname, guint period_ms, GSourceFunc cb) |
| Create a new election object. More... | |
| void | election_remove (election_t *e, const char *uname) |
| Disregard any previous vote by specified peer. More... | |
| void | election_reset (election_t *e) |
| Stop election timer and disregard all votes. More... | |
| void | election_fini (election_t *e) |
| Free an election object. More... | |
| void | election_timeout_stop (election_t *e) |
| Stop an election's timer, if running. More... | |
| void | election_timeout_set_period (election_t *e, guint period) |
| Change an election's timeout (restarting timer if running) More... | |
| void | election_vote (election_t *e) |
| Start a new election by offering local node's candidacy. More... | |
| bool | election_check (election_t *e) |
| Check whether local node has won an election. More... | |
| enum election_result | election_count_vote (election_t *e, xmlNode *message, bool can_win) |
| Process an election message (vote or no-vote) from a peer. More... | |
| void | election_clear_dampening (election_t *e) |
| Reset any election dampening currently in effect. More... | |
Variables | |
| struct election_s | __attribute__ |
| #define LOSS_DAMPEN 2 /* in seconds */ |
Definition at line 398 of file election.c.
| #define STORM_INTERVAL 2 /* in seconds */ |
Definition at line 23 of file election.c.
| bool election_check | ( | election_t * | e | ) |
Check whether local node has won an election.
If all known peers have sent no-vote messages, stop the election timer, set the election state to won, and call any registered win callback.
| [in] | e | Election object |
election_in_progress. Definition at line 342 of file election.c.
| void election_clear_dampening | ( | election_t * | e | ) |
Reset any election dampening currently in effect.
| [in] | e | Election object to clear |
Definition at line 722 of file election.c.
| enum election_result election_count_vote | ( | election_t * | e, |
| xmlNode * | message, | ||
| bool | can_win | ||
| ) |
Process an election message (vote or no-vote) from a peer.
| [in] | e | Election object |
| [in] | vote | Election message XML from peer |
| [in] | can_win | Whether to consider the local node eligible for winning |
Definition at line 532 of file election.c.
| void election_fini | ( | election_t * | e | ) |
Free an election object.
Free all memory associated with an election object, stopping its election timer (if running).
| [in] | e | Election object |
Definition at line 165 of file election.c.
| election_t* election_init | ( | const char * | name, |
| const char * | uname, | ||
| guint | period_ms, | ||
| GSourceFunc | cb | ||
| ) |
Create a new election object.
Every node that wishes to participate in an election must create an election object. Typically, this should be done once, at start-up. A caller should only create a single election object.
| [in] | name | Label for election (for logging) |
| [in] | uname | Local node's name |
| [in] | period_ms | How long to wait for all peers to vote |
| [in] | cb | Function to call if local node wins election |
Definition at line 89 of file election.c.
| void election_remove | ( | election_t * | e, |
| const char * | uname | ||
| ) |
Disregard any previous vote by specified peer.
This discards any recorded vote from a specified peer. Election users should call this whenever a voting peer becomes inactive.
| [in] | e | Election object |
| [in] | uname | Name of peer to disregard |
Definition at line 129 of file election.c.
| void election_reset | ( | election_t * | e | ) |
Stop election timer and disregard all votes.
| [in] | e | Election object |
Definition at line 143 of file election.c.
| enum election_result election_state | ( | election_t * | e | ) |
Get current state of an election.
| [in] | e | Election object |
Definition at line 67 of file election.c.
| void election_timeout_set_period | ( | election_t * | e, |
| guint | period | ||
| ) |
Change an election's timeout (restarting timer if running)
| [in] | e | Election object |
| [in] | period | New timeout |
Definition at line 205 of file election.c.
| void election_timeout_stop | ( | election_t * | e | ) |
Stop an election's timer, if running.
| [in] | e | Election object |
Definition at line 191 of file election.c.
| void election_vote | ( | election_t * | e | ) |
Start a new election by offering local node's candidacy.
Broadcast a "vote" election message containing the local node's ID, (incremented) election counter, and uptime, and start the election timer.
| [in] | e | Election object |
Definition at line 289 of file election.c.
1.8.14