pacemaker  2.0.1-9e909a5bdd
Scalable High-Availability cluster resource manager
Data Structures | Macros | Typedefs | Enumerations | Functions
status.h File Reference

Cluster status and scheduling. More...

#include <glib.h>
#include <stdbool.h>
#include <crm/common/iso8601.h>
#include <crm/pengine/common.h>
#include <crm/pengine/complex.h>
Include dependency graph for status.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pe_working_set_s
 
struct  pe_node_shared_s
 
struct  pe_node_s
 
struct  pe_resource_s
 
struct  pe_action_s
 
struct  pe_ticket_s
 
struct  pe_tag_s
 
struct  pe_action_wrapper_s
 

Macros

#define pe_flag_have_quorum   0x00000001ULL
 
#define pe_flag_symmetric_cluster   0x00000002ULL
 
#define pe_flag_maintenance_mode   0x00000008ULL
 
#define pe_flag_stonith_enabled   0x00000010ULL
 
#define pe_flag_have_stonith_resource   0x00000020ULL
 
#define pe_flag_enable_unfencing   0x00000040ULL
 
#define pe_flag_concurrent_fencing   0x00000080ULL
 
#define pe_flag_stop_rsc_orphans   0x00000100ULL
 
#define pe_flag_stop_action_orphans   0x00000200ULL
 
#define pe_flag_stop_everything   0x00000400ULL
 
#define pe_flag_start_failure_fatal   0x00001000ULL
 
#define pe_flag_remove_after_stop   0x00002000ULL
 
#define pe_flag_startup_fencing   0x00004000ULL
 
#define pe_flag_startup_probes   0x00010000ULL
 
#define pe_flag_have_status   0x00020000ULL
 
#define pe_flag_have_remote_nodes   0x00040000ULL
 
#define pe_flag_quick_location   0x00100000ULL
 
#define pe_flag_sanitized   0x00200000ULL
 
#define pe_flag_stdout   0x00400000ULL
 
#define pe_rsc_orphan   0x00000001ULL
 
#define pe_rsc_managed   0x00000002ULL
 
#define pe_rsc_block   0x00000004ULL
 
#define pe_rsc_orphan_container_filler   0x00000008ULL
 
#define pe_rsc_notify   0x00000010ULL
 
#define pe_rsc_unique   0x00000020ULL
 
#define pe_rsc_fence_device   0x00000040ULL
 
#define pe_rsc_promotable   0x00000080ULL
 
#define pe_rsc_provisional   0x00000100ULL
 
#define pe_rsc_allocating   0x00000200ULL
 
#define pe_rsc_merging   0x00000400ULL
 
#define pe_rsc_reload   0x00002000ULL
 
#define pe_rsc_allow_remote_remotes   0x00004000ULL
 
#define pe_rsc_failed   0x00010000ULL
 
#define pe_rsc_runnable   0x00040000ULL
 
#define pe_rsc_start_pending   0x00080000ULL
 
#define pe_rsc_starting   0x00100000ULL
 
#define pe_rsc_stopping   0x00200000ULL
 
#define pe_rsc_allow_migrate   0x00800000ULL
 
#define pe_rsc_failure_ignored   0x01000000ULL
 
#define pe_rsc_maintenance   0x04000000ULL
 
#define pe_rsc_is_container   0x08000000ULL
 
#define pe_rsc_needs_quorum   0x10000000ULL
 
#define pe_rsc_needs_fencing   0x20000000ULL
 
#define pe_rsc_needs_unfencing   0x40000000ULL
 

Typedefs

typedef struct pe_node_s pe_node_t
 
typedef struct pe_action_s pe_action_t
 
typedef struct pe_resource_s pe_resource_t
 
typedef struct pe_working_set_s pe_working_set_t
 
typedef struct pe_ticket_s pe_ticket_t
 
typedef struct pe_tag_s pe_tag_t
 
typedef struct pe_action_wrapper_s pe_action_wrapper_t
 
typedef struct pe_action_s action_t
 
typedef struct pe_action_wrapper_s action_wrapper_t
 
typedef struct pe_node_s node_t
 
typedef struct pe_resource_s resource_t
 
typedef struct pe_tag_s tag_t
 
typedef struct pe_ticket_s ticket_t
 
typedef enum pe_quorum_policy no_quorum_policy_t
 

Enumerations

