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