Page MenuHomeClusterLabs Projects

No OneTemporary

diff --git a/include/crm/cib.h b/include/crm/cib.h
index 91b28e675f..1a271e7c1f 100644
--- a/include/crm/cib.h
+++ b/include/crm/cib.h
@@ -1,74 +1,76 @@
-/* $Id: cib.h,v 1.4 2004/08/27 15:21:59 andrew Exp $ */
+/* $Id: cib.h,v 1.5 2004/09/21 19:11:22 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU 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 software 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
* General Public License for more details.
*
* You should have received a copy of the GNU 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 CIB__H
#define CIB__H
#include <libxml/tree.h>
enum cib_op {
CIB_OP_NONE = 0,
CIB_OP_ADD,
CIB_OP_MODIFY,
CIB_OP_DELETE,
CIB_OP_MAX
};
enum cib_result {
CIBRES_OK = 0,
CIBRES_MISSING_ID,
CIBRES_MISSING_TYPE,
CIBRES_MISSING_FIELD,
CIBRES_OBJTYPE_MISMATCH,
CIBRES_CORRUPT,
CIBRES_OTHER,
CIBRES_FAILED,
CIBRES_FAILED_STALE,
CIBRES_FAILED_EXISTS,
CIBRES_FAILED_NOTEXISTS,
CIBRES_FAILED_ACTIVATION,
CIBRES_FAILED_NOSECTION,
CIBRES_FAILED_NOOBJECT,
CIBRES_FAILED_NOPARENT,
CIBRES_FAILED_NODECOPY,
CIBRES_FAILED_NOTSUPPORTED,
};
/* Core functions */
extern gboolean startCib(const char *filename);
extern xmlNodePtr get_cib_copy(void);
+extern xmlNodePtr cib_get_generation(void);
+extern int compare_cib_generation(xmlNodePtr left, xmlNodePtr right);
extern xmlNodePtr process_cib_message(xmlNodePtr message, gboolean auto_reply);
extern xmlNodePtr process_cib_request(const char *op,
const xmlNodePtr options,
const xmlNodePtr fragment);
/* Utility functions */
extern xmlNodePtr get_object_root(const char *object_type,xmlNodePtr the_root);
extern xmlNodePtr create_cib_fragment_adv(
xmlNodePtr update, const char *section, const char *source);
extern char *pluralSection(const char *a_section);
/* Error Interpretation*/
extern const char *cib_error2string(enum cib_result);
extern const char *cib_op2string(enum cib_op);
#define create_cib_fragment(x,y) create_cib_fragment_adv(x, y, __FUNCTION__)
#endif
diff --git a/include/crm/crm.h b/include/crm/crm.h
index 9cb654b004..e8909fb8e9 100644
--- a/include/crm/crm.h
+++ b/include/crm/crm.h
@@ -1,192 +1,192 @@
-/* $Id: crm.h,v 1.26 2004/09/20 12:15:37 andrew Exp $ */
+/* $Id: crm.h,v 1.27 2004/09/21 19:11:22 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU 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 software 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
* General Public License for more details.
*
* You should have received a copy of the GNU 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 CRM__H
#define CRM__H
#include <stdlib.h>
#include <ha_config.h>
#include <glib.h>
#include <string.h>
#include <clplumbing/cl_log.h>
#include <clplumbing/cl_malloc.h>
#ifdef MCHECK
#include <mcheck.h>
#endif
#include <crm/common/util.h>
/* Clean these up at some point, some probably should be runtime options */
#define WORKING_DIR HA_VARLIBDIR"/heartbeat/crm"
#define BIN_DIR "/usr/lib/heartbeat"
#define MAXDATASIZE 65535 /* ipc comms */
#define SOCKET_LEN 1024
#define APPNAME_LEN 256
#define LOG_DIR "/var/log"
#define MAX_IPC_FAIL 5
#define CIB_FILENAME WORKING_DIR"/cib.xml"
#define CIB_BACKUP WORKING_DIR"/cib_backup.xml"
#define DEVEL_CIB_COPY 1
#define DEVEL_DIR "/tmp/crm"
#define CRM_VERSION "0.6"
#define MSG_LOG 1
#define DOT_FSA_ACTIONS 1
#define DOT_ALL_FSA_INPUTS 1
#define FSA_TRACE 1
/* #define USE_FAKE_LRM 1 */
/* Sub-systems */
#define CRM_SYSTEM_DC "dc"
#define CRM_SYSTEM_DCIB "dcib" /* The master CIB */
#define CRM_SYSTEM_CIB "cib"
#define CRM_SYSTEM_CRMD "crmd"
#define CRM_SYSTEM_LRMD "lrmd"
#define CRM_SYSTEM_PENGINE "pengine"
#define CRM_SYSTEM_TENGINE "tengine"
/* Valid operations */
#define CRM_OP_BUMP "bump"
#define CRM_OP_QUERY "query"
#define CRM_OP_CREATE "create"
#define CRM_OP_UPDATE "update"
#define CRM_OP_DELETE "delete"
#define CRM_OP_ERASE "erase"
#define CRM_OP_STORE "store"
#define CRM_OP_REPLACE "replace"
#define CRM_OP_FORWARD "forward"
-#define CRM_OP_JOINACK "join_ack"
+#define CRM_OP_JOINACK "join_ack_nack"
#define CRM_OP_WELCOME "welcome"
#define CRM_OP_PING "ping"
#define CRM_OP_VOTE "vote"
#define CRM_OP_HELLO "hello"
#define CRM_OP_ANNOUNCE "announce"
#define CRM_OP_HBEAT "dc_beat"
#define CRM_OP_PECALC "pe_calc"
#define CRM_OP_ABORT "abort"
#define CRM_OP_QUIT "quit"
#define CRM_OP_SHUTDOWN "shutdown_crm"
#define CRM_OP_EVENTCC "event_cc"
#define CRM_OP_TEABORT "te_abort"
#define CRM_OP_TRANSITION "transition"
#define CRM_OP_TECOMPLETE "te_complete"
#define CRM_OP_SHUTDOWN_REQ "req_shutdown"
#define CRMD_STATE_ACTIVE "member"
#define CRMD_STATE_INACTIVE "down"
#define CRMD_JOINSTATE_DOWN "down"
#define CRMD_JOINSTATE_PENDING "pending"
#define CRMD_JOINSTATE_MEMBER "member"
#define CRMD_RSCSTATE_START "start"
#define CRMD_RSCSTATE_START_PENDING "starting"
#define CRMD_RSCSTATE_START_OK "running"
#define CRMD_RSCSTATE_START_FAIL "start_failed"
#define CRMD_RSCSTATE_STOP "stop"
#define CRMD_RSCSTATE_STOP_PENDING "stopping"
#define CRMD_RSCSTATE_STOP_OK "stopped"
#define CRMD_RSCSTATE_STOP_FAIL "stop_failed"
#define CRMD_RSCSTATE_MON "status"
#define CRMD_RSCSTATE_MON_PENDING CRMD_RSCSTATE_START_OK
#define CRMD_RSCSTATE_MON_OK CRMD_RSCSTATE_START_OK
#define CRMD_RSCSTATE_MON_FAIL "status_failed"
/* #define CRMD_RSCSTATE_GENERIC "pending" */
#define CRMD_RSCSTATE_GENERIC_PENDING "pending"
#define CRMD_RSCSTATE_GENERIC_OK "complete"
#define CRMD_RSCSTATE_GENERIC_FAIL "pending_failed"
typedef GList* GListPtr;
#define safe_str_eq(x, y) (x!=NULL && y!=NULL && strcmp(x,y) == 0)
#define safe_str_neq(x, y) (x != y && (x==NULL || y==NULL || strcmp(x,y) != 0))
#define slist_iter(w, x, y, z, a) \
{ \
z = 0; \
GListPtr __crm_iter_head = y; \
x *w = NULL; \
while(__crm_iter_head != NULL) { \
z++; \
w = __crm_iter_head->data; \
__crm_iter_head = __crm_iter_head->next; \
a; \
} \
} \
/* Developmental debug stuff */
#define LOG_VERBOSE LOG_DEBUG+1
#define LOG_DEV LOG_DEBUG+2
#define LOG_TRACE LOG_DEBUG+3
#if 1
# define crm_crit(w...) do_crm_log(LOG_CRIT, __FUNCTION__, w)
# define crm_err(w...) do_crm_log(LOG_ERR, __FUNCTION__, w)
# define crm_warn(w...) do_crm_log(LOG_WARNING, __FUNCTION__, w)
# define crm_notice(w...) do_crm_log(LOG_NOTICE, __FUNCTION__, w)
# define crm_info(w...) do_crm_log(LOG_INFO, __FUNCTION__, w)
# define crm_debug(w...) do_crm_log(LOG_DEBUG, __FUNCTION__, w)
# define crm_devel(w...) do_crm_log(LOG_DEV, __FUNCTION__, w)
# define crm_verbose(w...) do_crm_log(LOG_VERBOSE, __FUNCTION__, w)
# define crm_trace(w...) do_crm_log(LOG_TRACE, __FUNCTION__, w)
#else
# define crm_crit(w...) cl_log(LOG_CRIT, w)
# define crm_err(w...) cl_log(LOG_ERR, w)
# define crm_warn(w...) cl_log(LOG_WARNING, w)
# define crm_notice(w...) cl_log(LOG_NOTICE, w)
# define crm_info(w...) cl_log(LOG_INFO, w)
# define crm_debug(w...) cl_log(LOG_DEBUG, w)
# define crm_devel(w...) cl_log(LOG_DEV, w)
# define crm_verbose(w...) cl_log(LOG_VERBOSE, w)
# define crm_trace(w...) cl_log(LOG_TRACE, w)
#endif
#define crm_debug_action(x) if(crm_log_level >= LOG_DEBUG) { \
x; \
}
#define crm_info_action(x) if(crm_log_level >= LOG_INFO) { \
x; \
}
#define crm_xml_crit(x,y) print_xml_formatted(LOG_CRIT, __FUNCTION__, x,y)
#define crm_xml_err(x,y) print_xml_formatted(LOG_ERR, __FUNCTION__, x,y)
#define crm_xml_warn(x,y) print_xml_formatted(LOG_WARNING,__FUNCTION__, x,y)
#define crm_xml_notice(x,y) print_xml_formatted(LOG_NOTICE, __FUNCTION__, x,y)
#define crm_xml_info(x,y) print_xml_formatted(LOG_INFO, __FUNCTION__, x,y)
#define crm_xml_debug(x,y) print_xml_formatted(LOG_DEBUG, __FUNCTION__, x,y)
#define crm_xml_devel(x,y) print_xml_formatted(LOG_DEV, __FUNCTION__, x,y)
#define crm_xml_verbose(x,y) print_xml_formatted(LOG_VERBOSE,__FUNCTION__, x,y)
#define crm_xml_trace(x,y) print_xml_formatted(LOG_TRACE, __FUNCTION__, x,y)
#define crm_malloc(x,y) \
{ \
x = cl_malloc(y); \
if(x == NULL) { \
crm_crit("Out of memory... exiting"); \
exit(1); \
} \
} \
#define crm_strdup(x) cl_strdup(x)
#define crm_free(x) if(x) { cl_free(x); x=NULL; }
#define crm_str(x) (const char*)(x?x:"<null>")
#endif

File Metadata

Mime Type
text/x-diff
Expires
Mon, Sep 1, 7:07 PM (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2280352
Default Alt Text
(9 KB)

Event Timeline