enum  pe_quorum_policy { no_quorum_freeze, no_quorum_stop, no_quorum_ignore, no_quorum_suicide }
 
enum  node_type { node_ping, node_member, node_remote }
 
enum  pe_restart { pe_restart_restart, pe_restart_ignore }
 
enum  pe_find {
  pe_find_renamed = 0x001, pe_find_anon = 0x002, pe_find_clone = 0x004, pe_find_current = 0x008,
  pe_find_inactive = 0x010, pe_find_any = 0x020
}
 Determine behavior of pe_find_resource_with_flags() More...
 
enum  pe_check_parameters { pe_check_last_failure, pe_check_active }
 
enum  pe_graph_flags { pe_graph_none = 0x00000, pe_graph_updated_first = 0x00001, pe_graph_updated_then = 0x00002, pe_graph_disable = 0x00004 }
 
enum  pe_action_flags {
  pe_action_pseudo = 0x00001, pe_action_runnable = 0x00002, pe_action_optional = 0x00004, pe_action_print_always = 0x00008,
  pe_action_have_node_attrs = 0x00010, pe_action_implied_by_stonith = 0x00040, pe_action_migrate_runnable = 0x00080, pe_action_dumped = 0x00100,
  pe_action_processed = 0x00200, pe_action_clear = 0x00400, pe_action_dangle = 0x00800, pe_action_requires_any = 0x01000,
  pe_action_reschedule = 0x02000, pe_action_tracking = 0x04000
}
 
enum  pe_link_state { pe_link_not_dumped, pe_link_dumped, pe_link_dup }
 
enum  pe_discover_e { pe_discover_always = 0, pe_discover_never, pe_discover_exclusive }
 
enum  pe_ordering {
  pe_order_none = 0x0, pe_order_optional = 0x1, pe_order_apply_first_non_migratable = 0x2, pe_order_implies_first = 0x10,
  pe_order_implies_then = 0x20, pe_order_implies_first_master = 0x40, pe_order_implies_first_migratable = 0x80, pe_order_runnable_left = 0x100,
  pe_order_pseudo_left = 0x200, pe_order_implies_then_on_node = 0x400, pe_order_probe = 0x800, pe_order_restart = 0x1000,
  pe_order_stonith_stop = 0x2000, pe_order_serialize_only = 0x4000, pe_order_same_node = 0x8000, pe_order_implies_first_printed = 0x10000,
  pe_order_implies_then_printed = 0x20000, pe_order_asymmetrical = 0x100000, pe_order_load = 0x200000, pe_order_one_or_more = 0x400000,
  pe_order_anti_colocation = 0x800000, pe_order_preserve = 0x1000000, pe_order_then_cancels_first = 0x2000000, pe_order_trace = 0x4000000
}
 

Functions

const char * rsc_printable_id (pe_resource_t *rsc)
 
gboolean cluster_status (pe_working_set_t *data_set)
 
pe_working_set_tpe_new_working_set (void)
 Create a new working set. More...
 
void pe_free_working_set (pe_working_set_t *data_set)
 Free a working set. More...
 
void set_working_set_defaults (pe_working_set_t *data_set)
 
void cleanup_calculations (pe_working_set_t *data_set)
 Reset working set to default state without freeing it or constraints. More...
 
void pe_reset_working_set (pe_working_set_t *data_set)
 Reset a working set to default state without freeing it. More...
 
pe_resource_tpe_find_resource (GListPtr rsc_list, const char *id_rh)
 
pe_resource_tpe_find_resource_with_flags (GListPtr rsc_list, const char *id, enum pe_find flags)
 
pe_node_tpe_find_node (GListPtr node_list, const char *uname)
 
pe_node_tpe_find_node_id (GListPtr node_list, const char *id)
 
pe_node_tpe_find_node_any (GListPtr node_list, const char *id, const char *uname)
 
GListPtr find_operations (const char *rsc, const char *node, gboolean active_filter, pe_working_set_t *data_set)
 
int pe_bundle_replicas (const pe_resource_t *rsc)
 Get the number of configured replicas in a bundle. More...
 

Detailed Description

Cluster status and scheduling.

Definition in file status.h.

Macro Definition Documentation

◆ pe_flag_concurrent_fencing

#define pe_flag_concurrent_fencing   0x00000080ULL

Definition at line 69 of file status.h.

◆ pe_flag_enable_unfencing

#define pe_flag_enable_unfencing   0x00000040ULL

Definition at line 68 of file status.h.

