From f19c2a1b3efabcc307e42c7153fd8b212a949378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Gu=C3=B0j=C3=B3n=20Sigur=C3=B0sson?= Date: Mon, 25 Oct 2010 18:40:27 +0000 Subject: [PATCH] --- .../trunk/scripts/check_eva/check_eva.exe | Bin 33792 -> 34304 bytes nsclient/trunk/scripts/check_eva/check_eva.py | 30 ++++++++++++++---- nsclient/trunk/scripts/check_eva/library.zip | Bin 1721340 -> 1721340 bytes 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/nsclient/trunk/scripts/check_eva/check_eva.exe b/nsclient/trunk/scripts/check_eva/check_eva.exe index 23c4ea542480bdf5814b0d896dd04e652097c53e..e5d692dc039ed6f53844fe02ccf771fb23fa4cb0 100644 GIT binary patch delta 6672 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 delta 6114 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 f{_>{s3H{uBTTPW(XOv@lxx!bw-o9skJ+J-;2` 0: proxyserver = arguments.pop(0) elif arg == '--escape-newlines': escape_newlines = True - elif arg == '-h' or '--help': + elif arg == '-h' or arg == '--help': print_help() exit(ok) else: @@ -206,6 +206,7 @@ def run_sssu(system=None, command="ls system full"): commandstring = "sssu " for i in commands: commandstring = commandstring + '"%s" '% i + commandstring = 'cat "debug/%s"' % command #print mystring #if command == "ls system full": @@ -414,7 +415,11 @@ def get_longserviceoutput(object, interesting_fields): def check_operationalstate(object, print_failed_objects=False,namefield='objectname',detailfield='operationalstatedetail',statefield='operationalstate',valid_states=['good']): if not object.has_key(detailfield): detailfield = statefield - if object['operationalstate'] not in valid_states: + if not object.has_key(statefield): + if print_failed_objects: + long("- Warning, %s does not have any '%s'" % ( object[namefield], statefield ) ) + return warning + if object[statefield] not in valid_states: if print_failed_objects: long("- Warning, %s=%s (%s)\n" % ( object[namefield], object['operationalstate'], object[detailfield] )) return warning @@ -441,12 +446,16 @@ def check_generic(command="ls disk full",namefield="objectname", perfdata_fields summary = "%s objects found " % len(objects) for i in objects: systemname = i['systemname'] + # Some versions of commandview use "objectname" instead of namefield if i.has_key( namefield ): objectname = i[namefield] else: objectname = i['objectname'] - + # Some versions of CV also return garbage objects, luckily it is easy to find these + if i.has_key('objecttype') and i['objecttype'] == 'typenotset': + long("Object %s was skipped because objecttype == typenotset\n" % objectname ) + continue # Lets see if this object is working nagios_state = max( check_operationalstate(i), nagios_state ) @@ -539,12 +548,19 @@ def check_controllers(): controllers.append( controller ) for i in controllers: systemname = i['systemname'] - controllername = i['controllername'] + if i.has_key('controllername'): + controllername = i['controllername'] + else: + controllername = i['objectname'] # Lets see if this controller is working nagios_state = max( check_operationalstate(i), nagios_state ) # Lets add to the summary - if i['operationalstate'] != 'good': + if not i.has_key('operationalstate'): + summary = summary + " %s does not have any operationalstate" % controllername + nagios_state = max( unknown, nagios_state ) + continue + elif i['operationalstate'] != 'good': summary = summary + " %s/%s=%s " %(systemname,controllername, i['operationalstate']) # Lets get some perfdata @@ -660,7 +676,7 @@ elif mode == 'check_diskgroups': check_generic(command=command,namefield=namefield,longserviceoutputfields=longserviceoutputfields, perfdata_fields=perfdata_fields) elif mode == 'check_disks': check_generic(command="ls disk full",namefield="objectname") -elif mode == 'check_diskshelfs': +elif mode == 'check_diskshelfs' or mode == 'check_diskshelves': check_generic(command="ls diskshelf full",namefield="diskshelfname",longserviceoutputfields=[], perfdata_fields=[]) else: print "* Error: Mode %s not found" % mode diff --git a/nsclient/trunk/scripts/check_eva/library.zip b/nsclient/trunk/scripts/check_eva/library.zip index 95883626623e50e3bc090fa0e826a0ac67f5c254..79dcd5432eddce45fb646d7ff43f6827ba030e66 100644 GIT binary patch delta 379 zcmey?8FEbUvBzh!sG=k;!yEvto9J`A3w~}Cf{X~ z28%!3e4E`JBL07E?Cr@~oKjHr%3L0d0wD9#9Ol;<09^sXlO1`5*&y}S RkTL+vfqb-GTTtqv5dbPBd9DBe delta 379 zcmeyT57@fK*OxU8p=co=Jk~?V*YKcQ=PIJ28UAZ=Mqto4kNU94bDI)gB@~(Z%P_uzMrhcDFs!p%;mu-05ac8T~)yV=n4>??8qz32C*M#S92jxdm#@a z5HkTWGZ3=?F)I+W0Wmuea{w_X5OV=BHxPr=^8zs+5c31E01yiTu@Ddo1F;AYivqD2 z5Q_t`1Q1JZFXWM$%MA7tC{(742}l{jeLme^KuQnp-|4LaQo3Ls$d}W1!Bm3$HvO}J QlmS={IZa0A`DJQUCw|