pacemaker  2.1.6-802a72226b
Scalable High-Availability cluster resource manager
services_compat.h
Go to the documentation of this file.
1 /*
2  * Copyright 2010-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__CRM_SERVICES_COMPAT__H
11 # define PCMK__CRM_SERVICES_COMPAT__H
12 
13 
14 #include <crm/common/results.h>
15 #include <crm/services.h>
16 #include <glib.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
31 # ifndef LSB_ROOT_DIR
32 # define LSB_ROOT_DIR "/etc/init.d"
34 # endif
35 
37 enum op_status {
50 };
51 
53 svc_action_t *services_action_create(const char *name, const char *action,
54  guint interval_ms, int timeout);
55 
57 GList *services_list(void);
58 
60 static inline const char *
61 services_lrm_status_str(enum op_status status)
62 {
63  return pcmk_exec_status_str((enum pcmk_exec_status) status);
64 }
65 
67 static inline enum ocf_exitcode
68 services_get_ocf_exitcode(const char *action, int lsb_exitcode)
69 {
70  /* For non-status actions, LSB and OCF share error code meaning <= 7 */
71  if (action && strcmp(action, "status") && strcmp(action, "monitor")) {
74  }
75  return (enum ocf_exitcode)lsb_exitcode;
76  }
77 
78  /* status has different return codes */
79  switch (lsb_exitcode) {
80  case PCMK_LSB_STATUS_OK:
81  return PCMK_OCF_OK;
89  return PCMK_OCF_NOT_RUNNING;
90  }
92 }
93 
94 #ifdef __cplusplus
95 }
96 #endif
97 
98 #endif
Services API.
ocf_exitcode
Exit status codes for resource agents.
Definition: results.h:166
No connection to executor.
Definition: results.h:323
const char * name
Definition: cib.c:24
Service safely stopped.
Definition: results.h:174
Action did not complete in time.
Definition: results.h:317
Execution failed, do not retry on node.
Definition: results.h:320
Action was cancelled.
Definition: results.h:316
const char * action
Definition: pcmk_fence.c:30
op_status
Used only to initialize variables.
Definition: results.h:313
Object for executing external actions.
Definition: services.h:117
Insufficient privileges.
Definition: results.h:171
GList * services_list(void)
Definition: services_lsb.c:335
Action completed, result is known.
Definition: results.h:315
Execution failed, do not retry anywhere.
Definition: results.h:321
Dependencies not available locally.
Definition: results.h:172
Function and executable result codes.
lsb_exitcode
Definition: services.h:49
Unspecified error.
Definition: results.h:168
svc_action_t * services_action_create(const char *name, const char *action, guint interval_ms, int timeout)
Definition: services_lsb.c:327
Agent does not implement requested action.
Definition: results.h:318
Success.
Definition: results.h:167
Agent or dependency not available locally.
Definition: results.h:322
Action is in progress.
Definition: results.h:314
pcmk_exec_status
Execution status.
Definition: results.h:312
Action cannot be attempted (e.g. shutdown)
Definition: results.h:324
unsigned int timeout
Definition: pcmk_fence.c:32
Execution failed, may be retried.
Definition: results.h:319