◆ pe_flag_have_quorum

#define pe_flag_have_quorum   0x00000001ULL

Definition at line 62 of file status.h.

◆ pe_flag_have_remote_nodes

#define pe_flag_have_remote_nodes   0x00040000ULL

Definition at line 81 of file status.h.

◆ pe_flag_have_status

#define pe_flag_have_status   0x00020000ULL

Definition at line 80 of file status.h.

◆ pe_flag_have_stonith_resource

#define pe_flag_have_stonith_resource   0x00000020ULL

Definition at line 67 of file status.h.

◆ pe_flag_maintenance_mode

#define pe_flag_maintenance_mode   0x00000008ULL

Definition at line 64 of file status.h.

◆ pe_flag_quick_location

#define pe_flag_quick_location   0x00100000ULL

Definition at line 83 of file status.h.

◆ pe_flag_remove_after_stop

#define pe_flag_remove_after_stop   0x00002000ULL

Definition at line 76 of file status.h.

◆ pe_flag_sanitized

#define pe_flag_sanitized   0x00200000ULL

Definition at line 84 of file status.h.

◆ pe_flag_start_failure_fatal

#define pe_flag_start_failure_fatal   0x00001000ULL

Definition at line 75 of file status.h.

◆ pe_flag_startup_fencing

#define pe_flag_startup_fencing   0x00004000ULL

Definition at line 77 of file status.h.

◆ pe_flag_startup_probes

#define pe_flag_startup_probes   0x00010000ULL

Definition at line 79 of file status.h.

◆ pe_flag_stdout

#define pe_flag_stdout   0x00400000ULL

Definition at line 85 of file status.h.

◆ pe_flag_stonith_enabled

#define pe_flag_stonith_enabled   0x00000010ULL

Definition at line 66 of file status.h.

◆ pe_flag_stop_action_orphans

#define pe_flag_stop_action_orphans   0x00000200ULL

Definition at line 72 of file status.h.

◆ pe_flag_stop_everything

#define pe_flag_stop_everything   0x00000400ULL

Definition at line 73 of file status.h.

◆ pe_flag_stop_rsc_orphans

#define pe_flag_stop_rsc_orphans   0x00000100ULL

Definition at line 71 of file status.h.

◆ pe_flag_symmetric_cluster

#define pe_flag_symmetric_cluster   0x00000002ULL

Definition at line 63 of file status.h.

◆ pe_rsc_allocating

#define pe_rsc_allocating   0x00000200ULL

Definition at line 203 of file status.h.

◆ pe_rsc_allow_migrate

#define pe_rsc_allow_migrate   0x00800000ULL

Definition at line 215 of file status.h.

◆ pe_rsc_allow_remote_remotes

#define pe_rsc_allow_remote_remotes   0x00004000ULL

Definition at line 207 of file status.h.

◆ pe_rsc_block

#define pe_rsc_block   0x00000004ULL

Definition at line 194 of file status.h.

◆ pe_rsc_failed

#define pe_rsc_failed   0x00010000ULL

Definition at line 209 of file status.h.

◆ pe_rsc_failure_ignored

#define pe_rsc_failure_ignored   0x01000000ULL

Definition at line 217 of file status.h.

◆ pe_rsc_fence_device

#define pe_rsc_fence_device   0x00000040ULL

Definition at line 199 of file status.h.

◆ pe_rsc_is_container

#define pe_rsc_is_container   0x08000000ULL

Definition at line 219 of file status.h.

◆ pe_rsc_maintenance

#define pe_rsc_maintenance   0x04000000ULL

Definition at line 218 of file status.h.

◆ pe_rsc_managed

#define pe_rsc_managed   0x00000002ULL

Definition at line 193 of file status.h.

◆ pe_rsc_merging

#define pe_rsc_merging   0x00000400ULL

Definition at line 204 of file status.h.

◆ pe_rsc_needs_fencing

#define pe_rsc_needs_fencing   0x20000000ULL

Definition at line 222 of file status.h.

◆ pe_rsc_needs_quorum

#define pe_rsc_needs_quorum   0x10000000ULL

Definition at line 221 of file status.h.

◆ pe_rsc_needs_unfencing

#define pe_rsc_needs_unfencing   0x40000000ULL

Definition at line 223 of file status.h.

◆ pe_rsc_notify

#define pe_rsc_notify   0x00000010ULL

Definition at line 197 of file status.h.

