Send Linux-ha-cvs mailing list submissions to
        linux-ha-cvs@lists.linux-ha.org

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: lib by andrew from 
      (linux-ha-cvs@lists.linux-ha.org)


----------------------------------------------------------------------

Message: 1
Date: Tue, 18 Jul 2006 00:16:12 -0600 (MDT)
From: linux-ha-cvs@lists.linux-ha.org
Subject: [Linux-ha-cvs] Linux-HA CVS: lib by andrew from 
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>

linux-ha CVS committal

Author  : andrew
Host    : 
Project : linux-ha
Module  : lib

Dir     : linux-ha/lib/crm/common


Modified Files:
        xml.c 


Log Message:
Extra functionality for ptest

Support reading of compressed XML files
By default, do not include optional actions and dependancies in ptest output
---
 crm/admin/cibadmin.c                   |    2
 crm/admin/crm_mon.c                    |    7 +
 crm/admin/crm_resource.c               |    7 +
 crm/admin/crm_verify.c                 |    2
 crm/admin/xml_diff.c                   |    4
 crm/cib/io.c                           |    2
 crm/pengine/ptest.c                    |   33 +++--
 crm/pengine/testcases/1360.dot         |   20 ---
 crm/pengine/testcases/594.dot          |   31 -----
 crm/pengine/testcases/662.dot          |   59 ---------
 crm/pengine/testcases/696.dot          |   26 ----
 crm/pengine/testcases/726.dot          |   15 --
 crm/pengine/testcases/735.dot          |   19 ---
 crm/pengine/testcases/764.dot          |   43 -------
 crm/pengine/testcases/797.dot          |   25 ----
 crm/pengine/testcases/829.dot          |   58 ---------
 crm/pengine/testcases/994.dot          |   26 ----
 crm/pengine/testcases/group1.dot       |    5
 crm/pengine/testcases/group10.dot      |   70 -----------
 crm/pengine/testcases/group11.dot      |    7 -
 crm/pengine/testcases/group13.dot      |   16 --
 crm/pengine/testcases/group2.dot       |    5
 crm/pengine/testcases/group3.dot       |   11 -
 crm/pengine/testcases/group4.dot       |   38 ------
 crm/pengine/testcases/group7.dot       |   11 -
 crm/pengine/testcases/group8.dot       |   14 --
 crm/pengine/testcases/group9.dot       |   15 --
 crm/pengine/testcases/inc0.dot         |    5
 crm/pengine/testcases/inc1.dot         |    5
 crm/pengine/testcases/inc10.dot        |  107 -----------------
 crm/pengine/testcases/inc2.dot         |   16 --
 crm/pengine/testcases/inc3.dot         |   35 -----
 crm/pengine/testcases/inc5.dot         |  128 ---------------------
 crm/pengine/testcases/inc6.dot         |  111 ------------------
 crm/pengine/testcases/inc7.dot         |   11 -
 crm/pengine/testcases/inc8.dot         |   14 --
 crm/pengine/testcases/inc9.dot         |   34 -----
 crm/pengine/testcases/interleave-0.dot |  106 -----------------
 crm/pengine/testcases/interleave-1.dot |  106 -----------------
 crm/pengine/testcases/interleave-2.dot |  106 -----------------
 crm/pengine/testcases/interleave-3.dot |  106 -----------------
 crm/pengine/testcases/managed-0.dot    |  135 ----------------------
 crm/pengine/testcases/managed-1.dot    |   99 ----------------
 crm/pengine/testcases/managed-2.dot    |   19 ---
 crm/pengine/testcases/master-0.dot     |   15 --
 crm/pengine/testcases/master-1.dot     |   11 -
 crm/pengine/testcases/master-10.dot    |   30 -----
 crm/pengine/testcases/master-2.dot     |   30 -----
 crm/pengine/testcases/master-3.dot     |   11 -
 crm/pengine/testcases/master-4.dot     |  188 -------------------------------
 crm/pengine/testcases/master-5.dot     |  190 -------------------------------
 crm/pengine/testcases/master-6.dot     |  197 ---------------------------------
 crm/pengine/testcases/master-7.dot     |  118 -------------------
 crm/pengine/testcases/master-8.dot     |  102 -----------------
 crm/pengine/testcases/master-9.dot     |   73 ------------
 crm/pengine/testcases/multi1.dot       |    3
 crm/pengine/testcases/notify-0.dot     |   18 ---
 crm/pengine/testcases/notify-1.dot     |   44 -------
 crm/pengine/testcases/notify-2.dot     |   44 -------
 crm/pengine/testcases/notify-3.dot     |   23 ---
 crm/pengine/testcases/order5.dot       |   24 ----
 crm/pengine/testcases/order6.dot       |   18 ---
 crm/pengine/testcases/order7.dot       |    5
 crm/pengine/testcases/orphan-0.dot     |   24 ----
 crm/pengine/testcases/orphan-1.dot     |   26 ----
 crm/pengine/testcases/params-0.dot     |   30 -----
 crm/pengine/testcases/params-1.dot     |   24 ----
 crm/pengine/testcases/probe-0.dot      |  105 -----------------
 crm/pengine/testcases/probe-1.dot      |    2
 crm/pengine/testcases/quorum-1.dot     |    4
 crm/pengine/testcases/quorum-2.dot     |    6 -
 crm/pengine/testcases/quorum-3.dot     |    5
 crm/pengine/testcases/quorum-5.dot     |    5
 crm/pengine/testcases/quorum-6.dot     |    5
 crm/pengine/testcases/rec-node-11.dot  |    8 -
 crm/pengine/testcases/rec-node-12.dot  |    5
 crm/pengine/testcases/rec-node-13.dot  |  177 -----------------------------
 crm/pengine/testcases/rec-node-2.dot   |   10 -
 crm/pengine/testcases/rec-node-8.dot   |    2
 crm/pengine/testcases/rec-node-9.dot   |    4
 crm/pengine/testcases/rec-rsc-0.dot    |    3
 crm/pengine/testcases/rec-rsc-2.dot    |    1
 crm/pengine/testcases/rec-rsc-4.dot    |    2
 crm/pengine/testcases/rec-rsc-6.dot    |    3
 crm/pengine/testcases/rec-rsc-7.dot    |    3
 crm/pengine/testcases/rec-rsc-8.dot    |    3
 crm/pengine/testcases/rsc_dep2.dot     |    8 -
 crm/pengine/testcases/rsc_dep4.dot     |    4
 crm/pengine/testcases/rsc_dep8.dot     |    8 -
 crm/pengine/testcases/simple3.dot      |    2
 crm/pengine/testcases/simple4.dot      |    2
 crm/pengine/testcases/simple7.dot      |    2
 crm/pengine/testcases/simple8.dot      |   40 ------
 crm/pengine/testcases/standby.dot      |   46 -------
 crm/pengine/testcases/target-0.dot     |   30 -----
 crm/pengine/testcases/target-1.dot     |   24 ----
 crm/pengine/testcases/unrunnable-1.dot |   54 ---------
 crm/tengine/callbacks.c                |    2
 crm/tengine/ttest.c                    |    2
 include/crm/common/xml.h               |    2
 lib/crm/common/xml.c                   |   89 +++++++++++---
 101 files changed, 109 insertions(+), 3521 deletions(-)

