Services API.
More...
#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
Go to the source code of this file.
|
enum | lsb_exitcode {
PCMK_LSB_OK = 0,
PCMK_LSB_UNKNOWN_ERROR = 1,
PCMK_LSB_INVALID_PARAM = 2,
PCMK_LSB_UNIMPLEMENT_FEATURE = 3,
PCMK_LSB_INSUFFICIENT_PRIV = 4,
PCMK_LSB_NOT_INSTALLED = 5,
PCMK_LSB_NOT_CONFIGURED = 6,
PCMK_LSB_NOT_RUNNING = 7
} |
|
enum | lsb_status_exitcode {
PCMK_LSB_STATUS_OK = 0,
PCMK_LSB_STATUS_VAR_PID = 1,
PCMK_LSB_STATUS_VAR_LOCK = 2,
PCMK_LSB_STATUS_NOT_RUNNING = 3,
PCMK_LSB_STATUS_UNKNOWN = 4,
PCMK_LSB_STATUS_NOT_INSTALLED = 150,
PCMK_LSB_STATUS_INSUFFICIENT_PRIV = 151
} |
|
enum | ocf_exitcode {
PCMK_OCF_OK = 0,
PCMK_OCF_UNKNOWN_ERROR = 1,
PCMK_OCF_INVALID_PARAM = 2,
PCMK_OCF_UNIMPLEMENT_FEATURE = 3,
PCMK_OCF_INSUFFICIENT_PRIV = 4,
PCMK_OCF_NOT_INSTALLED = 5,
PCMK_OCF_NOT_CONFIGURED = 6,
PCMK_OCF_NOT_RUNNING = 7,
PCMK_OCF_RUNNING_MASTER = 8,
PCMK_OCF_FAILED_MASTER = 9,
PCMK_OCF_CONNECTION_DIED = 189,
PCMK_OCF_DEGRADED = 190,
PCMK_OCF_DEGRADED_MASTER = 191,
PCMK_OCF_EXEC_ERROR = 192,
PCMK_OCF_UNKNOWN = 193,
PCMK_OCF_SIGNAL = 194,
PCMK_OCF_NOT_SUPPORTED = 195,
PCMK_OCF_PENDING = 196,
PCMK_OCF_CANCELLED = 197,
PCMK_OCF_TIMEOUT = 198,
PCMK_OCF_OTHER_ERROR = 199
} |
|
enum | op_status {
PCMK_LRM_OP_PENDING = -1,
PCMK_LRM_OP_DONE,
PCMK_LRM_OP_CANCELLED,
PCMK_LRM_OP_TIMEOUT,
PCMK_LRM_OP_NOTSUPPORTED,
PCMK_LRM_OP_ERROR,
PCMK_LRM_OP_ERROR_HARD,
PCMK_LRM_OP_ERROR_FATAL,
PCMK_LRM_OP_NOT_INSTALLED
} |
|
enum | nagios_exitcode {
NAGIOS_STATE_OK = 0,
NAGIOS_STATE_WARNING = 1,
NAGIOS_STATE_CRITICAL = 2,
NAGIOS_STATE_UNKNOWN = 3,
NAGIOS_STATE_DEPENDENT = 4,
NAGIOS_INSUFFICIENT_PRIV = 100,
NAGIOS_NOT_INSTALLED = 101
} |
|
enum | svc_action_flags { SVC_ACTION_LEAVE_GROUP = 0x01
} |
|
|
GList * | get_directory_list (const char *root, gboolean files, gboolean executable) |
| Get a list of files or directories in a given path. More...
|
|
GList * | services_list (void) |
|
GList * | resources_list_providers (const char *standard) |
| Get a list of providers. More...
|
|
GList * | resources_list_agents (const char *standard, const char *provider) |
| Get a list of resource agents. More...
|
|
GList * | resources_list_standards (void) |
|
svc_action_t * | services_action_create (const char *name, const char *action, int interval, int timeout) |
|
svc_action_t * | resources_action_create (const char *name, const char *standard, const char *provider, const char *agent, const char *action, int interval, int timeout, GHashTable *params, enum svc_action_flags flags) |
| Create a new resource action. More...
|
|
gboolean | services_action_kick (const char *name, const char *action, int interval) |
|
const char * | resources_find_service_class (const char *agent) |
|
svc_action_t * | services_action_create_generic (const char *exec, const char *args[]) |
|
void | services_action_cleanup (svc_action_t *op) |
|
void | services_action_free (svc_action_t *op) |
|
gboolean | services_action_sync (svc_action_t *op) |
|
gboolean | services_action_async (svc_action_t *op, void(*action_callback)(svc_action_t *)) |
|
gboolean | services_action_cancel (const char *name, const char *action, int interval) |
|
Services API.
Definition in file services.h.
#define LSB_ROOT_DIR "/etc/init.d" |
#define OCF_ROOT_DIR "/usr/lib/ocf" |
#define PCMK_OCF_REASON_PREFIX "ocf-exit-reason:" |
#define SERVICE_SCRIPT "/sbin/service" |
#define SYSTEMCTL "/bin/systemctl" |
Enumerator |
---|
PCMK_LSB_OK |
|
PCMK_LSB_UNKNOWN_ERROR |
|
PCMK_LSB_INVALID_PARAM |
|
PCMK_LSB_UNIMPLEMENT_FEATURE |
|
PCMK_LSB_INSUFFICIENT_PRIV |
|
PCMK_LSB_NOT_INSTALLED |
|
PCMK_LSB_NOT_CONFIGURED |
|
PCMK_LSB_NOT_RUNNING |
|
Definition at line 62 of file services.h.
Enumerator |
---|
PCMK_LSB_STATUS_OK |
|
PCMK_LSB_STATUS_VAR_PID |
|
PCMK_LSB_STATUS_VAR_LOCK |
|
PCMK_LSB_STATUS_NOT_RUNNING |
|
PCMK_LSB_STATUS_UNKNOWN |
|
PCMK_LSB_STATUS_NOT_INSTALLED |
|
PCMK_LSB_STATUS_INSUFFICIENT_PRIV |
|
Definition at line 76 of file services.h.
Enumerator |
---|
NAGIOS_STATE_OK |
|
NAGIOS_STATE_WARNING |
|
NAGIOS_STATE_CRITICAL |
|
NAGIOS_STATE_UNKNOWN |
|
NAGIOS_STATE_DEPENDENT |
|
NAGIOS_INSUFFICIENT_PRIV |
|
NAGIOS_NOT_INSTALLED |
|
Definition at line 132 of file services.h.
Enumerator |
---|
PCMK_OCF_OK |
|
PCMK_OCF_UNKNOWN_ERROR |
|
PCMK_OCF_INVALID_PARAM |
|
PCMK_OCF_UNIMPLEMENT_FEATURE |
|
PCMK_OCF_INSUFFICIENT_PRIV |
|
PCMK_OCF_NOT_INSTALLED |
|
PCMK_OCF_NOT_CONFIGURED |
|
PCMK_OCF_NOT_RUNNING |
|
PCMK_OCF_RUNNING_MASTER |
|
PCMK_OCF_FAILED_MASTER |
|
PCMK_OCF_CONNECTION_DIED |
|
PCMK_OCF_DEGRADED |
|
PCMK_OCF_DEGRADED_MASTER |
|
PCMK_OCF_EXEC_ERROR |
|
PCMK_OCF_UNKNOWN |
|
PCMK_OCF_SIGNAL |
|
PCMK_OCF_NOT_SUPPORTED |
|
PCMK_OCF_PENDING |
|
PCMK_OCF_CANCELLED |
|
PCMK_OCF_TIMEOUT |
|
PCMK_OCF_OTHER_ERROR |
|
Definition at line 91 of file services.h.
Enumerator |
---|
PCMK_LRM_OP_PENDING |
|
PCMK_LRM_OP_DONE |
|
PCMK_LRM_OP_CANCELLED |
|
PCMK_LRM_OP_TIMEOUT |
|
PCMK_LRM_OP_NOTSUPPORTED |
|
PCMK_LRM_OP_ERROR |
|
PCMK_LRM_OP_ERROR_HARD |
|
PCMK_LRM_OP_ERROR_FATAL |
|
PCMK_LRM_OP_NOT_INSTALLED |
|
Definition at line 120 of file services.h.
Enumerator |
---|
SVC_ACTION_LEAVE_GROUP |
|
Definition at line 143 of file services.h.
GList* get_directory_list |
( |
const char * |
root, |
|
|
gboolean |
files, |
|
|
gboolean |
executable |
|
) |
| |
Get a list of files or directories in a given path.
- Parameters
-
[in] | root | full path to a directory to read |
[in] | files | return list of files if TRUE or directories if FALSE |
[in] | executable | if TRUE and files is TRUE, only return executable files |
- Returns
- a list of what was found. The list items are char *.
- Note
- It is the caller's responsibility to free the result with g_list_free_full(list, free).
Definition at line 724 of file services.c.
svc_action_t* resources_action_create |
( |
const char * |
name, |
|
|
const char * |
standard, |
|
|
const char * |
provider, |
|
|
const char * |
agent, |
|
|
const char * |
action, |
|
|
int |
interval, |
|
|
int |
timeout, |
|
|
GHashTable * |
params, |
|
|
enum svc_action_flags |
flags |
|
) |
| |
Create a new resource action.
- Parameters
-
[in] | name | name of resource |
[in] | standard | resource agent standard (ocf, lsb, etc.) |
[in] | provider | resource agent provider |
[in] | agent | resource agent name |
[in] | action | action (start, stop, monitor, etc.) |
[in] | interval | how often to repeat this action, in milliseconds (if 0, execute only once) |
[in] | timeout | consider action failed if it does not complete in this many milliseconds |
[in] | params | action parameters |
- Returns
- newly allocated action instance
- Postcondition
- After the call, 'params' is owned, and later free'd by the svc_action_t result
- Note
- The caller is responsible for freeing the return value using services_action_free().
Definition at line 92 of file services.c.
const char* resources_find_service_class |
( |
const char * |
agent | ) |
|
Find the first class that can provide service::${agent}
- Parameters
-
[in] | agent | which agent to search for |
- Returns
- NULL, or the first class that provides the named agent
Definition at line 56 of file services.c.
GList* resources_list_agents |
( |
const char * |
standard, |
|
|
const char * |
provider |
|
) |
| |
Get a list of resource agents.
- Parameters
-
[in] | standard | list agents using this standard (e.g. ocf, lsb, etc.) (or NULL for all) |
[in] | provider | list agents from this provider (or NULL for all) |
- Returns
- a list of resource agents. The list items are char *.
- Note
- The caller is responsible for freeing the result using g_list_free_full(list, free).
Definition at line 795 of file services.c.
GList* resources_list_providers |
( |
const char * |
standard | ) |
|
Get a list of providers.
- Parameters
-
[in] | standard | list providers of this standard (e.g. ocf, lsb, etc.) |
- Returns
- a list of providers as char * list items (or NULL if standard does not support providers)
- Note
- The caller is responsible for freeing the result using g_list_free_full(list, free).
Definition at line 785 of file services.c.
GList* resources_list_standards |
( |
void |
| ) |
|
Get list of available standards
- Returns
- a list of resource standards. The list items are char *. This list must be destroyed using g_list_free_full(list, free).
Definition at line 744 of file services.c.
Run an action asynchronously.
- Parameters
-
[in] | op | services action data |
[in] | action_callback | callback for when the action completes |
- Return values
-
TRUE | succesfully started execution |
FALSE | failed to start execution, no callback will be received |
Definition at line 607 of file services.c.
gboolean services_action_cancel |
( |
const char * |
name, |
|
|
const char * |
action, |
|
|
int |
interval |
|
) |
| |
svc_action_t* services_action_create |
( |
const char * |
name, |
|
|
const char * |
action, |
|
|
int |
interval, |
|
|
int |
timeout |
|
) |
| |
svc_action_t* services_action_create_generic |
( |
const char * |
exec, |
|
|
const char * |
args[] |
|
) |
| |
Utilize services API to execute an arbitrary command.
This API has useful infrastructure in place to be able to run a command in the background and get notified via a callback when the command finishes.
- Parameters
-
[in] | exec | command to execute |
[in] | args | arguments to the command, NULL terminated |
- Returns
- a svc_action_t object, used to pass to the execute function (services_action_sync() or services_action_async()) and is provided to the callback.
Definition at line 318 of file services.c.
gboolean services_action_kick |
( |
const char * |
name, |
|
|
const char * |
action, |
|
|
int |
interval |
|
) |
| |
Kick a recurring action so it is scheduled immediately for re-execution
Definition at line 503 of file services.c.
GList* services_list |
( |
void |
| ) |
|
Get a list of services
- Returns
- a list of services. The list items are gchar *. This list must be destroyed using g_list_free_full(list, free).
Definition at line 730 of file services.c.