◆ pe_rsc_orphan

#define pe_rsc_orphan   0x00000001ULL

Definition at line 192 of file status.h.

◆ pe_rsc_orphan_container_filler

#define pe_rsc_orphan_container_filler   0x00000008ULL

Definition at line 195 of file status.h.

◆ pe_rsc_promotable

#define pe_rsc_promotable   0x00000080ULL

Definition at line 200 of file status.h.

◆ pe_rsc_provisional

#define pe_rsc_provisional   0x00000100ULL

Definition at line 202 of file status.h.

◆ pe_rsc_reload

#define pe_rsc_reload   0x00002000ULL

Definition at line 206 of file status.h.

◆ pe_rsc_runnable

#define pe_rsc_runnable   0x00040000ULL

Definition at line 210 of file status.h.

◆ pe_rsc_start_pending

#define pe_rsc_start_pending   0x00080000ULL

Definition at line 211 of file status.h.

◆ pe_rsc_starting

#define pe_rsc_starting   0x00100000ULL

Definition at line 213 of file status.h.

◆ pe_rsc_stopping

#define pe_rsc_stopping   0x00200000ULL

Definition at line 214 of file status.h.

◆ pe_rsc_unique

#define pe_rsc_unique   0x00000020ULL

Definition at line 198 of file status.h.

Typedef Documentation

◆ action_t

typedef struct pe_action_s action_t
Deprecated:
Use pe_action_t instead

Definition at line 533 of file status.h.

◆ action_wrapper_t

Deprecated:
Use pe_action_wrapper_t instead

Definition at line 534 of file status.h.

◆ no_quorum_policy_t

Deprecated:
Use enum pe_quorum_policy instead

Definition at line 539 of file status.h.

◆ node_t

typedef struct pe_node_s node_t
Deprecated:
Use pe_node_t instead

Definition at line 535 of file status.h.

◆ pe_action_t

typedef struct pe_action_s pe_action_t

Definition at line 27 of file status.h.

◆ pe_action_wrapper_t

◆ pe_node_t

typedef struct pe_node_s pe_node_t

Definition at line 26 of file status.h.

◆ pe_resource_t

typedef struct pe_resource_s pe_resource_t

Definition at line 28 of file status.h.

◆ pe_tag_t

typedef struct pe_tag_s pe_tag_t

◆ pe_ticket_t

typedef struct pe_ticket_s pe_ticket_t

◆ pe_working_set_t

Definition at line 29 of file status.h.

◆ resource_t

typedef struct pe_resource_s resource_t
Deprecated:
Use pe_resource_t instead

Definition at line 536 of file status.h.

◆ tag_t

typedef struct pe_tag_s tag_t
Deprecated:
Use pe_tag_t instead

Definition at line 537 of file status.h.

◆ ticket_t

typedef struct pe_ticket_s ticket_t
Deprecated:
Use pe_ticket_t instead

Definition at line 538 of file status.h.

Enumeration Type Documentation

◆ node_type

enum node_type
Enumerator
node_ping 
node_member 
node_remote 

Definition at line 40 of file status.h.

◆ pe_action_flags

Enumerator
pe_action_pseudo 
pe_action_runnable 
pe_action_optional 
pe_action_print_always 
pe_action_have_node_attrs 
pe_action_implied_by_stonith 
pe_action_migrate_runnable 
pe_action_dumped 
pe_action_processed 
pe_action_clear 
pe_action_dangle 
pe_action_requires_any 
pe_action_reschedule 
pe_action_tracking 

Definition at line 233 of file status.h.

◆ pe_check_parameters

Enumerator
pe_check_last_failure 
pe_check_active 

Definition at line 140 of file status.h.

◆ pe_discover_e

Enumerator
pe_discover_always 
pe_discover_never 
pe_discover_exclusive 

Definition at line 405 of file status.h.

◆ pe_find

enum pe_find

Determine behavior of pe_find_resource_with_flags()

Enumerator
pe_find_renamed 

match resource ID or LRM history ID

pe_find_anon 

match base name of anonymous clone instances

pe_find_clone 

match only clone instances

pe_find_current 

match resource active on specified node

pe_find_inactive 

match resource not running anywhere

pe_find_any 

match base name of any clone instance

Definition at line 53 of file status.h.

◆ pe_graph_flags

Enumerator
pe_graph_none 
pe_graph_updated_first 
pe_graph_updated_then 
pe_graph_disable 

