pacemaker  2.1.3-ea053b43a
Scalable High-Availability cluster resource manager
pcmki_sched_allocate.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004-2022 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__PCMKI_PCMKI_SCHED_ALLOCATE__H
11 # define PCMK__PCMKI_PCMKI_SCHED_ALLOCATE__H
12 
13 # include <glib.h>
14 # include <crm/common/xml.h>
15 # include <crm/pengine/status.h>
16 # include <crm/pengine/complex.h>
17 # include <crm/common/xml_internal.h>
18 # include <crm/pengine/internal.h>
19 # include <crm/common/xml.h>
20 # include <pcmki/pcmki_scheduler.h>
21 
23  GHashTable *(*merge_weights) (pe_resource_t *, const char *, GHashTable *, const char *, float,
24  enum pe_weights);
29 
34 
52  GList *(*colocated_resources)(pe_resource_t *rsc, pe_resource_t *orig_rsc,
53  GList *colocated_rscs);
54 
56 
59  pe_node_t *, enum pe_action_flags,
60  enum pe_action_flags,
61  enum pe_ordering,
64 
66  void (*append_meta) (pe_resource_t * rsc, xmlNode * xml);
67 
83  void (*add_utilization)(pe_resource_t *rsc, pe_resource_t *orig_rsc,
84  GList *all_rscs, GHashTable *utilization);
85 
93 };
94 
95 GHashTable *pcmk__native_merge_weights(pe_resource_t *rsc, const char *rhs,
96  GHashTable *nodes, const char *attr,
97  float factor, uint32_t flags);
98 
99 GHashTable *pcmk__group_merge_weights(pe_resource_t *rsc, const char *rhs,
100  GHashTable *nodes, const char *attr,
101  float factor, uint32_t flags);
102 
107 void native_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary,
108  pcmk__colocation_t *constraint,
110 void native_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary,
111  pcmk__colocation_t *constraint,
114 
115 void native_rsc_location(pe_resource_t *rsc, pe__location_t *constraint);
117 extern gboolean native_create_probe(pe_resource_t * rsc, pe_node_t * node, pe_action_t * complete,
118  gboolean force, pe_working_set_t * data_set);
119 extern void native_append_meta(pe_resource_t * rsc, xmlNode * xml);
121  pe_resource_t *orig_rsc, GList *all_rscs,
122  GHashTable *utilization);
124 
129 void group_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary,
130  pcmk__colocation_t *constraint,
132 void group_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary,
133  pcmk__colocation_t *constraint,
136 void group_rsc_location(pe_resource_t *rsc, pe__location_t *constraint);
138 extern void group_append_meta(pe_resource_t * rsc, xmlNode * xml);
140  GList *all_rscs, GHashTable *utilization);
142 
148  pe_action_t *complete, gboolean force,
153  pe_resource_t *primary,
154  pcmk__colocation_t *constraint,
157  pe_resource_t *primary,
158  pcmk__colocation_t *constraint,
162  pe_node_t *node);
164 void pcmk__bundle_append_meta(pe_resource_t *rsc, xmlNode *xml);
166  GList *all_rscs, GHashTable *utilization);
168 
173 void clone_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary,
174  pcmk__colocation_t *constraint,
176 void clone_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary,
177  pcmk__colocation_t *constraint,
179 void clone_rsc_location(pe_resource_t *rsc, pe__location_t *constraint);
182 extern gboolean clone_create_probe(pe_resource_t * rsc, pe_node_t * node, pe_action_t * complete,
183  gboolean force, pe_working_set_t * data_set);
184 extern void clone_append_meta(pe_resource_t * rsc, xmlNode * xml);
186  GList *all_rscs, GHashTable *utilization);
188 
195 void promotable_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary,
196  pcmk__colocation_t *constraint,
198 
200  pe_node_t *node,
201  enum pe_action_flags flags,
202  enum pe_action_flags filter,
203  enum pe_ordering type,
206  pe_node_t *node,
207  enum pe_action_flags flags,
208  enum pe_action_flags filter,
209  enum pe_ordering type,
212  pe_action_t *then,
213  pe_node_t *node,
214  enum pe_action_flags flags,
215  enum pe_action_flags filter,
216  enum pe_ordering type,
218 
219 void pcmk__log_transition_summary(const char *filename);
221  pe_resource_t * rsc, GList *children, notify_data_t **start_notify, notify_data_t **stop_notify, pe_working_set_t * data_set);
222 #endif
void group_append_meta(pe_resource_t *rsc, xmlNode *xml)
enum pe_action_flags clone_action_flags(pe_action_t *action, pe_node_t *node)
void clone_append_meta(pe_resource_t *rsc, xmlNode *xml)
void(* add_utilization)(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
enum pe_action_flags pcmk__bundle_action_flags(pe_action_t *action, pe_node_t *node)
void pcmk__log_transition_summary(const char *filename)
enum pe_graph_flags(* update_actions)(pe_action_t *, pe_action_t *, pe_node_t *, enum pe_action_flags, enum pe_action_flags, enum pe_ordering, pe_working_set_t *data_set)
void pcmk__primitive_shutdown_lock(pe_resource_t *rsc)
void pcmk__group_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void pcmk__primitive_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void group_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
void(* internal_constraints)(pe_resource_t *, pe_working_set_t *)
enum pe_graph_flags native_update_actions(pe_action_t *first, pe_action_t *then, pe_node_t *node, enum pe_action_flags flags, enum pe_action_flags filter, enum pe_ordering type, pe_working_set_t *data_set)
void native_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
enum crm_ais_msg_types type
Definition: cpg.c:48
void native_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
void native_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void pcmk__add_promotion_scores(pe_resource_t *rsc)
GHashTable * pcmk__native_merge_weights(pe_resource_t *rsc, const char *rhs, GHashTable *nodes, const char *attr, float factor, uint32_t flags)
void pcmk__group_shutdown_lock(pe_resource_t *rsc)
void native_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void pcmk__bundle_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
const char * action
Definition: pcmk_fence.c:29
void pcmk__clone_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void promotable_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__bundle_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void native_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void group_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void promotable_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void native_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
gboolean(* create_probe)(pe_resource_t *, pe_node_t *, pe_action_t *, gboolean, pe_working_set_t *)
void create_promotable_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
void clone_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
pe_action_flags
Definition: pe_types.h:305
pe_node_t * pcmk__clone_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)
void(* rsc_colocation_lh)(pe_resource_t *, pe_resource_t *, pcmk__colocation_t *, pe_working_set_t *)
enum pe_graph_flags group_update_actions(pe_action_t *first, pe_action_t *then, pe_node_t *node, enum pe_action_flags flags, enum pe_action_flags filter, enum pe_ordering type, pe_working_set_t *data_set)
void pcmk__bundle_shutdown_lock(pe_resource_t *rsc)
void promote_demote_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void(* expand)(pe_resource_t *, pe_working_set_t *)
GHashTable * pcmk__group_merge_weights(pe_resource_t *rsc, const char *rhs, GHashTable *nodes, const char *attr, float factor, uint32_t flags)
pe_working_set_t * data_set
Wrappers for and extensions to libxml2.
void(* output_actions)(pe_resource_t *rsc)
pe_graph_flags
Definition: pe_types.h:297
void(* append_meta)(pe_resource_t *rsc, xmlNode *xml)
gboolean native_create_probe(pe_resource_t *rsc, pe_node_t *node, pe_action_t *complete, gboolean force, pe_working_set_t *data_set)
void(* rsc_colocation_rh)(pe_resource_t *, pe_resource_t *, pcmk__colocation_t *, pe_working_set_t *)
enum pe_action_flags(* action_flags)(pe_action_t *, pe_node_t *)
void group_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
pe_node_t * pcmk__bundle_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)
gboolean pcmk__bundle_create_probe(pe_resource_t *rsc, pe_node_t *node, pe_action_t *complete, gboolean force, pe_working_set_t *data_set)
void clone_create_pseudo_actions(pe_resource_t *rsc, GList *children, notify_data_t **start_notify, notify_data_t **stop_notify, pe_working_set_t *data_set)
void group_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
enum pe_action_flags group_action_flags(pe_action_t *action, pe_node_t *node)
Cluster status and scheduling.
void pcmk__bundle_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
void clone_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
void group_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
pe_weights
void pcmk__bundle_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void(* rsc_location)(pe_resource_t *, pe__location_t *)
void clone_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__bundle_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
gboolean clone_create_probe(pe_resource_t *rsc, pe_node_t *node, pe_action_t *complete, gboolean force, pe_working_set_t *data_set)
void clone_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void native_append_meta(pe_resource_t *rsc, xmlNode *xml)
void(* create_actions)(pe_resource_t *, pe_working_set_t *)
void clone_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void(* shutdown_lock)(pe_resource_t *rsc)
pe_node_t * pcmk__set_instance_roles(pe_resource_t *rsc, pe_working_set_t *data_set)
void clone_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void group_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__bundle_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
enum pe_action_flags native_action_flags(pe_action_t *action, pe_node_t *node)
enum pe_graph_flags pcmk__multi_update_actions(pe_action_t *first, pe_action_t *then, pe_node_t *node, enum pe_action_flags flags, enum pe_action_flags filter, enum pe_ordering type, pe_working_set_t *data_set)
void pcmk__bundle_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__bundle_append_meta(pe_resource_t *rsc, xmlNode *xml)
pe_ordering
Definition: pe_types.h:497
uint64_t flags
Definition: remote.c:149
void pcmk__clone_shutdown_lock(pe_resource_t *rsc)
pe_node_t * pcmk__native_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)
pe_node_t * pcmk__group_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)