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
********************************************

Reply via email to