pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
libpacemaker_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2021-2024 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 PCMK__PACEMAKER_LIBPACEMAKER_PRIVATE__H
11#define PCMK__PACEMAKER_LIBPACEMAKER_PRIVATE__H
12
13/* This header is for the sole use of libpacemaker, so that functions can be
14 * declared with G_GNUC_INTERNAL for efficiency.
15 */
16
17#include <stdio.h> // NULL
18#include <stdint.h> // uint32_t
19#include <stdbool.h> // bool, false
20#include <glib.h> // guint, gpointer, GList, GHashTable
21#include <libxml/tree.h> // xmlNode
22
23#include <crm/common/scheduler.h> // pcmk_action_t, pcmk_node_t, etc.
24#include <crm/common/scheduler_internal.h> // pcmk__location_t, etc.
25#include <crm/cib.h> // cib_t
26#include <crm/lrmd_events.h> // lrmd_event_data_t
27#include <crm/pengine/internal.h> // pe__const_top_resource(), etc.
28#include <pacemaker.h> // pcmk_injections_t
29#include <pacemaker-internal.h> // pcmk__colocation_t
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35// Colocation flags
38
39 // Primary is affected even if already active
41
42 // Colocation was explicitly configured in CIB
44};
45
46// Flags to modify the behavior of add_colocated_node_scores()
48 // With no other flags, apply all "with this" colocations
50
51 // Apply "this with" colocations instead of "with this" colocations
53
54 // Apply only colocations with non-negative scores
56
57 // Apply only colocations with at least one matching node
59};
60
61// Flags the update_ordered_actions() method can return
63 pcmk__updated_none = 0, // Nothing changed
64 pcmk__updated_first = (1 << 0), // First action was updated
65 pcmk__updated_then = (1 << 1), // Then action was updated
66};
67
68#define pcmk__set_updated_flags(au_flags, action, flags_to_set) do { \
69 au_flags = pcmk__set_flags_as(__func__, __LINE__, \
70 LOG_TRACE, "Action update", \
71 (action)->uuid, au_flags, \
72 (flags_to_set), #flags_to_set); \
73 } while (0)
74
75#define pcmk__clear_updated_flags(au_flags, action, flags_to_clear) do { \
76 au_flags = pcmk__clear_flags_as(__func__, __LINE__, \
77 LOG_TRACE, "Action update", \
78 (action)->uuid, au_flags, \
79 (flags_to_clear), #flags_to_clear); \
80 } while (0)
81
82// Resource assignment methods
104 pcmk_node_t *(*assign)(pcmk_resource_t *rsc, const pcmk_node_t *prefer,
105 bool stop_if_fail);
106
114
125
133
150 const pcmk_resource_t *primary,
151 const pcmk__colocation_t *colocation,
152 bool for_dependent);
153
171 GList *(*colocated_resources)(const pcmk_resource_t *rsc,
172 const pcmk_resource_t *orig_rsc,
173 GList *colocated_rscs);
174
193 const pcmk_resource_t *orig_rsc,
194 GList **list);
195
215 const pcmk_resource_t *orig_rsc,
216 GList **list);
217
248 const pcmk_resource_t *target_rsc,
249 const char *log_id, GHashTable **nodes,
250 const pcmk__colocation_t *colocation,
251 float factor, uint32_t flags);
252
261
274 uint32_t (*action_flags)(pcmk_action_t *action, const pcmk_node_t *node);
275
301 pcmk_action_t *then,
302 const pcmk_node_t *node, uint32_t flags,
303 uint32_t filter, uint32_t type,
305
313
321
332 void (*add_graph_meta)(const pcmk_resource_t *rsc, xmlNode *xml);
333
350 const pcmk_resource_t *orig_rsc, GList *all_rscs,
351 GHashTable *utilization);
352
360};
361
362// Actions (pcmk_sched_actions.c)
363
364G_GNUC_INTERNAL
367
368G_GNUC_INTERNAL
370 const pcmk_node_t *node, uint32_t flags,
371 uint32_t filter, uint32_t type,
373
374G_GNUC_INTERNAL
375void pcmk__log_action(const char *pre_text, const pcmk_action_t *action,
376 bool details);
377
378G_GNUC_INTERNAL
380 guint interval_ms,
381 const pcmk_node_t *node);
382
383G_GNUC_INTERNAL
385
386G_GNUC_INTERNAL
388
389G_GNUC_INTERNAL
391
392G_GNUC_INTERNAL
394
395G_GNUC_INTERNAL
397 const xmlNode *xml_op);
398
399G_GNUC_INTERNAL
401
402
403// Recurring actions (pcmk_sched_recurring.c)
404
405G_GNUC_INTERNAL
407
408G_GNUC_INTERNAL
409void pcmk__schedule_cancel(pcmk_resource_t *rsc, const char *call_id,
410 const char *task, guint interval_ms,
411 const pcmk_node_t *node, const char *reason);
412
413G_GNUC_INTERNAL
414void pcmk__reschedule_recurring(pcmk_resource_t *rsc, const char *task,
415 guint interval_ms, pcmk_node_t *node);
416
417G_GNUC_INTERNAL
419
420
421// Producing transition graphs (pcmk_graph_producer.c)
422
423G_GNUC_INTERNAL
424bool pcmk__graph_has_loop(const pcmk_action_t *init_action,
425 const pcmk_action_t *action,
427
428G_GNUC_INTERNAL
430
431G_GNUC_INTERNAL
433
434
435// Fencing (pcmk_sched_fencing.c)
436
437G_GNUC_INTERNAL
438void pcmk__order_vs_fence(pcmk_action_t *stonith_op,
440
441G_GNUC_INTERNAL
444 enum pcmk__action_relation_flags order);
445
446G_GNUC_INTERNAL
448
449G_GNUC_INTERNAL
450bool pcmk__node_unfenced(const pcmk_node_t *node);
451
452G_GNUC_INTERNAL
453void pcmk__order_restart_vs_unfence(gpointer data, gpointer user_data);
454
455
456// Injected scheduler inputs (pcmk_sched_injections.c)
457
458G_GNUC_INTERNAL
460 const pcmk_injections_t *injections);
461
462
463// Constraints of any type (pcmk_sched_constraints.c)
464
465G_GNUC_INTERNAL
467 const char *id);
468
469G_GNUC_INTERNAL
470int pcmk__parse_constraint_role(const char *id, const char *role_spec,
471 enum rsc_role_e *role);
472
473G_GNUC_INTERNAL
474xmlNode *pcmk__expand_tags_in_sets(xmlNode *xml_obj,
476
477G_GNUC_INTERNAL
479 const char *id, pcmk_resource_t **rsc,
480 pcmk__idref_t **tag);
481
482G_GNUC_INTERNAL
483bool pcmk__tag_to_set(xmlNode *xml_obj, xmlNode **rsc_set, const char *attr,
484 bool convert_rsc, const pcmk_scheduler_t *scheduler);
485
486G_GNUC_INTERNAL
488
489
490// Location constraints
491
492G_GNUC_INTERNAL
493void pcmk__unpack_location(xmlNode *xml_obj, pcmk_scheduler_t *scheduler);
494
495G_GNUC_INTERNAL
497 int node_score, const char *discover_mode,
498 pcmk_node_t *foo_node);
499
500G_GNUC_INTERNAL
502
503G_GNUC_INTERNAL
505
506
507// Colocation constraints (pcmk_sched_colocation.c)
508
514
515G_GNUC_INTERNAL
516const char *pcmk__colocation_node_attr(const pcmk_node_t *node,
517 const char *attr,
518 const pcmk_resource_t *rsc);
519
520G_GNUC_INTERNAL
522 *dependent,
523 const pcmk_resource_t
524 *primary,
526 *colocation,
527 bool preview);
528
529G_GNUC_INTERNAL
531 const pcmk_resource_t *primary,
532 const pcmk__colocation_t *colocation);
533
534G_GNUC_INTERNAL
536 const pcmk_resource_t *primary,
537 const pcmk__colocation_t *colocation);
538
539G_GNUC_INTERNAL
541 const pcmk_resource_t *target_rsc,
542 const char *log_id, GHashTable **nodes,
543 const pcmk__colocation_t *colocation,
544 float factor, uint32_t flags);
545
546G_GNUC_INTERNAL
547void pcmk__add_dependent_scores(gpointer data, gpointer user_data);
548
549G_GNUC_INTERNAL
551 const pcmk_resource_t *primary,
552 const pcmk__colocation_t *colocation,
553 const GList *primary_nodes,
554 bool merge_scores);
555
556G_GNUC_INTERNAL
557void pcmk__unpack_colocation(xmlNode *xml_obj, pcmk_scheduler_t *scheduler);
558
559G_GNUC_INTERNAL
560void pcmk__add_this_with(GList **list, const pcmk__colocation_t *colocation,
561 const pcmk_resource_t *rsc);
562
563G_GNUC_INTERNAL
564void pcmk__add_this_with_list(GList **list, GList *addition,
565 const pcmk_resource_t *rsc);
566
567G_GNUC_INTERNAL
568void pcmk__add_with_this(GList **list, const pcmk__colocation_t *colocation,
569 const pcmk_resource_t *rsc);
570
571G_GNUC_INTERNAL
572void pcmk__add_with_this_list(GList **list, GList *addition,
573 const pcmk_resource_t *rsc);
574
575G_GNUC_INTERNAL
577
578G_GNUC_INTERNAL
580
581G_GNUC_INTERNAL
582void pcmk__new_colocation(const char *id, const char *node_attr, int score,
583 pcmk_resource_t *dependent, pcmk_resource_t *primary,
584 const char *dependent_role_spec,
585 const char *primary_role_spec, uint32_t flags);
586
587G_GNUC_INTERNAL
589
590G_GNUC_INTERNAL
592 const pcmk_resource_t *rsc);
593
594
595// Ordering constraints (pcmk_sched_ordering.c)
596
597G_GNUC_INTERNAL
598void pcmk__new_ordering(pcmk_resource_t *first_rsc, char *first_task,
599 pcmk_action_t *first_action, pcmk_resource_t *then_rsc,
600 char *then_task, pcmk_action_t *then_action,
601 uint32_t flags, pcmk_scheduler_t *sched);
602
603G_GNUC_INTERNAL
604void pcmk__unpack_ordering(xmlNode *xml_obj, pcmk_scheduler_t *scheduler);
605
606G_GNUC_INTERNAL
608
609G_GNUC_INTERNAL
611 pcmk_action_t *shutdown_op);
612
613G_GNUC_INTERNAL
615
616G_GNUC_INTERNAL
617void pcmk__order_after_each(pcmk_action_t *after, GList *list);
618
619
630#define pcmk__order_resource_actions(first_rsc, first_task, \
631 then_rsc, then_task, flags) \
632 pcmk__new_ordering((first_rsc), \
633 pcmk__op_key((first_rsc)->id, (first_task), 0), \
634 NULL, \
635 (then_rsc), \
636 pcmk__op_key((then_rsc)->id, (then_task), 0), \
637 NULL, (flags), (first_rsc)->priv->scheduler)
638
639#define pcmk__order_starts(rsc1, rsc2, flags) \
640 pcmk__order_resource_actions((rsc1), PCMK_ACTION_START, \
641 (rsc2), PCMK_ACTION_START, (flags))
642
643#define pcmk__order_stops(rsc1, rsc2, flags) \
644 pcmk__order_resource_actions((rsc1), PCMK_ACTION_STOP, \
645 (rsc2), PCMK_ACTION_STOP, (flags))
646
647
648// Ticket constraints (pcmk_sched_tickets.c)
649
650G_GNUC_INTERNAL
651void pcmk__unpack_rsc_ticket(xmlNode *xml_obj, pcmk_scheduler_t *scheduler);
652
653
654// Promotable clone resources (pcmk_sched_promotable.c)
655
656G_GNUC_INTERNAL
658
659G_GNUC_INTERNAL
661
662G_GNUC_INTERNAL
664
665G_GNUC_INTERNAL
667
668G_GNUC_INTERNAL
670
671G_GNUC_INTERNAL
673
674G_GNUC_INTERNAL
676 pcmk_resource_t *dependent,
678 *colocation);
679
680G_GNUC_INTERNAL
682 pcmk_resource_t *dependent,
684 *colocation);
685
686
687// Pacemaker Remote nodes (pcmk_sched_remote.c)
688
689G_GNUC_INTERNAL
691
692G_GNUC_INTERNAL
694
695G_GNUC_INTERNAL
697 const pcmk_node_t *node);
698
699G_GNUC_INTERNAL
701
702G_GNUC_INTERNAL
703void pcmk__substitute_remote_addr(pcmk_resource_t *rsc, GHashTable *params);
704
705G_GNUC_INTERNAL
706void pcmk__add_guest_meta_to_xml(xmlNode *args_xml,
707 const pcmk_action_t *action);
708
709
710// Primitives (pcmk_sched_primitive.c)
711
712G_GNUC_INTERNAL
714 const pcmk_node_t *prefer,
715 bool stop_if_fail);
716
717G_GNUC_INTERNAL
719
720G_GNUC_INTERNAL
722
723G_GNUC_INTERNAL
725 const pcmk_node_t *node);
726
727G_GNUC_INTERNAL
729 const pcmk_resource_t *primary,
730 const pcmk__colocation_t *colocation,
731 bool for_dependent);
732
733G_GNUC_INTERNAL
735 const pcmk_resource_t *orig_rsc,
736 GList **list);
737
738G_GNUC_INTERNAL
740 const pcmk_resource_t *orig_rsc,
741 GList **list);
742
743G_GNUC_INTERNAL
745 bool optional);
746
747G_GNUC_INTERNAL
748void pcmk__primitive_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml);
749
750G_GNUC_INTERNAL
752 const pcmk_resource_t *orig_rsc,
753 GList *all_rscs, GHashTable *utilization);
754
755G_GNUC_INTERNAL
757
758
759// Groups (pcmk_sched_group.c)
760
761G_GNUC_INTERNAL
763 bool stop_if_fail);
764
765G_GNUC_INTERNAL
767
768G_GNUC_INTERNAL
770
771G_GNUC_INTERNAL
773 const pcmk_resource_t *primary,
774 const pcmk__colocation_t *colocation,
775 bool for_dependent);
776
777G_GNUC_INTERNAL
779 const pcmk_resource_t *orig_rsc,
780 GList **list);
781
782G_GNUC_INTERNAL
784 const pcmk_resource_t *orig_rsc,
785 GList **list);
786
787G_GNUC_INTERNAL
789 const pcmk_resource_t *target_rsc,
790 const char *log_id,
791 GHashTable **nodes,
792 const pcmk__colocation_t *colocation,
793 float factor, uint32_t flags);
794
795G_GNUC_INTERNAL
797 pcmk__location_t *location);
798
799G_GNUC_INTERNAL
801 const pcmk_node_t *node);
802
803G_GNUC_INTERNAL
805 pcmk_action_t *then,
806 const pcmk_node_t *node,
807 uint32_t flags, uint32_t filter,
808 uint32_t type,
810
811G_GNUC_INTERNAL
813 const pcmk_resource_t *orig_rsc,
814 GList *colocated_rscs);
815
816G_GNUC_INTERNAL
818 const pcmk_resource_t *orig_rsc,
819 GList *all_rscs, GHashTable *utilization);
820
821G_GNUC_INTERNAL
823
824
825// Clones (pcmk_sched_clone.c)
826
827G_GNUC_INTERNAL
829 bool stop_if_fail);
830
831G_GNUC_INTERNAL
833
834G_GNUC_INTERNAL
836
837G_GNUC_INTERNAL
839
840G_GNUC_INTERNAL
842 const pcmk_resource_t *primary,
843 const pcmk__colocation_t *colocation,
844 bool for_dependent);
845
846G_GNUC_INTERNAL
848 const pcmk_resource_t *orig_rsc,
849 GList **list);
850
851G_GNUC_INTERNAL
853 const pcmk_resource_t *orig_rsc,
854 GList **list);
855
856G_GNUC_INTERNAL
858 pcmk__location_t *constraint);
859
860G_GNUC_INTERNAL
862 const pcmk_node_t *node);
863
864G_GNUC_INTERNAL
866
867G_GNUC_INTERNAL
868void pcmk__clone_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml);
869
870G_GNUC_INTERNAL
872 const pcmk_resource_t *orig_rsc,
873 GList *all_rscs, GHashTable *utilization);
874
875G_GNUC_INTERNAL
877
878// Bundles (pcmk_sched_bundle.c)
879
880G_GNUC_INTERNAL
882 const pcmk_node_t *prefer, bool stop_if_fail);
883
884G_GNUC_INTERNAL
886
887G_GNUC_INTERNAL
889
890G_GNUC_INTERNAL
892
893G_GNUC_INTERNAL
895 const pcmk_resource_t *primary,
896 const pcmk__colocation_t *colocation,
897 bool for_dependent);
898
899G_GNUC_INTERNAL
901 const pcmk_resource_t *orig_rsc,
902 GList **list);
903
904G_GNUC_INTERNAL
906 const pcmk_resource_t *orig_rsc,
907 GList **list);
908
909G_GNUC_INTERNAL
911 pcmk__location_t *constraint);
912
913G_GNUC_INTERNAL
915 const pcmk_node_t *node);
916
917G_GNUC_INTERNAL
919
920G_GNUC_INTERNAL
922
923G_GNUC_INTERNAL
925 const pcmk_resource_t *orig_rsc,
926 GList *all_rscs, GHashTable *utilization);
927
928G_GNUC_INTERNAL
930
931
932// Clone instances or bundle replica containers (pcmk_sched_instances.c)
933
934G_GNUC_INTERNAL
935void pcmk__assign_instances(pcmk_resource_t *collective, GList *instances,
936 int max_total, int max_per_node);
937
938G_GNUC_INTERNAL
939void pcmk__create_instance_actions(pcmk_resource_t *rsc, GList *instances);
940
941G_GNUC_INTERNAL
942bool pcmk__instance_matches(const pcmk_resource_t *instance,
943 const pcmk_node_t *node, enum rsc_role_e role,
944 bool current);
945
946G_GNUC_INTERNAL
948 const pcmk_resource_t *rsc,
949 enum rsc_role_e role,
950 bool current);
951
952G_GNUC_INTERNAL
954 pcmk_action_t *then,
955 const pcmk_node_t *node,
956 uint32_t flags, uint32_t filter,
957 uint32_t type,
959
960G_GNUC_INTERNAL
962 const GList *instances,
963 const pcmk_node_t *node);
964
965
966// Injections (pcmk_injections.c)
967
968G_GNUC_INTERNAL
969xmlNode *pcmk__inject_node(cib_t *cib_conn, const char *node, const char *uuid);
970
971G_GNUC_INTERNAL
972xmlNode *pcmk__inject_node_state_change(cib_t *cib_conn, const char *node,
973 bool up);
974
975G_GNUC_INTERNAL
976xmlNode *pcmk__inject_resource_history(pcmk__output_t *out, xmlNode *cib_node,
977 const char *resource,
978 const char *lrm_name,
979 const char *rclass,
980 const char *rtype,
981 const char *rprovider);
982
983G_GNUC_INTERNAL
984void pcmk__inject_failcount(pcmk__output_t *out, cib_t *cib_conn,
985 xmlNode *cib_node, const char *resource,
986 const char *task, guint interval_ms, int rc,
987 bool infinity);
988
989G_GNUC_INTERNAL
990xmlNode *pcmk__inject_action_result(xmlNode *cib_resource,
991 lrmd_event_data_t *op, const char *node,
992 int target_rc);
993
994
995// Nodes (pcmk_sched_nodes.c)
996
997G_GNUC_INTERNAL
998bool pcmk__node_available(const pcmk_node_t *node, bool consider_score,
999 bool consider_guest);
1000
1001G_GNUC_INTERNAL
1002bool pcmk__any_node_available(GHashTable *nodes);
1003
1004G_GNUC_INTERNAL
1005GHashTable *pcmk__copy_node_table(GHashTable *nodes);
1006
1007G_GNUC_INTERNAL
1008void pcmk__copy_node_tables(const pcmk_resource_t *rsc, GHashTable **copy);
1009
1010G_GNUC_INTERNAL
1011void pcmk__restore_node_tables(pcmk_resource_t *rsc, GHashTable *backup);
1012
1013G_GNUC_INTERNAL
1014GList *pcmk__sort_nodes(GList *nodes, pcmk_node_t *active_node);
1015
1016G_GNUC_INTERNAL
1018
1019G_GNUC_INTERNAL
1021 const pcmk_node_t *node);
1022
1023
1024// Functions applying to more than one variant (pcmk_sched_resource.c)
1025
1026G_GNUC_INTERNAL
1028
1029G_GNUC_INTERNAL
1031 const xmlNode *rsc_entry, bool active_on_node);
1032
1033G_GNUC_INTERNAL
1034GList *pcmk__rscs_matching_id(const char *id,
1036
1037G_GNUC_INTERNAL
1039 const pcmk_resource_t *orig_rsc,
1040 GList *colocated_rscs);
1041
1042G_GNUC_INTERNAL
1043void pcmk__noop_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml);
1044
1045G_GNUC_INTERNAL
1047
1048G_GNUC_INTERNAL
1049bool pcmk__assign_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool force,
1050 bool stop_if_fail);
1051
1052G_GNUC_INTERNAL
1054
1055G_GNUC_INTERNAL
1057 pcmk_resource_t **failed);
1058
1059G_GNUC_INTERNAL
1061
1062G_GNUC_INTERNAL
1063gint pcmk__cmp_instance(gconstpointer a, gconstpointer b);
1064
1065G_GNUC_INTERNAL
1066gint pcmk__cmp_instance_number(gconstpointer a, gconstpointer b);
1067
1068
1069// Functions related to probes (pcmk_sched_probes.c)
1070
1071G_GNUC_INTERNAL
1073
1074G_GNUC_INTERNAL
1076
1077G_GNUC_INTERNAL
1078bool pcmk__probe_resource_list(GList *rscs, pcmk_node_t *node);
1079
1080G_GNUC_INTERNAL
1082
1083
1084// Functions related to live migration (pcmk_sched_migration.c)
1085
1087 const pcmk_node_t *current);
1088
1089void pcmk__abort_dangling_migration(void *data, void *user_data);
1090
1092 const pcmk_node_t *current);
1093
1095
1096
1097// Functions related to node utilization (pcmk_sched_utilization.c)
1098
1099G_GNUC_INTERNAL
1101 const pcmk_node_t *node2);
1102
1103G_GNUC_INTERNAL
1104void pcmk__consume_node_capacity(GHashTable *current_utilization,
1105 const pcmk_resource_t *rsc);
1106
1107G_GNUC_INTERNAL
1108void pcmk__release_node_capacity(GHashTable *current_utilization,
1109 const pcmk_resource_t *rsc);
1110
1111G_GNUC_INTERNAL
1113
1114G_GNUC_INTERNAL
1116 const GList *allowed_nodes);
1117
1118G_GNUC_INTERNAL
1120
1121
1122// Functions related to the scheduler (pcmk_scheduler.c)
1123
1124G_GNUC_INTERNAL
1125int pcmk__init_scheduler(pcmk__output_t *out, xmlNodePtr input, const crm_time_t *date,
1127
1128
1129// General setup functions (pcmk_setup.c)
1130
1131G_GNUC_INTERNAL
1133 pcmk_scheduler_t **scheduler, xmlNode **xml);
1134
1135G_GNUC_INTERNAL
1136int pcmk__setup_output_fencing(pcmk__output_t **out, stonith_t **st, xmlNode **xml);
1137
1138#ifdef __cplusplus
1139}
1140#endif
1141
1142#endif // PCMK__PACEMAKER_LIBPACEMAKER_PRIVATE__H
pcmk__action_relation_flags
const char * name
Definition cib.c:26
Cluster Configuration.
uint64_t flags
Definition remote.c:3
char data[0]
Definition cpg.c:10
enum pcmk_ipc_server type
Definition cpg.c:3
struct crm_time_s crm_time_t
Definition iso8601.h:32
G_GNUC_INTERNAL void pcmk__consume_node_capacity(GHashTable *current_utilization, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL enum pcmk__coloc_affects pcmk__colocation_affects(const pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool preview)
G_GNUC_INTERNAL void pcmk__add_this_with_list(GList **list, GList *addition, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__unpack_ordering(xmlNode *xml_obj, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__unpack_location(xmlNode *xml_obj, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__primitive_add_utilization(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
G_GNUC_INTERNAL void pcmk__unpack_colocation(xmlNode *xml_obj, pcmk_scheduler_t *scheduler)
void pcmk__abort_dangling_migration(void *data, void *user_data)
G_GNUC_INTERNAL void pcmk__bundle_shutdown_lock(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__primitive_shutdown_lock(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__order_vs_fence(pcmk_action_t *stonith_op, pcmk_scheduler_t *scheduler)
void pcmk__create_migration_actions(pcmk_resource_t *rsc, const pcmk_node_t *current)
G_GNUC_INTERNAL bool pcmk__clone_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node)
G_GNUC_INTERNAL pcmk__location_t * pcmk__new_location(const char *id, pcmk_resource_t *rsc, int node_score, const char *discover_mode, pcmk_node_t *foo_node)
G_GNUC_INTERNAL void pcmk__create_recurring_actions(pcmk_resource_t *rsc)
pcmk__coloc_select
@ pcmk__coloc_select_active
@ pcmk__coloc_select_this_with
@ pcmk__coloc_select_nonnegative
@ pcmk__coloc_select_default
G_GNUC_INTERNAL GList * pcmk__group_colocated_resources(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *colocated_rscs)
G_GNUC_INTERNAL int pcmk__primitive_apply_coloc_score(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent)
G_GNUC_INTERNAL void pcmk__block_colocation_dependents(pcmk_action_t *action)
G_GNUC_INTERNAL uint32_t pcmk__group_action_flags(pcmk_action_t *action, const pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__group_with_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL void pcmk__require_promotion_tickets(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__schedule_cancel(pcmk_resource_t *rsc, const char *call_id, const char *task, guint interval_ms, const pcmk_node_t *node, const char *reason)
G_GNUC_INTERNAL void pcmk__primitive_with_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL void pcmk__unassign_resource(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__colocation_intersect_nodes(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, const GList *primary_nodes, bool merge_scores)
G_GNUC_INTERNAL void pcmk__output_bundle_actions(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__with_primitive_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL void pcmk__new_ordering(pcmk_resource_t *first_rsc, char *first_task, pcmk_action_t *first_action, pcmk_resource_t *then_rsc, char *then_task, pcmk_action_t *then_action, uint32_t flags, pcmk_scheduler_t *sched)
G_GNUC_INTERNAL void pcmk__primitive_create_actions(pcmk_resource_t *rsc)
G_GNUC_INTERNAL bool pcmk__any_node_available(GHashTable *nodes)
G_GNUC_INTERNAL pcmk_resource_t * pcmk__find_constraint_resource(GList *rsc_list, const char *id)
G_GNUC_INTERNAL void pcmk__unpack_rsc_ticket(xmlNode *xml_obj, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL pcmk_node_t * pcmk__bundle_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, bool stop_if_fail)
G_GNUC_INTERNAL void pcmk__assign_instances(pcmk_resource_t *collective, GList *instances, int max_total, int max_per_node)
G_GNUC_INTERNAL void pcmk__clone_internal_constraints(pcmk_resource_t *rsc)
G_GNUC_INTERNAL uint32_t pcmk__collective_action_flags(pcmk_action_t *action, const GList *instances, const pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__bundle_apply_location(pcmk_resource_t *rsc, pcmk__location_t *constraint)
G_GNUC_INTERNAL int pcmk__setup_output_cib_sched(pcmk__output_t **out, cib_t **cib, pcmk_scheduler_t **scheduler, xmlNode **xml)
Definition pcmk_setup.c:42
G_GNUC_INTERNAL xmlNode * pcmk__expand_tags_in_sets(xmlNode *xml_obj, const pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL int pcmk__init_scheduler(pcmk__output_t *out, xmlNodePtr input, const crm_time_t *date, pcmk_scheduler_t **scheduler)
G_GNUC_INTERNAL void pcmk__apply_coloc_to_scores(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation)
G_GNUC_INTERNAL uint32_t pcmk__primitive_action_flags(pcmk_action_t *action, const pcmk_node_t *node)
G_GNUC_INTERNAL int pcmk__parse_constraint_role(const char *id, const char *role_spec, enum rsc_role_e *role)
G_GNUC_INTERNAL void pcmk__disable_invalid_orderings(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL int pcmk__group_apply_coloc_score(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent)
G_GNUC_INTERNAL bool pcmk__is_failed_remote_node(const pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__bundle_create_actions(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__update_action_for_orderings(pcmk_action_t *action, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL bool pcmk__tag_to_set(xmlNode *xml_obj, xmlNode **rsc_set, const char *attr, bool convert_rsc, const pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__substitute_remote_addr(pcmk_resource_t *rsc, GHashTable *params)
G_GNUC_INTERNAL xmlNode * pcmk__inject_action_result(xmlNode *cib_resource, lrmd_event_data_t *op, const char *node, int target_rc)
G_GNUC_INTERNAL void pcmk__bundle_with_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL int pcmk__bundle_apply_coloc_score(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent)
G_GNUC_INTERNAL gint pcmk__cmp_instance_number(gconstpointer a, gconstpointer b)
G_GNUC_INTERNAL uint32_t pcmk__update_ordered_actions(pcmk_action_t *first, pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter, uint32_t type, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL pcmk_action_t * pcmk__new_cancel_action(pcmk_resource_t *rsc, const char *name, guint interval_ms, const pcmk_node_t *node)
G_GNUC_INTERNAL uint32_t pcmk__group_update_ordered_actions(pcmk_action_t *first, pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter, uint32_t type, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__log_action(const char *pre_text, const pcmk_action_t *action, bool details)
G_GNUC_INTERNAL pcmk_node_t * pcmk__group_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, bool stop_if_fail)
G_GNUC_INTERNAL pcmk_node_t * pcmk__connection_host_for_action(const pcmk_action_t *action)
G_GNUC_INTERNAL void pcmk__clone_create_actions(pcmk_resource_t *rsc)
G_GNUC_INTERNAL bool pcmk__graph_has_loop(const pcmk_action_t *init_action, const pcmk_action_t *action, pcmk__related_action_t *input)
pcmk__coloc_affects
@ pcmk__coloc_affects_nothing
@ pcmk__coloc_affects_location
@ pcmk__coloc_affects_role
G_GNUC_INTERNAL void pcmk__group_add_utilization(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
G_GNUC_INTERNAL void pcmk__clone_add_utilization(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
pcmk__coloc_flags
@ pcmk__coloc_none
@ pcmk__coloc_influence
@ pcmk__coloc_explicit
G_GNUC_INTERNAL bool pcmk__assign_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool force, bool stop_if_fail)
G_GNUC_INTERNAL bool pcmk__valid_resource_or_tag(const pcmk_scheduler_t *scheduler, const char *id, pcmk_resource_t **rsc, pcmk__idref_t **tag)
G_GNUC_INTERNAL void pcmk__create_promotable_actions(pcmk_resource_t *clone)
G_GNUC_INTERNAL pcmk_resource_t * pcmk__find_compatible_instance(const pcmk_resource_t *match_rsc, const pcmk_resource_t *rsc, enum rsc_role_e role, bool current)
G_GNUC_INTERNAL uint32_t pcmk__clone_action_flags(pcmk_action_t *action, const pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__order_vs_unfence(const pcmk_resource_t *rsc, pcmk_node_t *node, pcmk_action_t *action, enum pcmk__action_relation_flags order)
G_GNUC_INTERNAL const char * pcmk__colocation_node_attr(const pcmk_node_t *node, const char *attr, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL GList * pcmk__with_this_colocations(const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__bundle_add_utilization(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
G_GNUC_INTERNAL GList * pcmk__rscs_matching_id(const char *id, const pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL pcmk_action_t * pcmk__new_shutdown_action(pcmk_node_t *node)
G_GNUC_INTERNAL pcmk_node_t * pcmk__primitive_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, bool stop_if_fail)
G_GNUC_INTERNAL void pcmk__with_clone_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL void pcmk__add_this_with(GList **list, const pcmk__colocation_t *colocation, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__show_node_capacities(const char *desc, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__clone_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml)
G_GNUC_INTERNAL gint pcmk__cmp_instance(gconstpointer a, gconstpointer b)
G_GNUC_INTERNAL void pcmk__primitive_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml)
G_GNUC_INTERNAL uint32_t pcmk__instance_update_ordered_actions(pcmk_action_t *first, pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter, uint32_t type, pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__schedule_probes(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__clone_apply_location(pcmk_resource_t *rsc, pcmk__location_t *constraint)
G_GNUC_INTERNAL void pcmk__order_stops_before_shutdown(pcmk_node_t *node, pcmk_action_t *shutdown_op)
G_GNUC_INTERNAL void pcmk__clone_with_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL bool pcmk__action_is_recurring(const pcmk_action_t *action)
G_GNUC_INTERNAL void pcmk__set_assignment_methods(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__handle_rsc_config_changes(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL int pcmk__apply_coloc_to_priority(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation)
G_GNUC_INTERNAL bool pcmk__colocation_has_influence(const pcmk__colocation_t *colocation, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__order_promotable_instances(pcmk_resource_t *clone)
G_GNUC_INTERNAL GList * pcmk__sort_nodes(GList *nodes, pcmk_node_t *active_node)
G_GNUC_INTERNAL void pcmk__add_with_this_list(GList **list, GList *addition, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__new_colocation(const char *id, const char *node_attr, int score, pcmk_resource_t *dependent, pcmk_resource_t *primary, const char *dependent_role_spec, const char *primary_role_spec, uint32_t flags)
G_GNUC_INTERNAL bool pcmk__action_locks_rsc_to_node(const pcmk_action_t *action)
G_GNUC_INTERNAL void pcmk__group_create_actions(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__fence_guest(pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__order_restart_vs_unfence(gpointer data, gpointer user_data)
G_GNUC_INTERNAL void pcmk__add_with_this(GList **list, const pcmk__colocation_t *colocation, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL bool pcmk__rsc_corresponds_to_guest(const pcmk_resource_t *rsc, const pcmk_node_t *node)
G_GNUC_INTERNAL xmlNode * pcmk__inject_node(cib_t *cib_conn, const char *node, const char *uuid)
G_GNUC_INTERNAL pcmk_node_t * pcmk__clone_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, bool stop_if_fail)
G_GNUC_INTERNAL void pcmk__order_remote_connection_actions(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__schedule_cleanup(pcmk_resource_t *rsc, const pcmk_node_t *node, bool optional)
G_GNUC_INTERNAL bool pcmk__threshold_reached(pcmk_resource_t *rsc, const pcmk_node_t *node, pcmk_resource_t **failed)
void pcmk__order_migration_equivalents(pcmk__action_relation_t *order)
G_GNUC_INTERNAL void pcmk__apply_node_health(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__create_utilization_constraints(pcmk_resource_t *rsc, const GList *allowed_nodes)
G_GNUC_INTERNAL void pcmk__clone_add_actions_to_graph(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__sort_resources(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__apply_orderings(pcmk_scheduler_t *sched)
G_GNUC_INTERNAL int pcmk__update_promotable_dependent_priority(const pcmk_resource_t *primary, pcmk_resource_t *dependent, const pcmk__colocation_t *colocation)
G_GNUC_INTERNAL const pcmk_node_t * pcmk__ban_insufficient_capacity(pcmk_resource_t *rsc)
G_GNUC_INTERNAL bool pcmk__probe_resource_list(GList *rscs, pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__bundle_internal_constraints(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__bundle_add_actions_to_graph(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__restore_node_tables(pcmk_resource_t *rsc, GHashTable *backup)
G_GNUC_INTERNAL void pcmk__primitive_internal_constraints(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__add_dependent_scores(gpointer data, gpointer user_data)
G_GNUC_INTERNAL void pcmk__add_colocated_node_scores(pcmk_resource_t *source_rsc, const pcmk_resource_t *target_rsc, const char *log_id, GHashTable **nodes, const pcmk__colocation_t *colocation, float factor, uint32_t flags)
G_GNUC_INTERNAL void pcmk__with_bundle_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL void pcmk__deduplicate_action_inputs(pcmk_action_t *action)
G_GNUC_INTERNAL GList * pcmk__this_with_colocations(const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__noop_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml)
G_GNUC_INTERNAL void pcmk__promotable_restart_ordering(pcmk_resource_t *rsc)
G_GNUC_INTERNAL bool pcmk__instance_matches(const pcmk_resource_t *instance, const pcmk_node_t *node, enum rsc_role_e role, bool current)
G_GNUC_INTERNAL void pcmk__group_apply_location(pcmk_resource_t *rsc, pcmk__location_t *location)
G_GNUC_INTERNAL void pcmk__copy_node_tables(const pcmk_resource_t *rsc, GHashTable **copy)
G_GNUC_INTERNAL void pcmk__group_internal_constraints(pcmk_resource_t *rsc)
G_GNUC_INTERNAL GList * pcmk__colocated_resources(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *colocated_rscs)
G_GNUC_INTERNAL xmlNode * pcmk__inject_node_state_change(cib_t *cib_conn, const char *node, bool up)
G_GNUC_INTERNAL int pcmk__compare_node_capacities(const pcmk_node_t *node1, const pcmk_node_t *node2)
G_GNUC_INTERNAL void pcmk__order_probes(pcmk_scheduler_t *scheduler)
@ pcmk__updated_none
@ pcmk__updated_first
@ pcmk__updated_then
G_GNUC_INTERNAL int pcmk__setup_output_fencing(pcmk__output_t **out, stonith_t **st, xmlNode **xml)
Definition pcmk_setup.c:97
G_GNUC_INTERNAL void pcmk__with_group_colocations(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
G_GNUC_INTERNAL bool pcmk__check_action_config(pcmk_resource_t *rsc, pcmk_node_t *node, const xmlNode *xml_op)
G_GNUC_INTERNAL void pcmk__reschedule_recurring(pcmk_resource_t *rsc, const char *task, guint interval_ms, pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__clone_shutdown_lock(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__inject_scheduler_input(pcmk_scheduler_t *scheduler, cib_t *cib, const pcmk_injections_t *injections)
G_GNUC_INTERNAL void pcmk__set_instance_roles(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__order_after_each(pcmk_action_t *after, GList *list)
G_GNUC_INTERNAL void pcmk__group_shutdown_lock(pcmk_resource_t *rsc)
G_GNUC_INTERNAL bool pcmk__rsc_agent_changed(pcmk_resource_t *rsc, pcmk_node_t *node, const xmlNode *rsc_entry, bool active_on_node)
G_GNUC_INTERNAL void pcmk__create_instance_actions(pcmk_resource_t *rsc, GList *instances)
G_GNUC_INTERNAL void pcmk__apply_location(pcmk_resource_t *rsc, pcmk__location_t *constraint)
G_GNUC_INTERNAL void pcmk__add_promotion_scores(pcmk_resource_t *rsc)
G_GNUC_INTERNAL pcmk_node_t * pcmk__top_allowed_node(const pcmk_resource_t *rsc, const pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__add_guest_meta_to_xml(xmlNode *args_xml, const pcmk_action_t *action)
Add special guest node meta-attributes to XML.
G_GNUC_INTERNAL bool pcmk__bundle_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__inject_failcount(pcmk__output_t *out, cib_t *cib_conn, xmlNode *cib_node, const char *resource, const char *task, guint interval_ms, int rc, bool infinity)
bool pcmk__rsc_can_migrate(const pcmk_resource_t *rsc, const pcmk_node_t *current)
G_GNUC_INTERNAL void pcmk__create_graph(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL int pcmk__clone_apply_coloc_score(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent)
G_GNUC_INTERNAL bool pcmk__node_unfenced(const pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__release_node_capacity(GHashTable *current_utilization, const pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__apply_locations(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__create_internal_constraints(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL bool pcmk__node_available(const pcmk_node_t *node, bool consider_score, bool consider_guest)
G_GNUC_INTERNAL void pcmk__add_rsc_actions_to_graph(pcmk_resource_t *rsc)
G_GNUC_INTERNAL void pcmk__output_actions(pcmk_scheduler_t *scheduler)
G_GNUC_INTERNAL void pcmk__output_resource_actions(pcmk_resource_t *rsc)
G_GNUC_INTERNAL xmlNode * pcmk__inject_resource_history(pcmk__output_t *out, xmlNode *cib_node, const char *resource, const char *lrm_name, const char *rclass, const char *rtype, const char *rprovider)
G_GNUC_INTERNAL GHashTable * pcmk__copy_node_table(GHashTable *nodes)
G_GNUC_INTERNAL bool pcmk__probe_rsc_on_node(pcmk_resource_t *rsc, pcmk_node_t *node)
G_GNUC_INTERNAL void pcmk__group_add_colocated_node_scores(pcmk_resource_t *source_rsc, const pcmk_resource_t *target_rsc, const char *log_id, GHashTable **nodes, const pcmk__colocation_t *colocation, float factor, uint32_t flags)
G_GNUC_INTERNAL void pcmk__update_dependent_with_promotable(const pcmk_resource_t *primary, pcmk_resource_t *dependent, const pcmk__colocation_t *colocation)
Update dependent for a colocation with a promotable clone.
G_GNUC_INTERNAL uint32_t pcmk__bundle_action_flags(pcmk_action_t *action, const pcmk_node_t *node)
Resource agent executor events.
pcmk_scheduler_t * scheduler
xmlNode * input
High Level API.
stonith_t * st
Definition pcmk_fence.c:30
const char * action
Definition pcmk_fence.c:32
pcmk_node_t node2
pcmk_node_t node1
rsc_role_e
Definition roles.h:34
Scheduler API.
uint32_t(* action_flags)(pcmk_action_t *action, const pcmk_node_t *node)
void(* this_with_colocations)(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
void(* add_graph_meta)(const pcmk_resource_t *rsc, xmlNode *xml)
uint32_t(* update_ordered_actions)(pcmk_action_t *first, pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter, uint32_t type, pcmk_scheduler_t *scheduler)
void(* create_actions)(pcmk_resource_t *rsc)
int(* apply_coloc_score)(pcmk_resource_t *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent)
void(* internal_constraints)(pcmk_resource_t *rsc)
bool(* create_probe)(pcmk_resource_t *rsc, pcmk_node_t *node)
void(* add_colocated_node_scores)(pcmk_resource_t *source_rsc, const pcmk_resource_t *target_rsc, const char *log_id, GHashTable **nodes, const pcmk__colocation_t *colocation, float factor, uint32_t flags)
void(* add_actions_to_graph)(pcmk_resource_t *rsc)
void(* with_this_colocations)(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList **list)
void(* add_utilization)(const pcmk_resource_t *rsc, const pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void(* shutdown_lock)(pcmk_resource_t *rsc)
void(* output_actions)(pcmk_resource_t *rsc)
void(* apply_location)(pcmk_resource_t *rsc, pcmk__location_t *location)
Location constraint object.
This structure contains everything that makes up a single output formatter.
Synthetic cluster events that can be injected into the cluster for running simulations.
Definition pacemaker.h:51
Fencer API connection object.
Definition stonith-ng.h:657