1 /*
2  * Copyright 2006-2021 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 CRM_INTERNAL__H
11 #  define CRM_INTERNAL__H
12 
13 #  ifndef PCMK__CONFIG_H
14 #    define PCMK__CONFIG_H
15 #    include <config.h>
16 #  endif
17 
18 #  include <portability.h>
19 
20 /* Our minimum glib dependency is 2.42. Define that as both the minimum and
21  * maximum glib APIs that are allowed (i.e. APIs that were already deprecated
22  * in 2.42, and APIs introduced after 2.42, cannot be used by Pacemaker code).
23  */
24 #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_42
25 #define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_42
26 
27 #  include <glib.h>
28 #  include <stdbool.h>
29 #  include <libxml/tree.h>
30 
31 /* Public API headers can guard including deprecated API headers with this
32  * symbol, thus preventing internal code (which includes this header) from using
33  * deprecated APIs, while still allowing external code to use them by default.
34  */
35 #define PCMK_ALLOW_DEPRECATED 0
36 
37 #  include <crm/lrmd.h>
38 #  include <crm/common/logging.h>
39 #  include <crm/common/logging_internal.h>
40 #  include <crm/common/ipc_internal.h>
41 #  include <crm/common/options_internal.h>
42 #  include <crm/common/output_internal.h>
43 #  include <crm/common/xml_internal.h>
44 #  include <crm/common/internal.h>
45 
46 
47 /*
48  * XML attribute names used only by internal code
49  */
50 
51 #define PCMK__XA_ATTR_DAMPENING         "attr_dampening"
52 #define PCMK__XA_ATTR_FORCE             "attrd_is_force_write"
53 #define PCMK__XA_ATTR_INTERVAL          "attr_clear_interval"
54 #define PCMK__XA_ATTR_IS_PRIVATE        "attr_is_private"
55 #define PCMK__XA_ATTR_IS_REMOTE         "attr_is_remote"
56 #define PCMK__XA_ATTR_NAME              "attr_name"
57 #define PCMK__XA_ATTR_NODE_ID           "attr_host_id"
58 #define PCMK__XA_ATTR_NODE_NAME         "attr_host"
59 #define PCMK__XA_ATTR_OPERATION         "attr_clear_operation"
60 #define PCMK__XA_ATTR_PATTERN           "attr_regex"
61 #define PCMK__XA_ATTR_RESOURCE          "attr_resource"
62 #define PCMK__XA_ATTR_SECTION           "attr_section"
63 #define PCMK__XA_ATTR_SET               "attr_set"
64 #define PCMK__XA_ATTR_USER              "attr_user"
65 #define PCMK__XA_ATTR_UUID              "attr_key"
66 #define PCMK__XA_ATTR_VALUE             "attr_value"
67 #define PCMK__XA_ATTR_VERSION           "attr_version"
68 #define PCMK__XA_ATTR_WRITER            "attr_writer"
69 #define PCMK__XA_MODE                   "mode"
70 #define PCMK__XA_TASK                   "task"
71 
72 
73 /*
74  * IPC service names that are only used internally
75  */
76 
77 #  define PCMK__SERVER_BASED_RO		"cib_ro"
78 #  define PCMK__SERVER_BASED_RW		"cib_rw"
79 #  define PCMK__SERVER_BASED_SHM		"cib_shm"
80 
81 /*
82  * IPC commands that can be sent to Pacemaker daemons
83  */
84 
85 #define PCMK__ATTRD_CMD_PEER_REMOVE     "peer-remove"
86 #define PCMK__ATTRD_CMD_UPDATE          "update"
87 #define PCMK__ATTRD_CMD_UPDATE_BOTH     "update-both"
88 #define PCMK__ATTRD_CMD_UPDATE_DELAY    "update-delay"
89 #define PCMK__ATTRD_CMD_QUERY           "query"
90 #define PCMK__ATTRD_CMD_REFRESH         "refresh"
91 #define PCMK__ATTRD_CMD_FLUSH           "flush"
92 #define PCMK__ATTRD_CMD_SYNC            "sync"
93 #define PCMK__ATTRD_CMD_SYNC_RESPONSE   "sync-response"
94 #define PCMK__ATTRD_CMD_CLEAR_FAILURE   "clear-failure"
95 
96 #define PCMK__CONTROLD_CMD_NODES        "list-nodes"
97 
98 /*
99  * Environment variables used by Pacemaker
100  */
101 
102 #define PCMK__ENV_PHYSICAL_HOST         "physical_host"
103 
104 
105 #endif                          /* CRM_INTERNAL__H */
106