pacemaker  2.1.3-ea053b43a
Scalable High-Availability cluster resource manager
Macros | Typedefs | Functions
lrmd_client.c File Reference
#include <crm_internal.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <glib.h>
#include <dirent.h>
#include <crm/crm.h>
#include <crm/lrmd.h>
#include <crm/lrmd_internal.h>
#include <crm/services.h>
#include <crm/services_internal.h>
#include <crm/common/mainloop.h>
#include <crm/common/ipc_internal.h>
#include <crm/common/remote_internal.h>
#include <crm/msg_xml.h>
#include <crm/stonith-ng.h>
#include <crm/fencing/internal.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <netdb.h>
Include dependency graph for lrmd_client.c:

Go to the source code of this file.

Macros

#define MAX_TLS_RECV_WAIT   10000
 

Typedefs

typedef struct lrmd_private_s lrmd_private_t
 

Functions

 CRM_TRACE_INIT_DATA (lrmd)
 
int lrmd_internal_proxy_send (lrmd_t *lrmd, xmlNode *msg)
 
void lrmd_internal_set_proxy_callback (lrmd_t *lrmd, void *userdata, void(*callback)(lrmd_t *lrmd, void *userdata, xmlNode *msg))
 
void lrmd_list_freeall (lrmd_list_t *head)
 
lrmd_key_value_tlrmd_key_value_add (lrmd_key_value_t *head, const char *key, const char *value)
 
void lrmd_key_value_freeall (lrmd_key_value_t *head)
 
lrmd_event_data_tlrmd_new_event (const char *rsc_id, const char *task, guint interval_ms)
 
lrmd_event_data_tlrmd_copy_event (lrmd_event_data_t *event)
 
void lrmd_free_event (lrmd_event_data_t *event)
 Free an executor event. More...
 
int lrmd_poll (lrmd_t *lrmd, int timeout)
 Poll for a specified timeout period to determine if a message is ready for dispatch. More...
 
bool lrmd_dispatch (lrmd_t *lrmd)
 Use after lrmd_poll returns 1 to read and dispatch a message. More...
 
int lrmd__validate_remote_settings (lrmd_t *lrmd, GHashTable *hash)
 
lrmd_rsc_info_tlrmd_new_rsc_info (const char *rsc_id, const char *standard, const char *provider, const char *type)
 
lrmd_rsc_info_tlrmd_copy_rsc_info (lrmd_rsc_info_t *rsc_info)
 
void lrmd_free_rsc_info (lrmd_rsc_info_t *rsc_info)
 
void lrmd_free_op_info (lrmd_op_info_t *op_info)
 
int lrmd__new (lrmd_t **api, const char *nodename, const char *server, int port)
 
lrmd_tlrmd_api_new (void)
 Create a new connection to the local executor. More...
 
lrmd_tlrmd_remote_api_new (const char *nodename, const char *server, int port)
 Create a new TLS connection to a remote executor. More...
 
void lrmd_api_delete (lrmd_t *lrmd)
 Destroy executor connection object. More...
 
void lrmd__set_result (lrmd_event_data_t *event, enum ocf_exitcode rc, int op_status, const char *exit_reason)
 
void lrmd__reset_result (lrmd_event_data_t *event)
 

Macro Definition Documentation

◆ MAX_TLS_RECV_WAIT

#define MAX_TLS_RECV_WAIT   10000

Definition at line 50 of file lrmd_client.c.

Typedef Documentation

◆ lrmd_private_t

typedef struct lrmd_private_s lrmd_private_t

Function Documentation

◆ CRM_TRACE_INIT_DATA()

CRM_TRACE_INIT_DATA ( lrmd  )

◆ lrmd__new()

int lrmd__new ( lrmd_t **  api,
const char *  nodename,
const char *  server,
int  port 
)

Definition at line 2214 of file lrmd_client.c.

◆ lrmd__reset_result()

void lrmd__reset_result ( lrmd_event_data_t event)

Definition at line 2375 of file lrmd_client.c.

◆ lrmd__set_result()

void lrmd__set_result ( lrmd_event_data_t event,
enum ocf_exitcode  rc,
int  op_status,
const char *  exit_reason 
)

Definition at line 2356 of file lrmd_client.c.

◆ lrmd__validate_remote_settings()

