Send Linux-ha-cvs mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Linux-ha-cvs digest..."
Today's Topics:
1. Linux-HA CVS: include by zhenh from
([email protected])
2. Linux-HA CVS: mgmt by zhenh from
([email protected])
3. Linux-HA CVS: mgmt by zhenh from
([email protected])
4. Linux-HA CVS: mgmt by zhenh from
([email protected])
5. Linux-HA CVS: mgmt by zhenh from
([email protected])
----------------------------------------------------------------------
Message: 1
Date: Mon, 27 Mar 2006 01:30:52 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: include by zhenh from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : zhenh
Host :
Project : linux-ha
Module : include
Dir : linux-ha/include/mgmt
Modified Files:
mgmt.h
Log Message:
add new option to enable caching the cib
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/include/mgmt/mgmt.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- mgmt.h 8 Dec 2005 09:34:21 -0000 1.6
+++ mgmt.h 27 Mar 2006 08:30:47 -0000 1.7
@@ -28,6 +28,7 @@
#define ENABLE_HB 1
#define ENABLE_LRM 2
#define ENABLE_CRM 4
+#define CACHE_CIB 8
extern int init_mgmt_lib(const char* client_name, int enable_components);
extern int final_mgmt_lib(void);
------------------------------
Message: 2
Date: Mon, 27 Mar 2006 01:32:14 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: mgmt by zhenh from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : zhenh
Host :
Project : linux-ha
Module : mgmt
Dir : linux-ha/mgmt/daemon
Modified Files:
mgmt_crm.c
Log Message:
add the cache of cib
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/mgmt/daemon/mgmt_crm.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- mgmt_crm.c 27 Mar 2006 07:33:47 -0000 1.17
+++ mgmt_crm.c 27 Mar 2006 08:32:13 -0000 1.18
@@ -40,7 +40,7 @@
cib_t* cib_conn = NULL;
int in_shutdown = FALSE;
-int init_crm(void);
+int init_crm(int cache_cib);
void final_crm(void);
static void on_cib_diff(const char *event, HA_Message *msg);
@@ -93,6 +93,9 @@
static void on_cib_connection_destroy(gpointer user_data);
static char* failed_msg(crm_data_t* output, int rc);
+pe_working_set_t* cib_cached = NULL;
+int cib_cache_enable = FALSE;
+
#define GET_RESOURCE() if (argc != 2) { \
return cl_strdup(MSG_FAIL); \
} \
@@ -142,6 +145,11 @@
pe_working_set_t*
get_data_set(void)
{
+ if (cib_cache_enable) {
+ if (cib_cached != NULL) {
+ return cib_cached;
+ }
+ }
pe_working_set_t* data_set;
data_set = (pe_working_set_t*)cl_malloc(sizeof(pe_working_set_t));
@@ -149,14 +157,22 @@
data_set->input = get_cib_copy(cib_conn);
data_set->now = new_ha_date(TRUE);
stage0(data_set);
+
+ if (cib_cache_enable) {
+ cib_cached = data_set;
+ }
return data_set;
}
void
free_data_set(pe_working_set_t* data_set)
{
- cleanup_calculations(data_set);
- cl_free(data_set);
+ /* we only release the cib when cib is not cached.
+ the cached cib will be released in on_cib_diff() */
+ if (!cib_cache_enable) {
+ cleanup_calculations(data_set);
+ cl_free(data_set);
+ }
}
char*
failed_msg(crm_data_t* output, int rc)
@@ -185,7 +201,7 @@
/* mgmtd functions */
int
-init_crm(void)
+init_crm(int cache_cib)
{
int ret = cib_ok;
int i, max_try = 5;
@@ -195,6 +211,9 @@
cib_conn = cib_new();
in_shutdown = FALSE;
+ cib_cache_enable = cache_cib?TRUE:FALSE;
+ cib_cached = NULL;
+
for (i = 0; i < max_try ; i++) {
ret = cib_conn->cmds->signon(cib_conn, client_name,
cib_command);
if (ret == cib_ok) {
@@ -261,7 +280,6 @@
in_shutdown = TRUE;
cib_conn->cmds->signoff(cib_conn);
cib_conn = NULL;
-
}
}
@@ -272,6 +290,14 @@
if (debug_level) {
mgmt_log(LOG_DEBUG,"update cib finished");
}
+ if (cib_cache_enable) {
+ if (cib_cached != NULL) {
+ cleanup_calculations(cib_cached);
+ cl_free(cib_cached);
+ cib_cached = NULL;
+ }
+ }
+
fire_event(EVT_CIB_CHANGED);
}
void
------------------------------
Message: 3
Date: Mon, 27 Mar 2006 01:32:43 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: mgmt by zhenh from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : zhenh
Host :
Project : linux-ha
Module : mgmt
Dir : linux-ha/mgmt/daemon
Modified Files:
mgmt_lib.c
Log Message:
add the cache of cib
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/mgmt/daemon/mgmt_lib.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- mgmt_lib.c 27 Mar 2006 06:57:28 -0000 1.6
+++ mgmt_lib.c 27 Mar 2006 08:32:43 -0000 1.7
@@ -54,7 +54,7 @@
/* the initial func for modules */
extern int init_general(void);
extern void final_general(void);
-extern int init_crm(void);
+extern int init_crm(int cache_cib);
extern void final_crm(void);
extern int init_heartbeat(void);
extern void final_heartbeat(void);
@@ -87,7 +87,7 @@
}
}
if (components & ENABLE_CRM) {
- if (init_crm() != 0 ) {
+ if (init_crm(components & CACHE_CIB) != 0 ) {
return -1;
}
}
------------------------------
Message: 4
Date: Mon, 27 Mar 2006 01:33:20 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: mgmt by zhenh from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : zhenh
Host :
Project : linux-ha
Module : mgmt
Dir : linux-ha/mgmt/daemon
Modified Files:
mgmtd.c
Log Message:
add the cache of cib
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/mgmt/daemon/mgmtd.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- mgmtd.c 27 Mar 2006 07:00:23 -0000 1.17
+++ mgmtd.c 27 Mar 2006 08:33:20 -0000 1.18
@@ -310,7 +310,7 @@
int ssock;
struct sockaddr_in saddr;
GIOChannel* sch;
- int ret;
+ int ret;
/* register pid */
if (cl_lock_pidfile(PID_FILE) < 0) {
mgmt_log(LOG_ERR, "already running: [pid %d]."
@@ -341,7 +341,8 @@
mainloop = g_main_new(FALSE);
/* init library */
- if ((ret = init_mgmt_lib(mgmtd_name, ENABLE_HB|ENABLE_LRM|ENABLE_CRM))
!= 0) {
+ ret = init_mgmt_lib(mgmtd_name,
ENABLE_HB|ENABLE_LRM|ENABLE_CRM|CACHE_CIB);
+ if (ret != 0) {
mgmt_log(LOG_ERR, "Can't initialize management library."
"Shutting down.(%d)",ret);
exit(1);
------------------------------
Message: 5
Date: Mon, 27 Mar 2006 02:31:54 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: mgmt by zhenh from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : zhenh
Host :
Project : linux-ha
Module : mgmt
Dir : linux-ha/mgmt/daemon
Modified Files:
mgmt_hb.c
Log Message:
store the heartbeat pararmeter for later request. this will speed up the GUI
client greatly. but we can't deal with the change of parameter in runtime now.
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/mgmt/daemon/mgmt_hb.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- mgmt_hb.c 27 Mar 2006 06:54:48 -0000 1.5
+++ mgmt_hb.c 27 Mar 2006 09:31:54 -0000 1.6
@@ -43,6 +43,7 @@
static gboolean on_hb_input(IPC_Channel *, gpointer);
static char* on_echo(char* argv[], int argc);
static void on_hb_quit(gpointer);
+char* hb_config = NULL;
const char* param_name[] = {
"apiauth",
@@ -95,22 +96,15 @@
char*
on_get_hb_config(char* argv[], int argc)
{
- int i;
- char* value = NULL;
- char* ret = cl_strdup(MSG_OK);
-
- for (i = 0; i < sizeof(param_name)/sizeof(param_name[0]); i++) {
- value = hb->llc_ops->get_parameter(hb, param_name[i]);
- ret = mgmt_msg_append(ret, value!=NULL?value:"");
- if (value != NULL) {
- cl_free(value);
- } }
- return ret;
+ return cl_strdup(hb_config);
}
int
init_heartbeat(void)
{
+ int i;
+ char* value = NULL;
+
hb = ll_cluster_new("heartbeat");
if (hb->llc_ops->signon(hb, client_name)!= HA_OK) {
mgmt_log(LOG_ERR, "Cannot sign on with heartbeat");
@@ -125,6 +119,15 @@
reg_msg(MSG_ALLNODES, on_get_allnodes);
reg_msg(MSG_HB_CONFIG, on_get_hb_config);
reg_msg(MSG_ECHO, on_echo);
+
+ hb_config = cl_strdup(MSG_OK);
+ for (i = 0; i < sizeof(param_name)/sizeof(param_name[0]); i++) {
+ value = hb->llc_ops->get_parameter(hb, param_name[i]);
+ hb_config = mgmt_msg_append(hb_config, value!=NULL?value:"");
+ if (value != NULL) {
+ cl_free(value);
+ } }
+
return 0;
}
------------------------------
_______________________________________________
Linux-ha-cvs mailing list
[email protected]
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
End of Linux-ha-cvs Digest, Vol 28, Issue 68
********************************************