pacemaker 2.1.4-dc6eb4362e
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>
18# include <crm/pengine/internal.h>
19# include <crm/common/xml.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
60 enum pe_action_flags,
61 enum pe_ordering,
64
66 void (*append_meta) (pe_resource_t * rsc, xmlNode * xml);
67
84 GList *all_rscs, GHashTable *utilization);
85
93};
94
95GHashTable *pcmk__native_merge_weights(pe_resource_t *rsc, const char *rhs,
96 GHashTable *nodes, const char *attr,
97 float factor, uint32_t flags);
98
99GHashTable *pcmk__group_merge_weights(pe_resource_t *rsc, const char *rhs,
100 GHashTable *nodes, const char *attr,
101 float factor, uint32_t flags);
102
108 pcmk__colocation_t *constraint,
111 pcmk__colocation_t *constraint,
114
115void native_rsc_location(pe_resource_t *rsc, pe__location_t *constraint);
117extern 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);
119extern void native_append_meta(pe_resource_t * rsc, xmlNode * xml);
121 pe_resource_t *orig_rsc, GList *all_rscs,
122 GHashTable *utilization);
124
129void group_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary,
130 pcmk__colocation_t *constraint,
132void group_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary,
133 pcmk__colocation_t *constraint,
136void group_rsc_location(pe_resource_t *rsc, pe__location_t *constraint);
138extern 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);
164void pcmk__bundle_append_meta(pe_resource_t *rsc, xmlNode *xml);
166 GList *all_rscs, GHashTable *utilization);
168
173void clone_rsc_colocation_lh(pe_resource_t *dependent, pe_resource_t *primary,
174 pcmk__colocation_t *constraint,
176void clone_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary,
177 pcmk__colocation_t *constraint,
179void clone_rsc_location(pe_resource_t *rsc, pe__location_t *constraint);
182extern 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);
184extern void clone_append_meta(pe_resource_t * rsc, xmlNode * xml);
186 GList *all_rscs, GHashTable *utilization);
188
196 pcmk__colocation_t *constraint,
198
200 pe_node_t *node,
202 enum pe_action_flags filter,
203 enum pe_ordering type,
206 pe_node_t *node,
208 enum pe_action_flags filter,
209 enum pe_ordering type,
212 pe_action_t *then,
213 pe_node_t *node,
215 enum pe_action_flags filter,
216 enum pe_ordering type,
218
219void 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
uint64_t flags
Definition: remote.c:3
enum crm_ais_msg_types type
Definition: cpg.c:3
pe_working_set_t * data_set
const char * action
Definition: pcmk_fence.c:29
void native_append_meta(pe_resource_t *rsc, xmlNode *xml)
void pcmk__add_promotion_scores(pe_resource_t *rsc)
void pcmk__group_shutdown_lock(pe_resource_t *rsc)
GHashTable * pcmk__group_merge_weights(pe_resource_t *rsc, const char *rhs, GHashTable *nodes, const char *attr, float factor, uint32_t flags)
enum pe_action_flags pcmk__bundle_action_flags(pe_action_t *action, pe_node_t *node)
void pcmk__bundle_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
pe_node_t * pcmk__native_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)
void pcmk__group_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void pcmk__clone_shutdown_lock(pe_resource_t *rsc)
void promotable_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, 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 group_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void group_create_actions(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 native_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void clone_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
void pcmk__clone_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void pcmk__bundle_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
void pcmk__bundle_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, pe_working_set_t *data_set)
enum pe_action_flags group_action_flags(pe_action_t *action, pe_node_t *node)
void promotable_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
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__bundle_append_meta(pe_resource_t *rsc, xmlNode *xml)
void pcmk__bundle_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
enum pe_action_flags clone_action_flags(pe_action_t *action, pe_node_t *node)
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 pcmk__primitive_add_utilization(pe_resource_t *rsc, pe_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization)
void pcmk__bundle_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void clone_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
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 clone_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
void native_rsc_colocation_rh(pe_resource_t *dependent, pe_resource_t *primary, pcmk__colocation_t *constraint, 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 clone_append_meta(pe_resource_t *rsc, xmlNode *xml)
void native_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
void native_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
gboolean native_create_probe(pe_resource_t *rsc, pe_node_t *node, pe_action_t *complete, gboolean force, 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)
pe_node_t * pcmk__clone_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)
void clone_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
void create_promotable_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__bundle_shutdown_lock(pe_resource_t *rsc)
pe_node_t * pcmk__group_allocate(pe_resource_t *rsc, pe_node_t *preferred, pe_working_set_t *data_set)
void pcmk__primitive_shutdown_lock(pe_resource_t *rsc)
void group_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__log_transition_summary(const char *filename)
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 native_create_actions(pe_resource_t *rsc, pe_working_set_t *data_set)
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)
enum pe_action_flags native_action_flags(pe_action_t *action, pe_node_t *node)
void promote_demote_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void pcmk__bundle_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
GHashTable * pcmk__native_merge_weights(pe_resource_t *rsc, const char *rhs, GHashTable *nodes, const char *attr, float factor, uint32_t flags)
void clone_internal_constraints(pe_resource_t *rsc, pe_working_set_t *data_set)
void group_rsc_location(pe_resource_t *rsc, pe__location_t *constraint)
pe_node_t * pcmk__set_instance_roles(pe_resource_t *rsc, pe_working_set_t *data_set)
void group_append_meta(pe_resource_t *rsc, xmlNode *xml)
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)
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 group_expand(pe_resource_t *rsc, pe_working_set_t *data_set)
pe_weights
pe_graph_flags
Definition: pe_types.h:297
pe_ordering
Definition: pe_types.h:497
pe_action_flags
Definition: pe_types.h:305
Cluster status and scheduling.
void(* 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(* rsc_colocation_lh)(pe_resource_t *, pe_resource_t *, pcmk__colocation_t *, pe_working_set_t *)
void(* append_meta)(pe_resource_t *rsc, xmlNode *xml)
void(* rsc_colocation_rh)(pe_resource_t *, pe_resource_t *, pcmk__colocation_t *, pe_working_set_t *)
void(* output_actions)(pe_resource_t *rsc)
void(* expand)(pe_resource_t *, pe_working_set_t *)
gboolean(* create_probe)(pe_resource_t *, pe_node_t *, pe_action_t *, gboolean, pe_working_set_t *)
void(* shutdown_lock)(pe_resource_t *rsc)
void(* create_actions)(pe_resource_t *, pe_working_set_t *)
void(* internal_constraints)(pe_resource_t *, pe_working_set_t *)
enum pe_action_flags(* action_flags)(pe_action_t *, pe_node_t *)
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)
Wrappers for and extensions to libxml2.