Definition at line 225 of file status.h.

◆ pe_link_state

Enumerator
pe_link_not_dumped 
pe_link_dumped 
pe_link_dup 

Definition at line 399 of file status.h.

◆ pe_ordering

Enumerator
pe_order_none 
pe_order_optional 
pe_order_apply_first_non_migratable 
pe_order_implies_first 
pe_order_implies_then 
pe_order_implies_first_master 
pe_order_implies_first_migratable 
pe_order_runnable_left 
pe_order_pseudo_left 
pe_order_implies_then_on_node 
pe_order_probe 
pe_order_restart 
pe_order_stonith_stop 
pe_order_serialize_only 
pe_order_same_node 
pe_order_implies_first_printed 
pe_order_implies_then_printed 
pe_order_asymmetrical 
pe_order_load 
pe_order_one_or_more 
pe_order_anti_colocation 
pe_order_preserve 
pe_order_then_cancels_first 
pe_order_trace 

Definition at line 412 of file status.h.

◆ pe_quorum_policy

Enumerator
no_quorum_freeze 
no_quorum_stop 
no_quorum_ignore 
no_quorum_suicide 

Definition at line 33 of file status.h.

◆ pe_restart

enum pe_restart
Deprecated:
will be removed in a future release
Enumerator
pe_restart_restart 
pe_restart_ignore 

Definition at line 47 of file status.h.

Function Documentation

◆ cleanup_calculations()

void cleanup_calculations ( pe_working_set_t data_set)

Reset working set to default state without freeing it or constraints.

Parameters
[in,out]data_setWorking set to reset
Deprecated:
This function is deprecated as part of the API; pe_reset_working_set() should be used instead.

Definition at line 256 of file status.c.

◆ cluster_status()

gboolean cluster_status ( pe_working_set_t data_set)

Definition at line 68 of file status.c.

◆ find_operations()

GListPtr find_operations ( const char *  rsc,
const char *  node,
gboolean  active_filter,
pe_working_set_t data_set 
)

Definition at line 3423 of file unpack.c.

◆ pe_bundle_replicas()

int pe_bundle_replicas ( const resource_t rsc)

Get the number of configured replicas in a bundle.

Parameters
[in]rscBundle resource
Returns
Number of configured replicas, or 0 on error

Definition at line 1618 of file container.c.

◆ pe_find_node()

pe_node_t* pe_find_node ( GListPtr  node_list,
const char *  uname 
)

Definition at line 412 of file status.c.

◆ pe_find_node_any()

pe_node_t* pe_find_node_any ( GListPtr  node_list,
const char *  id,
const char *  uname 
)

Definition at line 384 of file status.c.

◆ pe_find_node_id()

pe_node_t* pe_find_node_id ( GListPtr  node_list,
const char *  id 
)

Definition at line 396 of file status.c.

◆ pe_find_resource()

pe_resource_t* pe_find_resource ( GListPtr  rsc_list,
const char *  id_rh 
)

Definition at line 360 of file status.c.

◆ pe_find_resource_with_flags()

pe_resource_t* pe_find_resource_with_flags ( GListPtr  rsc_list,
const char *  id,
enum pe_find  flags 
)

Definition at line 366 of file status.c.

◆ pe_free_working_set()

void pe_free_working_set ( pe_working_set_t data_set)

Free a working set.

Parameters
[in]data_setWorking set to free

Definition at line 48 of file status.c.

◆ pe_new_working_set()

pe_working_set_t* pe_new_working_set ( void  )

Create a new working set.

Returns
New, initialized working set on success, else NULL (and set errno)
Note
Only pe_working_set_t objects created with this function (as opposed to statically declared or directly allocated) should be used with the functions in this library, to allow for future extensions to the data type. The caller is responsible for freeing the memory with pe_free_working_set() when the instance is no longer needed.

Definition at line 32 of file status.c.

◆ pe_reset_working_set()

void pe_reset_working_set ( pe_working_set_t data_set)

Reset a working set to default state without freeing it.

Parameters
[in,out]data_setWorking set to reset

Definition at line 315 of file status.c.

◆ rsc_printable_id()

const char* rsc_printable_id ( pe_resource_t rsc)

Definition at line 2105 of file utils.c.

◆ set_working_set_defaults()

void set_working_set_defaults ( pe_working_set_t data_set)

Definition at line 345 of file status.c.