mirror of https://github.com/eLvErDe/hwraid.git
Very minor bugfixes (Rev 1.15)
This commit is contained in:
parent
e481cb37f4
commit
9d20a55165
|
@ -1,15 +1,34 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# $Id: megaclisas-status,v 1.14 2015/01/14 20:40:09 root Exp $
|
# $Id: megaclisas-status,v 1.15 2015/01/15 20:30:53 root Exp $
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import pdb
|
import pdb
|
||||||
|
|
||||||
|
megaclipath = "/opt/MegaRAID/MegaCli/MegaCli64"
|
||||||
|
|
||||||
|
# Adding a quick check to see if we're root, because on most cards I've tried this on
|
||||||
|
# We need root access to query
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if os.getenv('USER') != 'root':
|
||||||
|
print 'You can only run this script as root or with sudo, sucks I know. Blame the RAID card'
|
||||||
|
sys.exit(5)
|
||||||
|
|
||||||
|
# Check command line arguments to enable nagios or not
|
||||||
if len(sys.argv) > 2:
|
if len(sys.argv) > 2:
|
||||||
print 'Usage: megaraid-status [-d]'
|
print 'Usage: megaraid-status [-d]'
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Check binary exists (and +x), if not print an error message
|
||||||
|
# or return UNKNOWN nagios error code
|
||||||
|
if os.path.exists(megaclipath) and os.access(megaclipath, os.X_OK):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print 'Cannot find ' + megaclipath + '. Please install it.'
|
||||||
|
sys.exit(3)
|
||||||
|
|
||||||
|
|
||||||
printarray = True
|
printarray = True
|
||||||
printcontroller = True
|
printcontroller = True
|
||||||
totaldrivenumber = 0
|
totaldrivenumber = 0
|
||||||
|
@ -209,7 +228,7 @@ def returnUnconfDiskInfo(output,controllerid):
|
||||||
table.append([state, model, speed, temp, enclid, slotid, lsidid])
|
table.append([state, model, speed, temp, enclid, slotid, lsidid])
|
||||||
return table
|
return table
|
||||||
|
|
||||||
cmd = 'megacli -adpCount -NoLog'
|
cmd = '%s -adpCount -NoLog' % (megaclipath)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
controllernumber = returnControllerNumber(output)
|
controllernumber = returnControllerNumber(output)
|
||||||
|
|
||||||
|
@ -221,7 +240,7 @@ if printcontroller:
|
||||||
print '-- ID\t| Model'
|
print '-- ID\t| Model'
|
||||||
controllerid = 0
|
controllerid = 0
|
||||||
while controllerid < controllernumber:
|
while controllerid < controllernumber:
|
||||||
cmd = 'megacli -AdpAllInfo -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -AdpAllInfo -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
controllermodel = returnControllerModel(output)
|
controllermodel = returnControllerModel(output)
|
||||||
controllerram = returnMemorySize(output)
|
controllerram = returnMemorySize(output)
|
||||||
|
@ -236,11 +255,11 @@ if printarray:
|
||||||
print '-- ID\t| Type | Size | Status | InProgress'
|
print '-- ID\t| Type | Size | Status | InProgress'
|
||||||
while controllerid < controllernumber:
|
while controllerid < controllernumber:
|
||||||
arrayid = 0
|
arrayid = 0
|
||||||
cmd = 'megacli -LDInfo -lall -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -LDInfo -lall -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
arraynumber = returnArrayNumber(output)
|
arraynumber = returnArrayNumber(output)
|
||||||
while arrayid < arraynumber:
|
while arrayid < arraynumber:
|
||||||
cmd = 'megacli -LDInfo -l'+str(arrayid)+' -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -LDInfo -l%d -a%d -NoLog' % (megaclipath, arrayid, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
arrayinfo = returnArrayInfo(output,controllerid,arrayid)
|
arrayinfo = returnArrayInfo(output,controllerid,arrayid)
|
||||||
print arrayinfo[0]+'\t| '+arrayinfo[1]+' | '+arrayinfo[2]+' | '+arrayinfo[3]+' | '+arrayinfo[4]
|
print arrayinfo[0]+'\t| '+arrayinfo[1]+' | '+arrayinfo[2]+' | '+arrayinfo[3]+' | '+arrayinfo[4]
|
||||||
|
@ -253,7 +272,7 @@ if printarray:
|
||||||
|
|
||||||
controllerid = 0
|
controllerid = 0
|
||||||
while controllerid < controllernumber:
|
while controllerid < controllernumber:
|
||||||
cmd = 'megacli -PDGetNum -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -PDGetNum -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
totaldrivenumber += returnTotalDriveNumber(output)
|
totaldrivenumber += returnTotalDriveNumber(output)
|
||||||
controllerid += 1
|
controllerid += 1
|
||||||
|
@ -265,12 +284,12 @@ if totaldrivenumber:
|
||||||
controllerid = 0
|
controllerid = 0
|
||||||
while controllerid < controllernumber:
|
while controllerid < controllernumber:
|
||||||
arrayid = 0
|
arrayid = 0
|
||||||
cmd = 'megacli -LDInfo -lall -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -LDInfo -lall -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
arraynumber = returnArrayNumber(output)
|
arraynumber = returnArrayNumber(output)
|
||||||
#### BUG: -LdPdInfo shows all PD on the adapter, not just for said LD..
|
#### BUG: -LdPdInfo shows all PD on the adapter, not just for said LD..
|
||||||
#### while arrayid <= arraynumber:
|
#### while arrayid <= arraynumber:
|
||||||
cmd = 'megacli -LdPdInfo -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -LdPdInfo -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
arraydisk = returnDiskInfo(output,controllerid)
|
arraydisk = returnDiskInfo(output,controllerid)
|
||||||
for array in arraydisk:
|
for array in arraydisk:
|
||||||
|
@ -280,7 +299,7 @@ if totaldrivenumber:
|
||||||
|
|
||||||
controllerid = 0
|
controllerid = 0
|
||||||
while controllerid < controllernumber:
|
while controllerid < controllernumber:
|
||||||
cmd = 'megacli -LdPdInfo -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -LdPdInfo -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
totalunconfdrivenumber += returnUnconfDriveNumber(output)
|
totalunconfdrivenumber += returnUnconfDriveNumber(output)
|
||||||
controllerid += 1
|
controllerid += 1
|
||||||
|
@ -292,12 +311,12 @@ if totalunconfdrivenumber:
|
||||||
controllerid = 0
|
controllerid = 0
|
||||||
while controllerid < controllernumber:
|
while controllerid < controllernumber:
|
||||||
arrayid = 0
|
arrayid = 0
|
||||||
cmd = 'megacli -LDInfo -lall -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -LDInfo -lall -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
arraynumber = returnArrayNumber(output)
|
arraynumber = returnArrayNumber(output)
|
||||||
#### BUG: -LdPdInfo shows all PD on the adapter, not just for said LD..
|
#### BUG: -LdPdInfo shows all PD on the adapter, not just for said LD..
|
||||||
#### while arrayid <= arraynumber:
|
#### while arrayid <= arraynumber:
|
||||||
cmd = 'megacli -PDList -a'+str(controllerid)+' -NoLog'
|
cmd = '%s -PDList -a%d -NoLog' % (megaclipath, controllerid)
|
||||||
output = getOutput(cmd)
|
output = getOutput(cmd)
|
||||||
arraydisk = returnUnconfDiskInfo(output,controllerid)
|
arraydisk = returnUnconfDiskInfo(output,controllerid)
|
||||||
for array in arraydisk:
|
for array in arraydisk:
|
||||||
|
|
Loading…
Reference in New Issue