pacemaker  1.1.24-3850484742
Scalable High-Availability cluster resource manager
complex.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004-2018 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 # define n_object_classes 3
12 
13 /*#define PE_OBJ_F_ ""*/
14 
15 # define PE_OBJ_T_NATIVE "native"
16 # define PE_OBJ_T_GROUP "group"
17 # define PE_OBJ_T_INCARNATION "clone"
18 # define PE_OBJ_T_MASTER "master"
19 
21  pe_unknown = -1,
22  pe_native = 0,
23  pe_group = 1,
24  pe_clone = 2,
25  pe_master = 3,
27 };
28 
29 enum pe_obj_types get_resource_type(const char *name);
30 const char *get_resource_typename(enum pe_obj_types type);
31 
33  gboolean(*unpack) (resource_t *, pe_working_set_t *);
34  resource_t *(*find_rsc) (resource_t * parent, const char *search, node_t * node, int flags);
35  /* parameter result must be free'd */
36  char *(*parameter) (resource_t *, node_t *, gboolean, const char *, pe_working_set_t *);
37  void (*print) (resource_t *, const char *, long, void *);
38  gboolean(*active) (resource_t *, gboolean);
39  enum rsc_role_e (*state) (const resource_t *, gboolean);
40  pe_node_t *(*location) (const pe_resource_t*, GList**, int);
41  void (*free) (resource_t *);
42  void (*count) (pe_resource_t*);
44 
46 void get_meta_attributes(GHashTable * meta_hash, resource_t * rsc, node_t * node,
47  pe_working_set_t * data_set);
48 void get_rsc_attributes(GHashTable * meta_hash, resource_t * rsc, node_t * node,
49  pe_working_set_t * data_set);
50 
51 #ifdef ENABLE_VERSIONED_ATTRS
52 void pe_get_versioned_attributes(xmlNode * meta_hash, resource_t * rsc, node_t * node,
53  pe_working_set_t * data_set);
54 #endif
55 
56 typedef struct resource_alloc_functions_s resource_alloc_functions_t;
57 
58 gboolean is_parent(resource_t *child, resource_t *rsc);
60 
61 #endif
gboolean is_parent(resource_t *child, resource_t *rsc)
Definition: complex.c:887
void(* free)(resource_t *)
Definition: complex.h:41
void get_rsc_attributes(GHashTable *meta_hash, resource_t *rsc, node_t *node, pe_working_set_t *data_set)
Definition: complex.c:168
enum rsc_role_e(* state)(const resource_t *, gboolean)
Definition: complex.h:39
struct resource_object_functions_s resource_object_functions_t
resource_t * uber_parent(resource_t *rsc)
Definition: complex.c:904
const char * get_resource_typename(enum pe_obj_types type)
Definition: complex.c:99
pe_obj_types
Definition: complex.h:20
void(* count)(pe_resource_t *)
Definition: complex.h:42
resource_object_functions_t resource_class_functions[]
Definition: complex.c:18
gboolean(* active)(resource_t *, gboolean)
Definition: complex.h:38
enum pe_obj_types get_resource_type(const char *name)
Definition: complex.c:77
void(* print)(resource_t *, const char *, long, void *)
Definition: complex.h:37
gboolean(* unpack)(resource_t *, pe_working_set_t *)
Definition: complex.h:33
rsc_role_e
Definition: common.h:81
void get_meta_attributes(GHashTable *meta_hash, resource_t *rsc, node_t *node, pe_working_set_t *data_set)
Definition: complex.c:125
struct resource_alloc_functions_s resource_alloc_functions_t
Definition: complex.h:56
Definition: status.h:209
uint64_t flags
Definition: remote.c:156
enum crm_ais_msg_types type
Definition: internal.h:79