pacemaker  2.1.2-ada5c3b36
Scalable High-Availability cluster resource manager
services_compat.h
Go to the documentation of this file.
1 /*
2  * Copyright 2010-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 PCMK__SERVICES_COMPAT__H
11 # define PCMK__SERVICES_COMPAT__H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
26 #include <crm/common/results.h>
27 
28 # ifndef LSB_ROOT_DIR
29 # define LSB_ROOT_DIR "/etc/init.d"
31 # endif
32 
34 enum op_status {
47 };
48 
50 svc_action_t *services_action_create(const char *name, const char *action,
51  guint interval_ms, int timeout);
52 
54 GList *services_list(void);
55 
57 static inline const char *
58 services_lrm_status_str(enum op_status status)
59 {
60  return pcmk_exec_status_str((enum pcmk_exec_status) status);
61 }
62 
64 static inline enum ocf_exitcode
65 services_get_ocf_exitcode(const char *action, int lsb_exitcode)
66 {
67  /* For non-status actions, LSB and OCF share error code meaning <= 7 */
68  if (action && strcmp(action, "status") && strcmp(action, "monitor")) {
71  }
72  return (enum ocf_exitcode)lsb_exitcode;
73  }
74 
75  /* status has different return codes */
76  switch (lsb_exitcode) {
77  case PCMK_LSB_STATUS_OK:
78  return PCMK_OCF_OK;
86  return PCMK_OCF_NOT_RUNNING;
87  }
89 }
90 
91 #ifdef __cplusplus
92 }
93 #endif
94 
95 #endif
ocf_exitcode
Exit status codes for resource agents.
Definition: results.h:161
No connection to executor.
Definition: results.h:316
Service safely stopped.
Definition: results.h:169
Action did not complete in time.
Definition: results.h:310
Execution failed, do not retry on node.
Definition: results.h:313
Action was cancelled.
Definition: results.h:309
const char * action
Definition: pcmk_fence.c:30
op_status
Used only to initialize variables.
Definition: results.h:306
Object for executing external actions.
Definition: services.h:120
Insufficient privileges.
Definition: results.h:166
GList * services_list(void)
Definition: services_lsb.c:337
Action completed, result is known.
Definition: results.h:308
Execution failed, do not retry anywhere.
Definition: results.h:314
Dependencies not available locally.
Definition: results.h:167
Function and executable result codes.
lsb_exitcode
Definition: services.h:56
Unspecified error.
Definition: results.h:163
svc_action_t * services_action_create(const char *name, const char *action, guint interval_ms, int timeout)
Definition: services_lsb.c:329
Agent does not implement requested action.
Definition: results.h:311
Success.
Definition: results.h:162
Agent or dependency not available locally.
Definition: results.h:315
Action is in progress.
Definition: results.h:307
pcmk_exec_status
Execution status.
Definition: results.h:305
Action cannot be attempted (e.g. shutdown)
Definition: results.h:317
char * name
Definition: pcmk_fence.c:31
unsigned int timeout
Definition: pcmk_fence.c:32
Execution failed, may be retried.
Definition: results.h:312