int lrmd__validate_remote_settings ( lrmd_t lrmd,
GHashTable *  hash 
)

Definition at line 932 of file lrmd_client.c.

◆ lrmd_api_delete()

void lrmd_api_delete ( lrmd_t lrmd)

Destroy executor connection object.

Definition at line 2320 of file lrmd_client.c.

◆ lrmd_api_new()

lrmd_t* lrmd_api_new ( void  )

Create a new connection to the local executor.

Definition at line 2302 of file lrmd_client.c.

◆ lrmd_copy_event()

lrmd_event_data_t* lrmd_copy_event ( lrmd_event_data_t event)

Definition at line 207 of file lrmd_client.c.

◆ lrmd_copy_rsc_info()

lrmd_rsc_info_t* lrmd_copy_rsc_info ( lrmd_rsc_info_t rsc_info)

Definition at line 1736 of file lrmd_client.c.

◆ lrmd_dispatch()

bool lrmd_dispatch ( lrmd_t lrmd)

Use after lrmd_poll returns 1 to read and dispatch a message.

Parameters
[in,out]lrmdExecutor connection object
Returns
TRUE if connection is still up, FALSE if disconnected

Definition at line 481 of file lrmd_client.c.

◆ lrmd_free_event()

void lrmd_free_event ( lrmd_event_data_t event)

Free an executor event.

Parameters
[in]Executorevent object to free

Definition at line 243 of file lrmd_client.c.

◆ lrmd_free_op_info()

void lrmd_free_op_info ( lrmd_op_info_t op_info)

Definition at line 1793 of file lrmd_client.c.

◆ lrmd_free_rsc_info()

void lrmd_free_rsc_info ( lrmd_rsc_info_t rsc_info)

Definition at line 1743 of file lrmd_client.c.

◆ lrmd_internal_proxy_send()

int lrmd_internal_proxy_send ( lrmd_t lrmd,
xmlNode *  msg 
)

Definition at line 1894 of file lrmd_client.c.

◆ lrmd_internal_set_proxy_callback()

void lrmd_internal_set_proxy_callback ( lrmd_t lrmd,
void *  userdata,
void(*)(lrmd_t *lrmd, void *userdata, xmlNode *msg)  callback 
)

Definition at line 1874 of file lrmd_client.c.

◆ lrmd_key_value_add()

lrmd_key_value_t* lrmd_key_value_add ( lrmd_key_value_t head,
const char *  key,
const char *  value 
)

Definition at line 146 of file lrmd_client.c.

◆ lrmd_key_value_freeall()

void lrmd_key_value_freeall ( lrmd_key_value_t head)

Definition at line 169 of file lrmd_client.c.

◆ lrmd_list_freeall()

void lrmd_list_freeall ( lrmd_list_t head)

Definition at line 131 of file lrmd_client.c.

◆ lrmd_new_event()

lrmd_event_data_t* lrmd_new_event ( const char *  rsc_id,
const char *  task,
guint  interval_ms 
)

Create a new lrmd_event_data_t object

Parameters
[in]rsc_idID of resource involved in event
[in]taskAction name
[in]interval_msAction interval
Returns
Newly allocated and initialized lrmd_event_data_t
Note
This functions asserts on memory errors, so the return value is guaranteed to be non-NULL. The caller is responsible for freeing the result with lrmd_free_event().

Definition at line 195 of file lrmd_client.c.

◆ lrmd_new_rsc_info()

lrmd_rsc_info_t* lrmd_new_rsc_info ( const char *  rsc_id,
const char *  standard,
const char *  provider,
const char *  type 
)

Definition at line 1722 of file lrmd_client.c.

◆ lrmd_poll()

int lrmd_poll ( lrmd_t lrmd,
int  timeout 
)

Poll for a specified timeout period to determine if a message is ready for dispatch.

Return values
1Message is ready
0Timeout occurred
negativeerrno Error occurred

Definition at line 447 of file lrmd_client.c.

◆ lrmd_remote_api_new()

lrmd_t* lrmd_remote_api_new ( const char *  nodename,
const char *  server,
int  port 
)

Create a new TLS connection to a remote executor.

Parameters
nodenamename of remote node identified with this connection
servername of server to connect to
portport number to connect to
Note
nodename and server may be the same value.

Definition at line 2311 of file lrmd_client.c.