Title: [opsview] [12134] handle empty files and files with ignored events only
Modified: trunk/opsview-core/opsview-perl-modules/Opsview-Utils-NDOLogsImporter-XS/XS.xs
===================================================================
--- trunk/opsview-core/opsview-perl-modules/Opsview-Utils-NDOLogsImporter-XS/XS.xs	2013-04-19 10:22:27 UTC (rev 12133)
+++ trunk/opsview-core/opsview-perl-modules/Opsview-Utils-NDOLogsImporter-XS/XS.xs	2013-04-19 11:11:49 UTC (rev 12134)
@@ -221,15 +221,18 @@
         }
     };
 
-    if ( event_block != BLOCK_EVENT_ENDED ) {
-        remove_invalid:
-        av_pop( datawrapper );
-    }
+    /* there were some events */
+    if ( event_block != 0 ) {
+        if ( event_block != BLOCK_EVENT_ENDED ) {
+            remove_invalid:
+                av_pop( datawrapper );
+        }
 
-    /* remove whole block if the last block has no events */
-    if ( av_len( datawrapper ) == -1 ) {
-        av_pop( events );
-        av_pop( events );
+        /* remove whole block if the last block has no events */
+        if ( av_len( datawrapper ) == -1 ) {
+            av_pop( events );
+            av_pop( events );
+        }
     }
 
     Safefree(buf);

Modified: trunk/opsview-core/t/tests/Test/Opsview/Utils/NDOLogsImporter.pm
===================================================================
--- trunk/opsview-core/t/tests/Test/Opsview/Utils/NDOLogsImporter.pm	2013-04-19 10:22:27 UTC (rev 12133)
+++ trunk/opsview-core/t/tests/Test/Opsview/Utils/NDOLogsImporter.pm	2013-04-19 11:11:49 UTC (rev 12134)
@@ -58,7 +58,7 @@
     # diag explain $self->{importer};
 }
 
-sub parse : Test(5) {
+sub parse : Test(7) {
     my $self = shift;
 
     subtest "File ok" => sub {
@@ -443,6 +443,29 @@
         );
     };
 
+    subtest "File corrupted - only ignored events" => sub {
+        plan tests => 1;
+
+        my $file = "t/var/ndologs/1353330306.904093.corrupted.only.ignored";
+
+        my $log = Opsview::Utils::NDOLogsImporter::parse( $file, -s $file );
+
+        # diag explain $log;
+
+        is( scalar @$log, 0, "No handled events found" );
+    };
+
+    subtest "File corrupted - no events" => sub {
+        plan tests => 1;
+
+        my $file = "t/var/ndologs/1353330306.904093.corrupted.no.events";
+
+        my $log = Opsview::Utils::NDOLogsImporter::parse( $file, -s $file );
+
+        # diag explain $log;
+
+        is( scalar @$log, 0, "No events found in empty file" );
+    };
 }
 
 sub send_log : Test(50) {

Added: trunk/opsview-core/t/var/ndologs/1353330306.904093.corrupted.no.events
===================================================================
--- trunk/opsview-core/t/var/ndologs/1353330306.904093.corrupted.no.events	                        (rev 0)
+++ trunk/opsview-core/t/var/ndologs/1353330306.904093.corrupted.no.events	2013-04-19 11:11:49 UTC (rev 12134)
@@ -0,0 +1,18 @@
+
+
+HELLO
+PROTOCOL: 2
+AGENT: NDOMOD
+AGENTVERSION: 1.4b7
+STARTTIME: 1353330301
+DISPOSITION: REALTIME
+CONNECTION: FILE
+CONNECTTYPE: INITIAL
+INSTANCENAME: default
+STARTDATADUMP
+
+
+1000
+ENDTIME: 1353330306
+GOODBYE
+

Added: trunk/opsview-core/t/var/ndologs/1353330306.904093.corrupted.only.ignored
===================================================================
--- trunk/opsview-core/t/var/ndologs/1353330306.904093.corrupted.only.ignored	                        (rev 0)
+++ trunk/opsview-core/t/var/ndologs/1353330306.904093.corrupted.only.ignored	2013-04-19 11:11:49 UTC (rev 12134)
@@ -0,0 +1,60 @@
+
+
+HELLO
+PROTOCOL: 2
+AGENT: NDOMOD
+AGENTVERSION: 1.4b7
+STARTTIME: 1353330301
+DISPOSITION: REALTIME
+CONNECTION: FILE
+CONNECTTYPE: INITIAL
+INSTANCENAME: default
+STARTDATADUMP
+
+
+221:
+1=604
+2=0
+3=0
+4=1353330301.664660
+89=1
+117=1353330301.664659
+33=0.0
+53=bob
+114=Unix disk: /srv/released
+134=admin/02test-snp
+127=notify-by-email
+13=
+87=0
+118=1
+95=DISK WARNING - free space: /srv/released 14253 MB (9% inode=99%):
+5=
+6=
+999
+
+
+221:
+1=604
+2=0
+3=0
+4=1353330301.664660
+89=1
+117=1353330301.664659
+33=0.0
+53=bob
+114=Unix disk: /srv/released
+134=admin/02test-snp
+127=notify-by-email
+13=
+87=0
+118=1
+95=DISK WARNING - free space: /srv/released 14253 MB (9% inode=99%):
+5=
+6=
+999
+
+
+1000
+ENDTIME: 1353330306
+GOODBYE
+

_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins

Reply via email to