===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/lib/crm/common/xml.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -3 -r1.100 -r1.101
--- xml.c       8 Jul 2006 13:49:03 -0000       1.100
+++ xml.c       18 Jul 2006 06:16:09 -0000      1.101
@@ -1,4 +1,4 @@
-/* $Id: xml.c,v 1.100 2006/07/08 13:49:03 andrew Exp $ */
+/* $Id: xml.c,v 1.101 2006/07/18 06:16:09 andrew Exp $ */
 /* 
  * Copyright (C) 2004 Andrew Beekhof <[EMAIL PROTECTED]>
  * 
@@ -495,33 +495,80 @@
 
 
 crm_data_t*
-file2xml(FILE *input)
+file2xml(FILE *input, gboolean compressed)
 {
-       
+       int rc = 0;
        char *buffer = NULL;
+       gboolean work_done = FALSE;
        crm_data_t *new_obj = NULL;
-       int start = 0, length = 0, read_len = 0;
+       size_t length = 0, read_len = 0;
 
        if(input == NULL) {
                crm_err("No file to read");
                return NULL;
        }
+
+       if(compressed) {
+#if HAVE_BZLIB_H
+               BZFILE *bz_file = BZ2_bzReadOpen(&rc, input, 0, 0, NULL, 0);
+               if ( rc != BZ_OK ) {
+                       BZ2_bzReadClose ( &rc, bz_file);
+                       return NULL;
+               }
+               
+               rc = BZ_OK;
+               while ( rc == BZ_OK ) {
+                       crm_realloc(buffer, XML_BUFFER_SIZE + length + 1);
+                       read_len = BZ2_bzRead (
+                               &rc, bz_file, buffer + length, XML_BUFFER_SIZE);
+
+                       crm_debug_5("Read %ld bytes from file: %d",
+                                   (long)read_len, rc);
+
+                       if ( rc == BZ_OK || rc == BZ_STREAM_END) {
+                               length += read_len;
+                       }
+               }
+
+               buffer[length] = '\0';
+               read_len = length;
+
+               if ( rc != BZ_STREAM_END ) {
+                       crm_err("Couldnt read compressed xml from file");
+                       crm_free(buffer);
+               }
+
+               BZ2_bzReadClose (&rc, bz_file);
+               if(buffer == NULL) {
+                       return NULL;
+               }
+
+               work_done = TRUE;
+#else
+               crm_err("Cannot read compressed files:"
+                       " bzlib was not available at compile time");
+#endif
+       }       
        
+       if(work_done == FALSE) {
+               int start = 0;
+               start  = ftell(input);
+               fseek(input, 0L, SEEK_END);
+               length = ftell(input);
+               fseek(input, 0L, start);
+               
+               CRM_ASSERT(start == ftell(input));
+               
+               crm_debug_3("Reading %ld bytes from file", (long)length);
+               crm_malloc0(buffer, (length+1));
+               read_len = fread(buffer, 1, length, input);
+       }
+
        /* see how big the file is */
