pacemaker  2.0.1-9e909a5bdd
Scalable High-Availability cluster resource manager
complex.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004-2019 Andrew Beekhof <andrew@beekhof.net>
3  *
4  * This source code is licensed under the GNU Lesser General Public License
5  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
6  */
7 
8 #ifndef PENGINE_COMPLEX__H
9 # define PENGINE_COMPLEX__H
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #include <glib.h> // gboolean, GList, GHashTable
16 #include <libxml/tree.h> // xmlNode
17 #include <crm/pengine/status.h>
18 
20  pe_unknown = -1,
21  pe_native = 0,
22  pe_group = 1,
23  pe_clone = 2,
25 };
26 
29  pe_resource_t *(*find_rsc) (pe_resource_t *parent, const char *search,
30  const pe_node_t *node, int flags);
31  /* parameter result must be free'd */
32  char *(*parameter) (pe_resource_t*, pe_node_t*, gboolean, const char*,
34  void (*print) (pe_resource_t*, const char*, long, void*);
35  gboolean (*active) (pe_resource_t*, gboolean);
36  enum rsc_role_e (*state) (const pe_resource_t*, gboolean);
37  pe_node_t *(*location) (const pe_resource_t*, GList**, int);
38  void (*free) (pe_resource_t*);
40 
42 void get_meta_attributes(GHashTable * meta_hash, pe_resource_t *rsc,
43  pe_node_t *node, pe_working_set_t *data_set);
44 void get_rsc_attributes(GHashTable *meta_hash, pe_resource_t *rsc,
45  pe_node_t *node, pe_working_set_t *data_set);
46 
47 #ifdef ENABLE_VERSIONED_ATTRS
48 void pe_get_versioned_attributes(xmlNode *meta_hash, pe_resource_t *rsc,
49  pe_node_t *node, pe_working_set_t *data_set);
50 #endif
51 
52 typedef struct resource_alloc_functions_s resource_alloc_functions_t;
53 
54 gboolean is_parent(pe_resource_t *child, pe_resource_t *rsc);
56 
57 #ifdef __cplusplus
58 }
59 #endif
60 
61 #endif
flags
uint64_t flags
Definition: remote.c:3
is_parent
gboolean is_parent(pe_resource_t *child, pe_resource_t *rsc)
Definition: complex.c:727
rsc_role_e
rsc_role_e
Definition: common.h:86
pe_container
@ pe_container
Definition: complex.h:24
uber_parent
pe_resource_t * uber_parent(pe_resource_t *rsc)
Definition: complex.c:744
pe_clone
@ pe_clone
Definition: complex.h:23
resource_object_functions_s::free
void(* free)(pe_resource_t *)
Definition: complex.h:38
resource_object_functions_s::unpack
gboolean(* unpack)(pe_resource_t *, pe_working_set_t *)
Definition: complex.h:28
resource_object_functions_s::print
void(* print)(pe_resource_t *, const char *, long, void *)
Definition: complex.h:34
resource_class_functions
resource_object_functions_t resource_class_functions[]
Definition: complex.c:18
resource_object_functions_s::state
enum rsc_role_e(* state)(const pe_resource_t *, gboolean)
Definition: complex.h:36
pe_group
@ pe_group
Definition: complex.h:22
pe_native
@ pe_native
Definition: complex.h:21
pe_working_set_s
Definition: status.h:87
pe_obj_types
pe_obj_types
Definition: complex.h:19
resource_object_functions_s::active
gboolean(* active)(pe_resource_t *, gboolean)
Definition: complex.h:35
resource_object_functions_t
struct resource_object_functions_s resource_object_functions_t
pe_unknown
@ pe_unknown
Definition: complex.h:20
get_rsc_attributes
void get_rsc_attributes(GHashTable *meta_hash, pe_resource_t *rsc, pe_node_t *node, pe_working_set_t *data_set)
Definition: complex.c:125
resource_object_functions_s
Definition: complex.h:27
pe_resource_s
Definition: status.h:258
get_meta_attributes
void get_meta_attributes(GHashTable *meta_hash, pe_resource_t *rsc, pe_node_t *node, pe_working_set_t *data_set)
Definition: complex.c:91
pe_node_s
Definition: status.h:184
status.h
Cluster status and scheduling.
resource_alloc_functions_t
struct resource_alloc_functions_s resource_alloc_functions_t
Definition: complex.h:52