Module: nagvis
Branch: master
Commit: 82d06fa946f5f472703c70370be089adffc5b3b0
URL:    
http://nagvis.git.sourceforge.net/git/gitweb.cgi?p=nagvis/nagvis;a=commit;h=82d06fa946f5f472703c70370be089adffc5b3b0

Author: Lars Michelsen <[email protected]>
Date:   Fri Oct  1 18:58:02 2010 +0200

 #361 Trying to catch some more errors when no perfdata is present for 
weathermap line services

---

 .../frontend/nagvis-js/js/NagVisStatefulObject.js  |   12 ++++++++----
 share/frontend/nagvis-js/js/lines.js               |   20 +++++++++++++-------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/share/frontend/nagvis-js/js/NagVisStatefulObject.js 
b/share/frontend/nagvis-js/js/NagVisStatefulObject.js
index 272ac44..bf4e56e 100644
--- a/share/frontend/nagvis-js/js/NagVisStatefulObject.js
+++ b/share/frontend/nagvis-js/js/NagVisStatefulObject.js
@@ -528,11 +528,15 @@ var NagVisStatefulObject = NagVisObject.extend({
                                 || (this.conf.line_type == 14 && 
(setPerfdata[2][0] == 'dummyActualIn' || setPerfdata[3][0] == 
'dummyActualOut'))) {
 
                                var msg = "Missing performance data - ";
-                               if(setPerfdata[0][0] == 'dummyPercentIn' || 
setPerfdata[1][0] == 'dummyPercentOut')
-                                 msg += "value 1 is \'" + setPerfdata[0][1] + 
"\' value 2 is \'" + setPerfdata[1][1] + "\'";
+                               if(setPerfdata == 'empty')
+                                               msg += "perfdata string is 
empty";      
+                               else {
+                                       if(setPerfdata[0][0] == 
'dummyPercentIn' || setPerfdata[1][0] == 'dummyPercentOut')
+                                       msg += "value 1 is \'" + 
setPerfdata[0][1] + "\' value 2 is \'" + setPerfdata[1][1] + "\'";
                
-                               if(this.conf.line_type == 14 && 
(setPerfdata[2][0] == 'dummyActualIn' || setPerfdata[3][0] == 'dummyActualOut'))
-                                       msg += " value 3 is \'" + 
setPerfdata[2][1] + "\' value 4 is \'" + setPerfdata[3][1] + "\'";
+                                       if(this.conf.line_type == 14 && 
(setPerfdata[2][0] == 'dummyActualIn' || setPerfdata[3][0] == 'dummyActualOut'))
+                                               msg += " value 3 is \'" + 
setPerfdata[2][1] + "\' value 4 is \'" + setPerfdata[3][1] + "\'";
+                               }
                                
                                this.conf.summary_output += ' (Weathermap Line 
Error: ' + msg + ')';
                        } else {
diff --git a/share/frontend/nagvis-js/js/lines.js 
b/share/frontend/nagvis-js/js/lines.js
index da109d8..840f3b0 100644
--- a/share/frontend/nagvis-js/js/lines.js
+++ b/share/frontend/nagvis-js/js/lines.js
@@ -258,11 +258,13 @@ function drawNagVisLine(objectId, lineType, cuts, x1, y1, 
x2, y2, z, width, colo
                        var xMid = middle(x1, x2, cut);
                        var yMid = middle(y1, y2, cut);
                        // perfdataA contains the percentage info
-                       perfdataA = perfdata[0][1] + perfdata[0][2];
+                       if(perfdata[0] && perfdata[0][1] && perfdata[0][2])
+                               perfdataA = perfdata[0][1] + perfdata[0][2];
                        drawArrow(objectId, x1, y1, xMid, yMid, z, width, 
colorFill, colorBorder);
       drawLinkOrLabel(objectId, lineType, x1, y1, xMid, yMid, z, perfdataA, 
perfdataB, cutIn, bLinkArea, bLabelShow);
 
-                       perfdataA = perfdata[1][1] + perfdata[1][2];
+                       if(perfdata[1] && perfdata[1][1] && perfdata[1][2])
+                               perfdataA = perfdata[1][1] + perfdata[1][2];
                        drawArrow(objectId, x2, y2, xMid, yMid, z, width, 
colorFill2, colorBorder);
       drawLinkOrLabel(objectId, lineType, x2, y2, xMid, yMid, z, perfdataA, 
perfdataB, cutOut, bLinkArea, bLabelShow);
                        break;
@@ -272,13 +274,17 @@ function drawNagVisLine(objectId, lineType, cuts, x1, y1, 
x2, y2, z, width, colo
                        var yMid = middle(y1, y2, cut);
                        // perfdataA contains the percentage info
                        // perfdataB contains the bandwith info
-                       perfdataA = perfdata[0][1] + perfdata[0][2];
-                       perfdataB = perfdata[2][1] + perfdata[2][2];
+                       if(perfdata[0] && perfdata[0][1] && perfdata[0][2])
+                               perfdataA = perfdata[0][1] + perfdata[0][2];
+                       if(perfdata[2] && perfdata[2][1] && perfdata[2][2])
+                               perfdataB = perfdata[2][1] + perfdata[2][2];
                        drawArrow(objectId, x1, y1, xMid, yMid, z, width, 
colorFill, colorBorder);
       drawLinkOrLabel(objectId, lineType, x1, y1, xMid, yMid, z, perfdataA, 
perfdataB, cutOut, bLinkArea, bLabelShow);
 
-                       perfdataA = perfdata[1][1] + perfdata[1][2];
-                       perfdataB = perfdata[3][1] + perfdata[3][2];
+                       if(perfdata[1] && perfdata[1][1] && perfdata[1][2])
+                               perfdataA = perfdata[1][1] + perfdata[1][2];
+                       if(perfdata[3] && perfdata[3][1] && perfdata[3][2])
+                               perfdataB = perfdata[3][1] + perfdata[3][2];
                        drawArrow(objectId, x2, y2, xMid, yMid, z, width, 
colorFill2, colorBorder);
       drawLinkOrLabel(objectId, lineType, x2, y2, xMid, yMid, z, perfdataA, 
perfdataB, cutIn, bLinkArea, bLabelShow);
                        break;
@@ -320,7 +326,7 @@ function splicePerfdata(nagiosPerfdata) {
        var setMatches = [];
        
        // Check if we got any perfdata
-       if(nagiosPerfdata == '')
+       if(!nagiosPerfdata || nagiosPerfdata == '')
                return 'empty';
        else {
                


------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins

Reply via email to