-       start  = ftell(input);
-       fseek(input, 0L, SEEK_END);
-       length = ftell(input);
-       fseek(input, 0L, start);
-       
-       CRM_ASSERT(start == ftell(input));
-
-       crm_debug_3("Reading %d bytes from file", length);
-       crm_malloc0(buffer, (length+1));
-       read_len = fread(buffer, 1, length, input);
        if(read_len != length) {
-               crm_err("Calculated and read bytes differ: %d vs. %d",
-                       length, read_len);
-       } else  if(length > 0) {
+               crm_err("Calculated and read bytes differ: %ld vs. %ld",
+                       (long)length, (long)read_len);
+       } else if(length > 0) {
                new_obj = string2xml(buffer);
        } else {
                crm_warn("File contained no XML");
@@ -599,8 +646,8 @@
                
        } 
 
+       if(compress) {
 #if HAVE_BZLIB_H
-       if(compress && is_done == FALSE) {
                int rc = BZ_OK;
                BZFILE *bz_file = NULL;
                unsigned int in = 0, out = 0;
@@ -627,12 +674,10 @@
                                          filename, in, out);
                        }
                }
-       }
+#else
+               crm_err("Cannot write compressed files:"
+                       " bzlib was not available at compile time");            
 #endif
-       if(compress && is_done == FALSE) {
-               compress = FALSE;
-               crm_warn("bzlib failed or not installed."
-                        "  Writing uncompressed data to: %s",filename);
        }
        if(is_done == FALSE) {
                res = fprintf(file_output_strm, "%s", buffer);




------------------------------

_______________________________________________
Linux-ha-cvs mailing list
Linux-ha-cvs@lists.linux-ha.org
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs


End of Linux-ha-cvs Digest, Vol 32, Issue 53
********************************************

Reply via email to