mirror of https://github.com/sipwise/heartbeat.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
900 lines
17 KiB
900 lines
17 KiB
/*
|
|
* Common library for Linux-HA management tool
|
|
*
|
|
* Author: Huang Zhen <zhenhltc@cn.ibm.com>
|
|
* Copyright (C) 2005 International Business Machines
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
*/
|
|
|
|
#ifndef __MGMT_COMMON_H
|
|
#define __MGMT_COMMON_H 1
|
|
|
|
|
|
/*************************PROTOCOL*******************************************/
|
|
|
|
/*
|
|
description
|
|
increased, if daemon-client communication changes in an incompatible way
|
|
*/
|
|
#define MGMT_PROTOCOL_VERSION "1.0"
|
|
|
|
|
|
/*************************MESSAGES*******************************************/
|
|
|
|
#define MSG_OK "ok"
|
|
#define MSG_FAIL "fail"
|
|
|
|
/*
|
|
description:
|
|
login to daemon.
|
|
the username/password must be one of the authorized account on the
|
|
server running the daemon
|
|
format:
|
|
MSG_LOGIN username password protocolversion
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_LOGIN "login"
|
|
|
|
/*
|
|
description:
|
|
logout from daemon
|
|
format:
|
|
MSG_LOGOUT
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_LOGOUT "logout"
|
|
|
|
/*
|
|
description:
|
|
do nothing except return the string ANYSTRING.
|
|
using for test the sanity of daemon.
|
|
format:
|
|
MSG_ECHO anystring
|
|
return:
|
|
MSG_OK anystring
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_ECHO "echo"
|
|
|
|
/*
|
|
description:
|
|
register event EVENTTYPE.
|
|
when the event invoked, the client would be notified.
|
|
format:
|
|
MSG_REGEVT EVENTTYPE
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_REGEVT "regevt"
|
|
|
|
/*
|
|
description:
|
|
return CIB version
|
|
format:
|
|
MSG_CIB_VERSION
|
|
return:
|
|
MSG_OK version
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_CIB_VERSION "cib_version"
|
|
|
|
/*
|
|
description:
|
|
return the metadata of crm
|
|
format:
|
|
MSG_CRM_METADATA CRM_CMD
|
|
return:
|
|
MSG_OK LINE1 LINE2 ... LINEn
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_CRM_METADATA "crm_metadata"
|
|
|
|
/*
|
|
description:
|
|
return CRM configuration
|
|
format:
|
|
MSG_CRM_CONFIG config_key
|
|
return:
|
|
MSG_OK config_value
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_CRM_CONFIG "crm_config"
|
|
#define F_MGMT_TRANSITION_IDEL_TIMEOUT 1
|
|
#define F_MGMT_SYMMETRIC_CLUSTER 2
|
|
#define F_MGMT_STONITH_ENABLED 3
|
|
#define F_MGMT_NO_QUORUM_POLICY 4
|
|
#define F_MGMT_DEFAULT_RESOURCE_STICKINESS 5
|
|
#define F_MGMT_HAVE_QUORUM 6
|
|
#define F_MGMT_RESOURCE_FAILURE_STICKINESS 7
|
|
|
|
|
|
/*
|
|
description:
|
|
update CRM's configuration
|
|
format:
|
|
MSG_UP_CRM_CONFIG config_id config_key config_value
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_CRM_CONFIG "up_crm_config"
|
|
|
|
/*
|
|
description:
|
|
return heartbeat configuration
|
|
format:
|
|
MSG_HB_CONFIG
|
|
return:
|
|
MSG_OK apiauth auto_failback baud debug debugfile deadping deadtime
|
|
hbversion hopfudge initdead keepalive logfacility logfile msgfmt
|
|
nice_failback node normalpoll stonith udpport warntime watchdog
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_HB_CONFIG "hb_config"
|
|
#define F_MGMT_APIAUTH 1
|
|
#define F_MGMT_AUTO_FAILBACK 2
|
|
#define F_MGMT_BAUD 3
|
|
#define F_MGMT_DEBUG 4
|
|
#define F_MGMT_DEBUGFILE 5
|
|
#define F_MGMT_DEADPING 6
|
|
#define F_MGMT_DEADTIME 7
|
|
#define F_MGMT_HBVERSION 8
|
|
#define F_MGMT_HOPFUDGE 9
|
|
#define F_MGMT_INITDEAD 10
|
|
#define F_MGMT_KEEPALIVE 11
|
|
#define F_MGMT_LOGFACILITY 12
|
|
#define F_MGMT_LOGFILE 13
|
|
#define F_MGMT_MSGFMT 14
|
|
#define F_MGMT_NICE_FAILBACK 15
|
|
#define F_MGMT_NODE 16
|
|
#define F_MGMT_NORMALPOLL 17
|
|
#define F_MGMT_STONITH 18
|
|
#define F_MGMT_UDPPORT 19
|
|
#define F_MGMT_WARNTIME 20
|
|
#define F_MGMT_WATCHDOG 21
|
|
#define F_MGMT_CLUSTER 22
|
|
|
|
/*
|
|
description:
|
|
return the name of all nodes configured in cluster
|
|
format:
|
|
MSG_ALLNODES
|
|
return:
|
|
MSG_OK node1 node2 ... noden
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_ALLNODES "all_nodes"
|
|
|
|
/*
|
|
description:
|
|
return node's type
|
|
format:
|
|
MSG_NODE_TYPE NODENAME
|
|
return:
|
|
MSG_OK node_type("normal|ping|unknown")
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_NODE_TYPE "node_type"
|
|
|
|
/*
|
|
description:
|
|
return active nodes configured in cluster
|
|
format:
|
|
MSG_ACTIVENODES
|
|
return:
|
|
MSG_OK node1 node2 ... noden
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_ACTIVENODES "active_nodes"
|
|
|
|
|
|
/*
|
|
description:
|
|
return nodes configured in crm
|
|
format:
|
|
MSG_CRMNODES
|
|
return:
|
|
MSG_OK node1 node2 ... noden
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_CRMNODES "crm_nodes"
|
|
|
|
/*
|
|
description:
|
|
return DC in cluster
|
|
format:
|
|
MSG_DC
|
|
return:
|
|
MSG_OK dc_node
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_DC "dc"
|
|
|
|
/*
|
|
description:
|
|
return node's configured
|
|
format:
|
|
MSG_NODE_CONFIG NODENAME
|
|
return:
|
|
MSG_OK uname online(True|False) standby(True|False) unclean(True|False)
|
|
shutdown(True|False) expected_up(True|False) is_dc(True|False)
|
|
node_ping("ping|member")
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_NODE_CONFIG "node_config"
|
|
#define F_MGMT_UNAME 1
|
|
#define F_MGMT_ONLINE 2
|
|
#define F_MGMT_STANDBY 3
|
|
#define F_MGMT_UNCLEAN 4
|
|
#define F_MGMT_SHUTDOWN 5
|
|
#define F_MGMT_EXPECTED_UP 6
|
|
#define F_MGMT_IS_DC 7
|
|
#define F_MGMT_NODE_PING 8
|
|
|
|
/*
|
|
description:
|
|
set standby on a node
|
|
format:
|
|
MSG_STANDBY node on|off
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL reason
|
|
*/
|
|
#define MSG_STANDBY "standby"
|
|
|
|
|
|
/*
|
|
description:
|
|
return names of all running resources on a given node
|
|
format:
|
|
MSG_RUNNING_RSC node
|
|
return:
|
|
MSG_OK resource1 resource2 ... resourcen
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RUNNING_RSC "running_rsc"
|
|
|
|
/*
|
|
description:
|
|
return all resources in the cluster
|
|
format:
|
|
MSG_ALL_RSC
|
|
return:
|
|
MSG_OK resource1 resource2 ... resourcen
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_ALL_RSC "all_rsc"
|
|
|
|
/*
|
|
description:
|
|
return the attributes of a given resource
|
|
format:
|
|
MSG_RSC_ATTRS resource
|
|
return:
|
|
MSG_OK id class provider type
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_ATTRS "rsc_attrs"
|
|
|
|
/*
|
|
description:
|
|
return the type of a given resource
|
|
format:
|
|
MSG_RSC_TYPE resource
|
|
return:
|
|
MSG_OK type(unknown|native|group|clone|master)
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_TYPE "rsc_type"
|
|
|
|
/*
|
|
description:
|
|
return the sub-resources of a given resource
|
|
format:
|
|
MSG_SUB_RSC resource
|
|
return:
|
|
MSG_OK sub-resource1 sub-resource2 ... sub-resourcen
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_SUB_RSC "sub_rsc"
|
|
|
|
/*
|
|
description:
|
|
return the node on which the given resource is running on
|
|
format:
|
|
MSG_RSC_RUNNING_ON resource
|
|
return:
|
|
MSG_OK node
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_RUNNING_ON "rsc_running_on"
|
|
|
|
/*
|
|
description:
|
|
return the status of a given resource
|
|
format:
|
|
MSG_RSC_STATUS resource
|
|
return:
|
|
MSG_OK status(unknown|unmanaged|failed|multi-running|running|group
|
|
|clone|master)
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_STATUS "rsc_status"
|
|
|
|
/*
|
|
description:
|
|
add a new resource
|
|
format:
|
|
MSG_ADD_RSC rsc_id rsc_class rsc_type rsc_provider group("" for NONE)
|
|
advance(""|"clone"|"master") advance_id clone_max
|
|
clone_node_max master_max master_node_max
|
|
param_id1 param_name1 param_value1
|
|
param_id2 param_name2 param_value2
|
|
...
|
|
param_idn param_namen param_valuen
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_ADD_RSC "add_rsc"
|
|
#define F_MGMT_RSC_ID 1
|
|
#define F_MGMT_RSC_CLASS 2
|
|
#define F_MGMT_RSC_TYPE 3
|
|
#define F_MGMT_RSC_PROVIDER 4
|
|
#define F_MGMT_GROUP 5
|
|
#define F_MGMT_ADVANCE 6
|
|
#define F_MGMT_ADVANCE_ID 7
|
|
#define F_MGMT_CLONE_MAX 8
|
|
#define F_MGMT_CLONE_NODE_MAX 9
|
|
#define F_MGMT_MASTER_MAX 10
|
|
#define F_MGMT_MASTER_NODE_MAX 11
|
|
#define F_MGMT_PARAM_ID1 12
|
|
#define F_MGMT_PARAM_NAME1 13
|
|
#define F_MGMT_PARAM_VALUE1 14
|
|
|
|
/*
|
|
description:
|
|
add a new group
|
|
format:
|
|
MSG_ADD_GRP group
|
|
param_id1 param_name1 param_value1
|
|
param_id2 param_name2 param_value2
|
|
...
|
|
param_idn param_namen param_valuen
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_ADD_GRP "add_grp"
|
|
|
|
/*
|
|
description:
|
|
delete a resource
|
|
notice that the resoruce can be native, group, clone or master
|
|
format:
|
|
MSG_DEL_RSC resource
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_DEL_RSC "del_rsc"
|
|
|
|
/*
|
|
description:
|
|
clean up a unmanaged resource
|
|
format:
|
|
MSG_CLEANUP_RSC resource
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_CLEANUP_RSC "cleanup_rsc"
|
|
|
|
/*
|
|
description:
|
|
move a resource in group
|
|
format:
|
|
MSG_MOVE_RSC resource up|down
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_MOVE_RSC "move_rsc"
|
|
|
|
/*
|
|
description:
|
|
update attribute of a given resource
|
|
format:
|
|
MSG_UP_RSC_ATTR resource name value
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_RSC_ATTR "up_rsc_attr"
|
|
|
|
/*
|
|
description:
|
|
return the meta_attributes of a given resource
|
|
format:
|
|
MSG_RSC_METAATTRS resource
|
|
return:
|
|
MSG_OK id1 name1 value1 id2 name2 value2 ... idn namen valuen
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
|
|
#define MSG_RSC_METAATTRS "rsc_metaattrs"
|
|
|
|
/*
|
|
description:
|
|
update meta_attributes of a given resource
|
|
format:
|
|
MSG_UP_RSC_METAATTRS resource id1 name1 value1 id2 name2 value2
|
|
... idn namen valuen
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_RSC_METAATTRS "up_rsc_metaattrs"
|
|
|
|
/*
|
|
description:
|
|
delete the given meta_attribute
|
|
format:
|
|
MSG_DEL_RSC_METAATTR meta_id
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_DEL_RSC_METAATTR "del_rsc_metaattr"
|
|
|
|
/*
|
|
description:
|
|
return the params of a given resource
|
|
format:
|
|
MSG_RSC_PARAMS resource
|
|
return:
|
|
MSG_OK id1 name1 value1 id2 name2 value2 ... idn namen valuen
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
|
|
#define MSG_RSC_PARAMS "rsc_params"
|
|
|
|
/*
|
|
description:
|
|
update params of a given resource
|
|
format:
|
|
MSG_UP_RSC_PARAMS resource id1 name1 value1 id2 name2 value2
|
|
... idn namen valuen
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_RSC_PARAMS "up_rsc_params"
|
|
|
|
/*
|
|
description:
|
|
delete the given param
|
|
format:
|
|
MSG_DEL_RSC_PARAM param_id
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_DEL_RSC_PARAM "del_rsc_param"
|
|
|
|
/*
|
|
description:
|
|
set the target_role of resource
|
|
format:
|
|
MSG_SET_TARGET_ROLE resource "started"|"stopped"|"default"
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_SET_TARGET_ROLE "set_target_role"
|
|
|
|
/*
|
|
description:
|
|
return the operations of a given resource
|
|
format:
|
|
MSG_RSC_OPS resource
|
|
return:
|
|
MSG_OK id1 name1 interval1 timeout1 id2 name2 interval2 timeout2
|
|
... idn namen intervaln timeoutn
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_OPS "rsc_ops"
|
|
|
|
/*
|
|
description:
|
|
return the operations with all attributs of a given resource
|
|
format:
|
|
MSG_RSC_FULL_OPS resource
|
|
return:
|
|
if we have m ops and each op has n attribute:
|
|
MSG_OK n attr1_1 attr2_1 ... attr_n_1
|
|
attr1_2 attr2_2 ... attr_n_2
|
|
...
|
|
attr1_m attr2_m ... attr_n_m
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_FULL_OPS "rsc_full_ops"
|
|
|
|
/*
|
|
description:
|
|
update operations of a given resource
|
|
format:
|
|
MSG_UP_RSC_OPS resource id1 name1 interval1 timeout1
|
|
id2 name2 interval2 timeout2 ...
|
|
idn namen intervaln timeoutn
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_RSC_OPS "up_rsc_ops"
|
|
|
|
/*
|
|
description:
|
|
update all attributs of operations of a given resource
|
|
format:
|
|
if we have m ops and each op has n attribute:
|
|
MSG_UP_RSC_FULL_OPS resource n
|
|
attr1_1 attr2_1 ... attr_n_1
|
|
attr1_2 attr2_2 ... attr_n_2
|
|
...
|
|
attr1_m attr2_m ... attr_n_m
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_RSC_FULL_OPS "up_rsc_full_ops"
|
|
|
|
/*
|
|
description:
|
|
delete the given operation
|
|
format:
|
|
MSG_DEL_RSC_OP operation
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_DEL_RSC_OP "del_rsc_op"
|
|
|
|
/*
|
|
description:
|
|
update the clone
|
|
format:
|
|
MSG_UPDATE_CLONE clone_id clone_max clone_node_max
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UPDATE_CLONE "up_clone"
|
|
|
|
/*
|
|
description:
|
|
get the clone
|
|
format:
|
|
MSG_GET_CLONE clone_id
|
|
return:
|
|
MSG_OK clone_id clone_max clone_node_max
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_GET_CLONE "get_clone"
|
|
|
|
/*
|
|
description:
|
|
update the master_slave
|
|
format:
|
|
MSG_UPDATE_MASTER master_id clone_max clone_node_max
|
|
master_max master_max_node
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UPDATE_MASTER "up_master"
|
|
|
|
/*
|
|
description:
|
|
get the information of a given master_slave
|
|
format:
|
|
MSG_GET_MASTER master_id
|
|
return:
|
|
MSG_OK master_id clone_max clone_node_max
|
|
master_max master_max_node
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_GET_MASTER "get_master"
|
|
|
|
/*
|
|
description:
|
|
get the name list of a given type of constraints
|
|
format:
|
|
MSG_GET_CONSTRAINTS type(rsc_location|rsc_colocation|rsc_order)
|
|
return:
|
|
MSG_OK constraint_id1 constraint_id2 ... constraint_idn
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_GET_CONSTRAINTS "get_cos"
|
|
|
|
/*
|
|
description:
|
|
get the parameters of a given constraint
|
|
format:
|
|
MSG_GET_CONSTRAINT (rsc_location|rsc_colocation|rsc_order) id
|
|
return:
|
|
rsc_location:
|
|
MSG_OK id resource score expr_id1 attribute1 operation1 value1
|
|
expr_id2 attribute2 operation2 value2 ...
|
|
expr_idn attributen operationn valuen
|
|
rsc_order:
|
|
MSG_OK id from_rsc type to_rsc
|
|
rsc_colocation:
|
|
MSG_OK id from_rsc to_rsc score
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_GET_CONSTRAINT "get_co"
|
|
|
|
/*
|
|
description:
|
|
delete a given constraint
|
|
format:
|
|
MSG_DEL_CONSTRAINT (rsc_location|rsc_colocation|rsc_order) id
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_DEL_CONSTRAINT "del_co"
|
|
|
|
/*
|
|
description:
|
|
update a constraint. if the constraint doesn't exist, create one
|
|
format:
|
|
rsc_location:
|
|
MSG_UP_CONSTRAINT "rsc_location" id resource score expr_id1
|
|
attribute1 operation1 value1 expr_id2 attribute2
|
|
operation2 value2 ... expr_idn attributen operationn
|
|
valuen
|
|
rsc_order:
|
|
MSG_UP_CONSTRAINT "rsc_order" id from_rsc type to_rsc
|
|
rsc_colocation:
|
|
MSG_UP_CONSTRAINT "rsc_colocation" id from_rsc to_rsc score
|
|
return:
|
|
MSG_OK
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_UP_CONSTRAINT "up_co"
|
|
|
|
/*
|
|
description:
|
|
return all resource classes of resource agents
|
|
format:
|
|
MSG_RSC_CLASSES
|
|
return:
|
|
MSG_OK class1 class2 ... classn
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_CLASSES "rsc_classes"
|
|
|
|
/*
|
|
description:
|
|
return all resource type of a given class
|
|
format:
|
|
MSG_RSC_TYPE class
|
|
return:
|
|
MSG_OK type1 type2 ... typen
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_TYPES "rsc_types"
|
|
|
|
/*
|
|
description:
|
|
return all provider of a given class and type
|
|
format:
|
|
MSG_RSC_TYPE class type
|
|
return:
|
|
MSG_OK provider1 provider2 ... providern
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_PROVIDERS "rsc_providers"
|
|
|
|
/*
|
|
description:
|
|
return the metadata of a given resource type
|
|
format:
|
|
MSG_RSC_METADATA RSC class type provider
|
|
return:
|
|
MSG_OK LINE1 LINE2 ... LINEn
|
|
or
|
|
MSG_FAIL
|
|
*/
|
|
#define MSG_RSC_METADATA "rsc_metadata"
|
|
|
|
|
|
/*************************EVENTS*********************************************/
|
|
|
|
/*
|
|
description:
|
|
when the cib changed, client which registered this event will be
|
|
notified with this event message
|
|
format:
|
|
EVT_CIB_CHANGED
|
|
*/
|
|
#define EVT_CIB_CHANGED "evt:cib_changed"
|
|
|
|
/*
|
|
description:
|
|
when the management daemon losts connection with heartbeat, client
|
|
which registered this event will be notified with this event message
|
|
format:
|
|
EVT_DISCONNECTED
|
|
*/
|
|
#define EVT_DISCONNECTED "evt:disconnected"
|
|
|
|
#define EVT_TEST "evt:test"
|
|
|
|
/*************************FUNTIONS*******************************************/
|
|
/*
|
|
mgmt_set_mem_funcs:
|
|
set user own memory functions, like cl_malloc/cl_realloc/cl_free
|
|
for linux-ha 2
|
|
parameters:
|
|
the three memory functions
|
|
return:
|
|
none
|
|
*/
|
|
typedef void* (*malloc_t)(size_t size);
|
|
typedef void* (*realloc_t)(void* oldval, size_t newsize);
|
|
typedef void (*free_t)(void *ptr);
|
|
extern void mgmt_set_mem_funcs(malloc_t m, realloc_t r, free_t f);
|
|
extern void* mgmt_malloc(size_t size);
|
|
extern void* mgmt_realloc(void* oldval, size_t newsize);
|
|
extern void mgmt_free(void *ptr);
|
|
|
|
/*
|
|
mgmt_new_msg:
|
|
create a new message
|
|
parameters:
|
|
type: should be the micro of MSG_XXX listed above
|
|
... : the parameters listed above
|
|
return:
|
|
a string as result, the format is described above
|
|
*/
|
|
extern char* mgmt_new_msg(const char* type, ...);
|
|
|
|
/*
|
|
mgmt_msg_append:
|
|
append a new parameter to an existing message
|
|
the memory of the msg will be realloced.
|
|
parameters:
|
|
msg: the original message
|
|
append: the parameter to be appended
|
|
return:
|
|
the new message
|
|
example:
|
|
msg = mgmt_msg_append(msg, "new_param");
|
|
*/
|
|
extern char* mgmt_msg_append(char* msg, const char* append);
|
|
|
|
/*
|
|
mgmt_del_msg:
|
|
free a message
|
|
parameters:
|
|
msg: the message to be free
|
|
return:
|
|
*/
|
|
extern void mgmt_del_msg(char* msg);
|
|
|
|
/*
|
|
mgmt_result_ok:
|
|
return whether the result is ok
|
|
parameters:
|
|
msg: the message for determining
|
|
return:
|
|
1: the result message is ok
|
|
0: the result message is fail
|
|
*/
|
|
extern int mgmt_result_ok(char* msg);
|
|
|
|
/*
|
|
mgmt_msg_args:
|
|
parse the message to string arry
|
|
parameters:
|
|
msg: the message to be parsed
|
|
num: return the number of parameters
|
|
(include type of message if the message has one)
|
|
return:
|
|
the string arry, we should use mgmt_del_args() to free it
|
|
example:
|
|
int i,num;
|
|
char** args = mgmt_msg_args(msg, &num);
|
|
for(i=0; i<num; i++) {
|
|
printf("%s\n",args[i]);
|
|
}
|
|
mgmt_del_args(args);
|
|
*/
|
|
extern char** mgmt_msg_args(const char* msg, int* num);
|
|
extern void mgmt_del_args(char** args);
|
|
|
|
#define STRLEN_CONST(conststr) ((size_t)((sizeof(conststr)/sizeof(char))-1))
|
|
#define STRNCMP_CONST(varstr, conststr) strncmp((varstr), conststr, STRLEN_CONST(conststr)+1)
|
|
|
|
#define MAX_MSGLEN (256*1024)
|
|
#define MAX_STRLEN (64*1024)
|
|
|
|
#define INIT_SIZE 1024
|
|
#define INC_SIZE 512
|
|
|
|
#endif /* __MGMT_COMMON_H */
|