pacemaker  2.0.3-4b1f869f0f
Scalable High-Availability cluster resource manager
pe_types.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004-2019 the Pacemaker project contributors
3  *
4  * The version control history for this file may have further details.
5  *
6  * This source code is licensed under the GNU Lesser General Public License
7  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8  */
9 
10 #ifndef PE_TYPES__H
11 # define PE_TYPES__H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
23 # include <stdbool.h> // bool
24 # include <sys/types.h> // time_t
25 # include <glib.h> // gboolean, guint, GList, GHashTable
26 # include <crm/crm.h> // GListPtr
27 # include <crm/common/iso8601.h>
28 # include <crm/pengine/common.h>
29 
30 typedef struct pe_node_s pe_node_t;
31 typedef struct pe_action_s pe_action_t;
34 
36  pe_unknown = -1,
37  pe_native = 0,
38  pe_group = 1,
39  pe_clone = 2,
41 };
42 
45  pe_resource_t *(*find_rsc) (pe_resource_t *parent, const char *search,
46  const pe_node_t *node, int flags);
47  /* parameter result must be free'd */
48  char *(*parameter) (pe_resource_t*, pe_node_t*, gboolean, const char*,
50  void (*print) (pe_resource_t*, const char*, long, void*);
51  gboolean (*active) (pe_resource_t*, gboolean);
52  enum rsc_role_e (*state) (const pe_resource_t*, gboolean);
53  pe_node_t *(*location) (const pe_resource_t*, GList**, int);
54  void (*free) (pe_resource_t*);
55  void (*count) (pe_resource_t*);
57 
59 
65 };
66 
67 enum node_type {
71 };
72 
74 enum pe_restart {
77 };
78 
80 enum pe_find {
81  pe_find_renamed = 0x001,
82  pe_find_anon = 0x002,
83  pe_find_clone = 0x004,
84  pe_find_current = 0x008,
85  pe_find_inactive = 0x010,
86  pe_find_any = 0x020,
87 };
88 
89 # define pe_flag_have_quorum 0x00000001ULL
90 # define pe_flag_symmetric_cluster 0x00000002ULL
91 # define pe_flag_maintenance_mode 0x00000008ULL
92 
93 # define pe_flag_stonith_enabled 0x00000010ULL
94 # define pe_flag_have_stonith_resource 0x00000020ULL
95 # define pe_flag_enable_unfencing 0x00000040ULL
96 # define pe_flag_concurrent_fencing 0x00000080ULL
97 
98 # define pe_flag_stop_rsc_orphans 0x00000100ULL
99 # define pe_flag_stop_action_orphans 0x00000200ULL
100 # define pe_flag_stop_everything 0x00000400ULL
101 
102 # define pe_flag_start_failure_fatal 0x00001000ULL
103 # define pe_flag_remove_after_stop 0x00002000ULL
104 # define pe_flag_startup_fencing 0x00004000ULL
105 
106 # define pe_flag_startup_probes 0x00010000ULL
107 # define pe_flag_have_status 0x00020000ULL
108 # define pe_flag_have_remote_nodes 0x00040000ULL
109 
110 # define pe_flag_quick_location 0x00100000ULL
111 # define pe_flag_sanitized 0x00200000ULL
112 # define pe_flag_stdout 0x00400000ULL
113 
115 # define pe_flag_no_counts 0x00800000ULL
116 
118  xmlNode *input;
120 
121  /* options extracted from the input */
122  char *dc_uuid;
124  const char *stonith_action;
125  const char *placement_strategy;
126 
127  unsigned long long flags;
128 
131 
132  GHashTable *config_hash;
133  GHashTable *tickets;
134 
135  // Actions for which there can be only one (e.g. fence nodeX)
136  GHashTable *singletons;
137 
144 
146  xmlNode *failed;
147  xmlNode *op_defaults;
148  xmlNode *rsc_defaults;
149 
150  /* stats */
153  int order_id;
155 
156  /* final output */
157  xmlNode *graph;
158 
159  GHashTable *template_rsc_sets;
160  const char *localhost;
161  GHashTable *tags;
162 
165 
166  GList *param_check; // History entries that need to be checked
167  GList *stop_needed; // Containers that need stop actions
168  time_t recheck_by; // Hint to controller to re-run scheduler by this time
169  int ninstances; // Total number of resource instances
170 };
171 
173  /* Clear fail count if parameters changed for un-expired start or monitor
174  * last_failure.
175  */
177 
178  /* Clear fail count if parameters changed for start, monitor, promote, or
179  * migrate_from actions for active resources.
180  */
182 };
183 
185  const char *id;
186  const char *uname;
188 
189  /* @TODO convert these flags into a bitfield */
190  gboolean online;
191  gboolean standby;
192  gboolean standby_onfail;
193  gboolean pending;
194  gboolean unclean;
195  gboolean unseen;
196  gboolean shutdown;
197  gboolean expected_up;
198  gboolean is_dc;
199  gboolean maintenance;
203  gboolean remote_maintenance; /* what the remote-rsc is thinking */
204  gboolean unpacked;
205 
208  GListPtr running_rsc; /* pe_resource_t* */
209  GListPtr allocated_rsc; /* pe_resource_t* */
210 
211  GHashTable *attrs; /* char* => char* */
212  GHashTable *utilization;
213  GHashTable *digest_cache;
214 };
215 
216 struct pe_node_s {
217  int weight;
218  gboolean fixed;
219  int count;
222 };
223 
224 # define pe_rsc_orphan 0x00000001ULL
225 # define pe_rsc_managed 0x00000002ULL
226 # define pe_rsc_block 0x00000004ULL
227 # define pe_rsc_orphan_container_filler 0x00000008ULL
228 
229 # define pe_rsc_notify 0x00000010ULL
230 # define pe_rsc_unique 0x00000020ULL
231 # define pe_rsc_fence_device 0x00000040ULL
232 # define pe_rsc_promotable 0x00000080ULL
233 
234 # define pe_rsc_provisional 0x00000100ULL
235 # define pe_rsc_allocating 0x00000200ULL
236 # define pe_rsc_merging 0x00000400ULL
237 
238 # define pe_rsc_reload 0x00002000ULL
239 # define pe_rsc_allow_remote_remotes 0x00004000ULL
240 
241 # define pe_rsc_failed 0x00010000ULL
242 # define pe_rsc_runnable 0x00040000ULL
243 # define pe_rsc_start_pending 0x00080000ULL
244 
245 # define pe_rsc_starting 0x00100000ULL
246 # define pe_rsc_stopping 0x00200000ULL
247 # define pe_rsc_allow_migrate 0x00800000ULL
248 
249 # define pe_rsc_failure_ignored 0x01000000ULL
250 # define pe_rsc_maintenance 0x04000000ULL
251 # define pe_rsc_is_container 0x08000000ULL
252 
253 # define pe_rsc_needs_quorum 0x10000000ULL
254 # define pe_rsc_needs_fencing 0x20000000ULL
255 # define pe_rsc_needs_unfencing 0x40000000ULL
256 
258  pe_graph_none = 0x00000,
261  pe_graph_disable = 0x00004,
262 };
263 
264 /* *INDENT-OFF* */
266  pe_action_pseudo = 0x00001,
270 
274 
275  pe_action_dumped = 0x00100,
277  pe_action_clear = 0x00400,
278  pe_action_dangle = 0x00800,
279 
280  /* This action requires one or more of its dependencies to be runnable.
281  * We use this to clear the runnable flag before checking dependencies.
282  */
284 
287  pe_action_dedup = 0x08000,
288 };
289 /* *INDENT-ON* */
290 
292  char *id;
293  char *clone_name;
294  xmlNode *xml;
295  xmlNode *orig_xml;
296  xmlNode *ops_xml;
297 
300 
305 
307 
308  // @TODO only pe_restart_restart is of interest, so merge into flags
310 
311  int priority;
318 
319  unsigned long long flags;
320 
321  // @TODO merge these into flags
322  gboolean is_remote_node;
324 
327  GListPtr rsc_cons_lhs; // List of rsc_colocation_t*
328  GListPtr rsc_cons; // List of rsc_colocation_t*
329  GListPtr rsc_location; // List of pe__location_t*
330  GListPtr actions; // List of pe_action_t*
331  GListPtr rsc_tickets; // List of rsc_ticket*
333 
337  GListPtr running_on; /* pe_node_t* */
338  GHashTable *known_on; /* pe_node_t* */
339  GHashTable *allowed_nodes; /* pe_node_t* */
340 
343 
344  GHashTable *meta;
345  GHashTable *parameters;
346  GHashTable *utilization;
347 
348  GListPtr children; /* pe_resource_t* */
349  GListPtr dangling_migrations; /* pe_node_t* */
350 
353 
354  pe_node_t *pending_node; // Node on which pending_task is happening
355 
356 #if ENABLE_VERSIONED_ATTRS
357  xmlNode *versioned_parameters;
358 #endif
359 };
360 
361 #if ENABLE_VERSIONED_ATTRS
362 // Used as action->action_details if action->rsc is not NULL
363 typedef struct pe_rsc_action_details_s {
364  xmlNode *versioned_parameters;
365  xmlNode *versioned_meta;
366 } pe_rsc_action_details_t;
367 #endif
368 
369 struct pe_action_s {
370  int id;
371  int priority;
372 
375  xmlNode *op_entry;
376 
377  char *task;
378  char *uuid;
379  char *cancel_task;
380  char *reason;
381 
386 
387  GHashTable *meta;
388  GHashTable *extra;
389 
390  /*
391  * These two varables are associated with the constraint logic
392  * that involves first having one or more actions runnable before
393  * then allowing this action to execute.
394  *
395  * These varables are used with features such as 'clone-min' which
396  * requires at minimum X number of cloned instances to be running
397  * before an order dependency can run. Another option that uses
398  * this is 'require-all=false' in ordering constrants. This option
399  * says "only require one instance of a resource to start before
400  * allowing dependencies to start" -- basically, require-all=false is
401  * the same as clone-min=1.
402  */
403 
404  /* current number of known runnable actions in the before list. */
406  /* the number of "before" runnable actions required for this action
407  * to be considered runnable */
409 
410  GListPtr actions_before; /* pe_action_wrapper_t* */
411  GListPtr actions_after; /* pe_action_wrapper_t* */
412 
413  /* Some of the above fields could be moved to the details,
414  * except for API backward compatibility.
415  */
416  void *action_details; // varies by type of action
417 };
418 
419 typedef struct pe_ticket_s {
420  char *id;
421  gboolean granted;
422  time_t last_granted;
423  gboolean standby;
424  GHashTable *state;
425 } pe_ticket_t;
426 
427 typedef struct pe_tag_s {
428  char *id;
430 } pe_tag_t;
431 
437 };
438 
443 };
444 
445 /* *INDENT-OFF* */
447  pe_order_none = 0x0, /* deleted */
448  pe_order_optional = 0x1, /* pure ordering, nothing implied */
449  pe_order_apply_first_non_migratable = 0x2, /* Only apply this constraint's ordering if first is not migratable. */
450 
451  pe_order_implies_first = 0x10, /* If 'then' is required, ensure 'first' is too */
452  pe_order_implies_then = 0x20, /* If 'first' is required, ensure 'then' is too */
453  pe_order_implies_first_master = 0x40, /* Imply 'first' is required when 'then' is required and then's rsc holds Master role. */
454 
455  /* first requires then to be both runnable and migrate runnable. */
457 
458  pe_order_runnable_left = 0x100, /* 'then' requires 'first' to be runnable */
459 
460  pe_order_pseudo_left = 0x200, /* 'then' can only be pseudo if 'first' is runnable */
461  pe_order_implies_then_on_node = 0x400, /* If 'first' is required on 'nodeX',
462  * ensure instances of 'then' on 'nodeX' are too.
463  * Only really useful if 'then' is a clone and 'first' is not
464  */
465  pe_order_probe = 0x800, /* If 'first->rsc' is
466  * - running but about to stop, ignore the constraint
467  * - otherwise, behave as runnable_left
468  */
469 
470  pe_order_restart = 0x1000, /* 'then' is runnable if 'first' is optional or runnable */
471  pe_order_stonith_stop = 0x2000, /* only applies if the action is non-pseudo */
472  pe_order_serialize_only = 0x4000, /* serialize */
473  pe_order_same_node = 0x8000, /* applies only if 'first' and 'then' are on same node */
474 
475  pe_order_implies_first_printed = 0x10000, /* Like ..implies_first but only ensures 'first' is printed, not mandatory */
476  pe_order_implies_then_printed = 0x20000, /* Like ..implies_then but only ensures 'then' is printed, not mandatory */
477 
478  pe_order_asymmetrical = 0x100000, /* Indicates asymmetrical one way ordering constraint. */
479  pe_order_load = 0x200000, /* Only relevant if... */
480  pe_order_one_or_more = 0x400000, /* 'then' is runnable only if one or more of its dependencies are too */
482 
483  pe_order_preserve = 0x1000000, /* Hack for breaking user ordering constraints with container resources */
484  pe_order_then_cancels_first = 0x2000000, // if 'then' becomes required, 'first' becomes optional
485  pe_order_trace = 0x4000000, /* test marker */
486 };
487 /* *INDENT-ON* */
488 
489 typedef struct pe_action_wrapper_s {
494 
495 // Deprecated type aliases
496 typedef struct pe_action_s action_t;
498 typedef struct pe_node_s node_t;
499 typedef struct pe_resource_s resource_t;
500 typedef struct pe_tag_s tag_t;
501 typedef struct pe_ticket_s ticket_t;
503 
504 #ifdef __cplusplus
505 }
506 #endif
507 
508 #endif // PE_TYPES__H
pe_action_flags
pe_action_flags
Definition: pe_types.h:265
pe_node_s::count
int count
Definition: pe_types.h:219
pe_resource_s::priority
int priority
Definition: pe_types.h:311
pe_ticket_s::last_granted
time_t last_granted
Definition: pe_types.h:422
pe_native
Definition: pe_types.h:37
pe_resource_s::stickiness
int stickiness
Definition: pe_types.h:312
GListPtr
GList * GListPtr
Definition: crm.h:214
pe_working_set_s::input
xmlNode * input
Definition: pe_types.h:118
pe_working_set_s::now
crm_time_t * now
Definition: pe_types.h:119
action_fail_response
action_fail_response
Definition: common.h:36
pe_action_s::needs
enum rsc_start_requirement needs
Definition: pe_types.h:383
pe_container
Definition: pe_types.h:40
pe_resource_s::exclusive_discover
gboolean exclusive_discover
Definition: pe_types.h:323
pe_resource_s::variant
enum pe_obj_types variant
Definition: pe_types.h:301
pe_tag_s::id
char * id
Definition: pe_types.h:428
pe_node_shared_s::rsc_discovery_enabled
gboolean rsc_discovery_enabled
Definition: pe_types.h:200
pe_resource_s::dangling_migrations
GListPtr dangling_migrations
Definition: pe_types.h:349
pe_working_set_s::resources
GListPtr resources
Definition: pe_types.h:139
pe_action_s::actions_before
GListPtr actions_before
Definition: pe_types.h:410
pe_node_shared_s::expected_up
gboolean expected_up
Definition: pe_types.h:197
pe_order_one_or_more
Definition: pe_types.h:480
pe_resource_s::actions
GListPtr actions
Definition: pe_types.h:330
pe_action_tracking
Definition: pe_types.h:286
no_quorum_freeze
Definition: pe_types.h:61
pe_working_set_s::max_valid_nodes
int max_valid_nodes
Definition: pe_types.h:152
pe_resource_s::next_role
enum rsc_role_e next_role
Definition: pe_types.h:342
flags
uint64_t flags
Definition: remote.c:148
pe_node_shared_s::unseen
gboolean unseen
Definition: pe_types.h:195
pe_working_set_s::nodes
GListPtr nodes
Definition: pe_types.h:138
pe_resource_s::variant_opaque
void * variant_opaque
Definition: pe_types.h:302
pe_working_set_s::rsc_defaults
xmlNode * rsc_defaults
Definition: pe_types.h:148
pe_resource_s::utilization
GHashTable * utilization
Definition: pe_types.h:346
pe_working_set_s::recheck_by
time_t recheck_by
Definition: pe_types.h:168
pe_resource_s::rsc_cons_lhs
GListPtr rsc_cons_lhs
Definition: pe_types.h:327
pe_node_shared_s::remote_rsc
pe_resource_t * remote_rsc
Definition: pe_types.h:207
pe_working_set_s::disabled_resources
int disabled_resources
Definition: pe_types.h:164
pe_working_set_s::blocked_resources
int blocked_resources
Definition: pe_types.h:163
pe_action_s::on_fail
enum action_fail_response on_fail
Definition: pe_types.h:384
pe_link_dup
Internal tracking for transition graph creation.
Definition: pe_types.h:436
pe_order_runnable_left
Definition: pe_types.h:458
pe_ticket_s::granted
gboolean granted
Definition: pe_types.h:421
pe_link_state
pe_link_state
Internal tracking for transition graph creation.
Definition: pe_types.h:433
pe_resource_s::known_on
GHashTable * known_on
Definition: pe_types.h:338
pe_resource_s::children
GListPtr children
Definition: pe_types.h:348
pe_resource_s::id
char * id
Definition: pe_types.h:292
pe_resource_s::allocated_to
pe_node_t * allocated_to
Definition: pe_types.h:334
rsc_role_e
rsc_role_e
Definition: common.h:86
pe_working_set_s::stonith_timeout
int stonith_timeout
Definition: pe_types.h:129
pe_node_shared_s::running_rsc
GListPtr running_rsc
Definition: pe_types.h:208
pe_restart
pe_restart
Definition: pe_types.h:74
pe_action_requires_any
Definition: pe_types.h:283
pe_action_s::op_entry
xmlNode * op_entry
Definition: pe_types.h:375
pe_working_set_s::num_synapse
int num_synapse
Definition: pe_types.h:151
pe_action_s::extra
GHashTable * extra
Definition: pe_types.h:388
pe_find_inactive
match resource not running anywhere
Definition: pe_types.h:85
pe_node_s::weight
int weight
Definition: pe_types.h:217
pe_action_pseudo
Definition: pe_types.h:266
pe_node_shared_s::digest_cache
GHashTable * digest_cache
cache of calculated resource digests
Definition: pe_types.h:213
pe_node_s::details
struct pe_node_shared_s * details
Definition: pe_types.h:220
pe_action_have_node_attrs
Definition: pe_types.h:271
pe_action_s::required_runnable_before
int required_runnable_before
Definition: pe_types.h:408
pe_working_set_s::stonith_action
const char * stonith_action
Definition: pe_types.h:124
pe_obj_types
pe_obj_types
Definition: pe_types.h:35
pe_action_s::runnable_before
int runnable_before
Definition: pe_types.h:405
pe_node_shared_s::id
const char * id
Definition: pe_types.h:185
pe_action_s::actions_after
GListPtr actions_after
Definition: pe_types.h:411
pe_working_set_s::dc_node
pe_node_t * dc_node
Definition: pe_types.h:123
pe_working_set_s::action_id
int action_id
Definition: pe_types.h:154
pe_find_any
match base name of any clone instance
Definition: pe_types.h:86
pe_resource_s::pending_node
pe_node_t * pending_node
Definition: pe_types.h:354
pe_ticket_t
struct pe_ticket_s pe_ticket_t
pe_working_set_s::stop_needed
GList * stop_needed
Definition: pe_types.h:167
pe_working_set_s::dc_uuid
char * dc_uuid
Definition: pe_types.h:122
pe_resource_s::meta
GHashTable * meta
Definition: pe_types.h:344
pe_action_print_always
Definition: pe_types.h:269
pe_node_shared_s::pending
gboolean pending
Definition: pe_types.h:193
node_remote
Definition: pe_types.h:70
pe_ticket_s
Definition: pe_types.h:419
pe_working_set_s::order_id
int order_id
Definition: pe_types.h:153
pe_resource_s::recovery_type
enum rsc_recovery_type recovery_type
Definition: pe_types.h:306
pe_action_s::flags
enum pe_action_flags flags
Definition: pe_types.h:382
pe_order_asymmetrical
Definition: pe_types.h:478
pe_group
Definition: pe_types.h:38
pe_resource_s::fillers
GListPtr fillers
Definition: pe_types.h:352
pe_resource_s::running_on
GListPtr running_on
Definition: pe_types.h:337
pe_resource_s::orig_xml
xmlNode * orig_xml
Definition: pe_types.h:295
pe_resource_s::partial_migration_target
pe_node_t * partial_migration_target
Definition: pe_types.h:335
pe_node_shared_s::utilization
GHashTable * utilization
Definition: pe_types.h:212
pe_restart_ignore
Definition: pe_types.h:76
rsc_start_requirement
rsc_start_requirement
Definition: common.h:80
pe_node_shared_s::standby_onfail
gboolean standby_onfail
Definition: pe_types.h:192
pe_action_wrapper_s
Definition: pe_types.h:489
pe_node_shared_s::is_dc
gboolean is_dc
Definition: pe_types.h:198
pe_action_s::cancel_task
char * cancel_task
Definition: pe_types.h:379
pe_discover_e
pe_discover_e
Definition: pe_types.h:439
pe_order_serialize_only
Definition: pe_types.h:472
pe_working_set_s::placement_strategy
const char * placement_strategy
Definition: pe_types.h:125
pe_action_wrapper_s::state
enum pe_link_state state
Definition: pe_types.h:491
pe_node_shared_s::remote_requires_reset
gboolean remote_requires_reset
Definition: pe_types.h:201
rsc_recovery_type
rsc_recovery_type
Definition: common.h:74
resource_object_functions_s::free
void(* free)(pe_resource_t *)
Definition: pe_types.h:54
pe_working_set_s::tags
GHashTable * tags
Definition: pe_types.h:161
pe_action_s::uuid
char * uuid
Definition: pe_types.h:378
pe_order_same_node
Definition: pe_types.h:473
pe_ticket_s::id
char * id
Definition: pe_types.h:420
pe_order_load
Definition: pe_types.h:479
pe_node_shared_s::allocated_rsc
GListPtr allocated_rsc
Definition: pe_types.h:209
resource_object_functions_s::unpack
gboolean(* unpack)(pe_resource_t *, pe_working_set_t *)
Definition: pe_types.h:44
pe_tag_t
struct pe_tag_s pe_tag_t
pe_action_s
Definition: pe_types.h:369
pe_node_shared_s::shutdown
gboolean shutdown
Definition: pe_types.h:196
pe_resource_s::xml
xmlNode * xml
Definition: pe_types.h:294
pe_graph_none
Definition: pe_types.h:258
pe_check_last_failure
Definition: pe_types.h:176
pe_action_s::action_details
void * action_details
Definition: pe_types.h:416
pe_order_anti_colocation
Definition: pe_types.h:481
pe_graph_disable
Definition: pe_types.h:261
pe_working_set_s::colocation_constraints
GListPtr colocation_constraints
Definition: pe_types.h:142
pe_working_set_s::localhost
const char * localhost
Definition: pe_types.h:160
pe_node_s::fixed
gboolean fixed
Definition: pe_types.h:218
resource_object_functions_s::print
void(* print)(pe_resource_t *, const char *, long, void *)
Definition: pe_types.h:50
pe_working_set_s::config_hash
GHashTable * config_hash
Definition: pe_types.h:132
pe_action_implied_by_stonith
Definition: pe_types.h:272
pe_order_pseudo_left
Definition: pe_types.h:460
pe_action_s::node
pe_node_t * node
Definition: pe_types.h:374
resource_object_functions_s::state
enum rsc_role_e(* state)(const pe_resource_t *, gboolean)
Definition: pe_types.h:52
pe_resource_s::sort_index
int sort_index
Definition: pe_types.h:313
pe_link_not_dumped
Definition: pe_types.h:434
pe_order_probe
Definition: pe_types.h:465
pe_order_optional
Definition: pe_types.h:448
pe_node_shared_s::standby
gboolean standby
Definition: pe_types.h:191
pe_node_s::rsc_discover_mode
int rsc_discover_mode
Definition: pe_types.h:221
pe_action_optional
Definition: pe_types.h:268
pe_resource_s::partial_migration_source
pe_node_t * partial_migration_source
Definition: pe_types.h:336
pe_order_implies_first
Definition: pe_types.h:451
pe_tag_s
Definition: pe_types.h:427
no_quorum_policy_t
enum pe_quorum_policy no_quorum_policy_t
Definition: pe_types.h:502
pe_working_set_s::ordering_constraints
GListPtr ordering_constraints
Definition: pe_types.h:141
pe_discover_always
Definition: pe_types.h:440
iso8601.h
ISO_8601 Date handling.
pe_find_clone
match only clone instances
Definition: pe_types.h:83
pe_working_set_s
Definition: pe_types.h:117
pe_resource_s::cluster
pe_working_set_t * cluster
Definition: pe_types.h:298
node_member
Definition: pe_types.h:69
pe_action_clear
Definition: pe_types.h:277
pe_action_s::reason
char * reason
Definition: pe_types.h:380
no_quorum_ignore
Definition: pe_types.h:63
resource_alloc_functions_s
Definition: pcmki_sched_allocate.h:20
resource_object_functions_s::active
gboolean(* active)(pe_resource_t *, gboolean)
Definition: pe_types.h:51
pe_resource_s::rsc_cons
GListPtr rsc_cons
Definition: pe_types.h:328
pe_tag_s::refs
GListPtr refs
Definition: pe_types.h:429
pe_working_set_s::template_rsc_sets
GHashTable * template_rsc_sets
Definition: pe_types.h:159
pe_unknown
Definition: pe_types.h:36
pe_working_set_s::placement_constraints
GListPtr placement_constraints
Definition: pe_types.h:140
pe_action_s::id
int id
Definition: pe_types.h:370
pe_ticket_s::state
GHashTable * state
Definition: pe_types.h:424
pe_find_renamed
match resource ID or LRM history ID
Definition: pe_types.h:81
pe_action_dedup
Definition: pe_types.h:287
pe_resource_s::container
pe_resource_t * container
Definition: pe_types.h:351
pe_order_implies_first_master
Definition: pe_types.h:453
pe_working_set_s::actions
GListPtr actions
Definition: pe_types.h:145
pe_order_implies_then_printed
Definition: pe_types.h:476
pe_order_implies_then
Definition: pe_types.h:452
pe_graph_flags
pe_graph_flags
Definition: pe_types.h:257
pe_order_implies_first_printed
Definition: pe_types.h:475
pe_graph_updated_first
Definition: pe_types.h:259
pe_ticket_s::standby
gboolean standby
Definition: pe_types.h:423
pe_action_reschedule
Definition: pe_types.h:285
pe_resource_s::clone_name
char * clone_name
Definition: pe_types.h:293
pe_resource_s::rsc_location
GListPtr rsc_location
Definition: pe_types.h:329
pe_order_then_cancels_first
Definition: pe_types.h:484
common.h
pe_order_none
Definition: pe_types.h:447
pe_action_s::rsc
pe_resource_t * rsc
Definition: pe_types.h:373
pe_resource_s::rsc_tickets
GListPtr rsc_tickets
Definition: pe_types.h:331
pe_resource_s::parent
pe_resource_t * parent
Definition: pe_types.h:299
pe_action_processed
Definition: pe_types.h:276
pe_action_wrapper_t
struct pe_action_wrapper_s pe_action_wrapper_t
pe_order_implies_first_migratable
Definition: pe_types.h:456
pe_find_anon
match base name of anonymous clone instances
Definition: pe_types.h:82
pe_resource_s::flags
unsigned long long flags
Definition: pe_types.h:319
pe_order_trace
Definition: pe_types.h:485
pe_action_migrate_runnable
Definition: pe_types.h:273
pe_resource_s::remote_reconnect_ms
guint remote_reconnect_ms
Definition: pe_types.h:316
pe_order_restart
Definition: pe_types.h:470
pe_clone
Definition: pe_types.h:39
pe_order_implies_then_on_node
Definition: pe_types.h:461
pe_resource_s::role
enum rsc_role_e role
Definition: pe_types.h:341
pe_resource_s::restart_type
enum pe_restart restart_type
Definition: pe_types.h:309
pe_check_parameters
pe_check_parameters
Definition: pe_types.h:172
pe_working_set_s::graph
xmlNode * graph
Definition: pe_types.h:157
resource_object_functions_s
Definition: pe_types.h:43
pe_working_set_s::singletons
GHashTable * singletons
Definition: pe_types.h:136
pe_order_preserve
Definition: pe_types.h:483
pe_node_shared_s::remote_was_fenced
gboolean remote_was_fenced
Definition: pe_types.h:202
pe_working_set_s::ticket_constraints
GListPtr ticket_constraints
Definition: pe_types.h:143
pe_check_active
Definition: pe_types.h:181
pe_action_s::priority
int priority
Definition: pe_types.h:371
pe_action_runnable
Definition: pe_types.h:267
pe_working_set_s::tickets
GHashTable * tickets
Definition: pe_types.h:133
pe_order_apply_first_non_migratable
Definition: pe_types.h:449
pe_action_dangle
Definition: pe_types.h:278
pe_find
pe_find
Determine behavior of pe_find_resource_with_flags()
Definition: pe_types.h:80
pe_node_shared_s
Definition: pe_types.h:184
pe_resource_s::migration_threshold
int migration_threshold
Definition: pe_types.h:315
pe_action_s::fail_role
enum rsc_role_e fail_role
Definition: pe_types.h:385
pe_node_shared_s::unpacked
gboolean unpacked
Definition: pe_types.h:204
pe_resource_s::pending_task
char * pending_task
Definition: pe_types.h:317
pe_find_current
match resource active on specified node
Definition: pe_types.h:84
pe_action_wrapper_s::action
pe_action_t * action
Definition: pe_types.h:492
no_quorum_suicide
Definition: pe_types.h:64
pe_node_shared_s::remote_maintenance
gboolean remote_maintenance
Definition: pe_types.h:203
pe_node_shared_s::maintenance
gboolean maintenance
Definition: pe_types.h:199
pe_resource_s
Definition: pe_types.h:291
resource_object_functions_s::count
void(* count)(pe_resource_t *)
Definition: pe_types.h:55
pe_working_set_s::op_defaults
xmlNode * op_defaults
Definition: pe_types.h:147
pe_resource_s::allowed_nodes
GHashTable * allowed_nodes
Definition: pe_types.h:339
pe_working_set_s::flags
unsigned long long flags
Definition: pe_types.h:127
pe_node_shared_s::unclean
gboolean unclean
Definition: pe_types.h:194
pe_resource_s::ops_xml
xmlNode * ops_xml
Definition: pe_types.h:296
pe_action_dumped
Definition: pe_types.h:275
pe_working_set_s::failed
xmlNode * failed
Definition: pe_types.h:146
pe_working_set_s::ninstances
int ninstances
Definition: pe_types.h:169
pe_working_set_s::no_quorum_policy
enum pe_quorum_policy no_quorum_policy
Definition: pe_types.h:130
pe_link_dumped
Internal tracking for transition graph creation.
Definition: pe_types.h:435
pe_quorum_policy
pe_quorum_policy
Definition: pe_types.h:60
pe_resource_s::failure_timeout
int failure_timeout
Definition: pe_types.h:314
pe_node_shared_s::type
enum node_type type
Definition: pe_types.h:187
pe_node_shared_s::online
gboolean online
Definition: pe_types.h:190
pe_graph_updated_then
Definition: pe_types.h:260
pe_action_s::task
char * task
Definition: pe_types.h:377
pe_node_shared_s::uname
const char * uname
Definition: pe_types.h:186
no_quorum_stop
Definition: pe_types.h:62
pe_resource_s::cmds
resource_alloc_functions_t * cmds
Definition: pe_types.h:304
pe_restart_restart
Definition: pe_types.h:75
pe_discover_exclusive
Definition: pe_types.h:442
pe_resource_s::is_remote_node
gboolean is_remote_node
Definition: pe_types.h:322
pe_node_s
Definition: pe_types.h:216
pe_resource_s::parameters
GHashTable * parameters
Definition: pe_types.h:345
crm.h
A dumping ground.
pe_discover_never
Definition: pe_types.h:441
pe_action_s::meta
GHashTable * meta
Definition: pe_types.h:387
pe_order_stonith_stop
Definition: pe_types.h:471
resource_object_functions_t
struct resource_object_functions_s resource_object_functions_t
pe_resource_s::fns
resource_object_functions_t * fns
Definition: pe_types.h:303
node_type
node_type
Definition: pe_types.h:67
pe_node_shared_s::num_resources
int num_resources
Definition: pe_types.h:206
crm_time_t
struct crm_time_s crm_time_t
Definition: iso8601.h:32
node_ping
Definition: pe_types.h:68
pe_node_shared_s::attrs
GHashTable * attrs
Definition: pe_types.h:211
pe_ordering
pe_ordering
Definition: pe_types.h:446
pe_working_set_s::param_check
GList * param_check
Definition: pe_types.h:166
pe_action_wrapper_s::type
enum pe_ordering type
Definition: pe_types.h:490