Browse Source

updated

pull/12/head
root 3 years ago
parent
commit
23c3046a96
  1. 60382
      files/BIOS_1RKPD_LN_2.10.5.BIN
  2. 99434
      files/BIOS_2MY33_LN_1.10.6.BIN
  3. BIN
      files/Lib_Utils-1.00-09.noarch.rpm
  4. BIN
      files/MegaCli-8.04.07-1.noarch.rpm
  5. BIN
      files/NVIDIA-Linux-x86_64-418.70-grid.tar
  6. 47670
      files/Network_Firmware_GK57C_LN_19.0.12_A00.BIN
  7. 91534
      files/Network_Firmware_T6HGD_LN_19.0.12_A00.BIN
  8. 51918
      files/R920_BIOS_HPKJN_LN_1.9.0.BIN
  9. 48
      files/gridd.conf
  10. 1187
      files/hosts
  11. 420859
      files/iDRAC-with-Lifecycle-Controller_Firmware_40T1C_LN_2.63.60.61_A00.BIN
  12. 550730
      files/iDRAC-with-Lifecycle-Controller_Firmware_HFMCV_LN_3.36.36.36_A00.BIN
  13. 421101
      files/iDRAC-with-Lifecycle-Controller_Firmware_T35W2_LN_2.63.60.62_A00.BIN
  14. 209
      files/megaclisas-status
  15. BIN
      files/nagios.tar.gz

60382
files/BIOS_1RKPD_LN_2.10.5.BIN

File diff suppressed because one or more lines are too long

99434
files/BIOS_2MY33_LN_1.10.6.BIN

File diff suppressed because one or more lines are too long

BIN
files/Lib_Utils-1.00-09.noarch.rpm

Binary file not shown.

BIN
files/MegaCli-8.04.07-1.noarch.rpm

Binary file not shown.

BIN
files/NVIDIA-Linux-x86_64-418.70-grid.tar

Binary file not shown.

47670
files/Network_Firmware_GK57C_LN_19.0.12_A00.BIN

File diff suppressed because one or more lines are too long

91534
files/Network_Firmware_T6HGD_LN_19.0.12_A00.BIN

File diff suppressed because one or more lines are too long

51918
files/R920_BIOS_HPKJN_LN_1.9.0.BIN

File diff suppressed because one or more lines are too long

48
files/gridd.conf

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
# /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon
# This is a template for the configuration file for NVIDIA Grid Daemon.
# For details on the file format, please refer to the nvidia-gridd(1)
# man page.
# Description: Set License Server Address
# Data type: string
# Format: "<address>"
ServerAddress=129.125.60.19
# Description: Set License Server port number
# Data type: integer
# Format: <port>, default is 7070
ServerPort=7070
# Description: Set Backup License Server Address
# Data type: string
# Format: "<address>"
#BackupServerAddress=
# Description: Set Backup License Server port number
# Data type: integer
# Format: <port>, default is 7070
#BackupServerPort=
# Description: Set Feature to be enabled
# Data type: integer
# Possible values:
# 0 => for unlicensed state
# 1 => for GRID vGPU
# 2 => for Quadro Virtual Datacenter Workstation
FeatureType=2
# Description: Parameter to enable or disable Grid Licensing tab in nvidia-settings
# Data type: boolean
# Possible values: TRUE or FALSE, default is FALSE
#EnableUI=TRUE
# Description: Set license borrow period in minutes
# Data type: integer
# Possible values: 10 to 10080 mins(7 days), default is 1440 mins(1 day)
#LicenseInterval=1440
# Description: Set license linger period in minutes
# Data type: integer
# Possible values: 0 to 10080 mins(7 days), default is 0 mins
#LingerInterval=10

1187
files/hosts

File diff suppressed because it is too large Load Diff

420859
files/iDRAC-with-Lifecycle-Controller_Firmware_40T1C_LN_2.63.60.61_A00.BIN

File diff suppressed because one or more lines are too long

550730
files/iDRAC-with-Lifecycle-Controller_Firmware_HFMCV_LN_3.36.36.36_A00.BIN

File diff suppressed because one or more lines are too long

421101
files/iDRAC-with-Lifecycle-Controller_Firmware_T35W2_LN_2.63.60.62_A00.BIN

File diff suppressed because it is too large Load Diff

209
files/megaclisas-status

@ -0,0 +1,209 @@ @@ -0,0 +1,209 @@
#!/usr/bin/python
import os
import re
import sys
binarypath = "/usr/sbin/megacli"
if len(sys.argv) > 2:
print 'Usage: megaclisas-status [--nagios]'
sys.exit(1)
nagiosmode=False
nagiosoutput=''
nagiosgoodarray=0
nagiosbadarray=0
nagiosgooddisk=0
nagiosbaddisk=0
# Check command line arguments to enable nagios or not
if len(sys.argv) > 1:
if sys.argv[1] == '--nagios':
nagiosmode=True
else:
print 'Usage: megaclisas-status [-nagios]'
sys.exit(1)
# Check binary exists (and +x), if not print an error message
# or return UNKNOWN nagios error code
if os.path.exists(binarypath) and os.access(binarypath, os.X_OK):
pass
else:
if nagiosmode:
print 'UNKNOWN - Cannot find '+binarypath
else:
print 'Cannot find '+binarypath+'. Please install it.'
sys.exit(3)
# Get command output
def getOutput(cmd):
output = os.popen(cmd)
lines = []
for line in output:
if not re.match(r'^$',line.strip()):
lines.append(line.strip())
return lines
def returnControllerNumber(output):
for line in output:
if re.match(r'^Controller Count.*$',line.strip()):
return int(line.split(':')[1].strip().strip('.'))
def returnControllerModel(output):
for line in output:
if re.match(r'^Product Name.*$',line.strip()):
return line.split(':')[1].strip()
def returnArrayNumber(output):
i = 0
for line in output:
if re.match(r'^Number of Virtual (Disk|Drive).*$',line.strip()):
i = line.strip().split(':')[1].strip()
return i
def returnArrayInfo(output,controllerid,arrayid):
id = 'c'+str(controllerid)+'u'+str(arrayid)
operationlinennumber = False
linenumber = 0
for line in output:
if re.match(r'Number Of Drives\s*((per span))?:.*[0-9]+$',line.strip()):
ldpdcount = line.split(':')[1].strip()
if re.match(r'Span Depth *:.*[0-9]+$',line.strip()):
spandepth = line.split(':')[1].strip()
if re.match(r'^RAID Level\s*:.*$',line.strip()):
raidlevel = line.strip().split(':')[1].split(',')[0].split('-')[1].strip()
type = 'RAID' + raidlevel
if re.match(r'^Size\s*:.*$',line.strip()):
# Size reported in MB
if re.match(r'^.*MB$',line.strip().split(':')[1]):
size = line.strip().split(':')[1].strip('MB').strip()
size = str(int(round((float(size) / 1000))))+'G'
# Size reported in TB
elif re.match(r'^.*TB$',line.strip().split(':')[1]):
size = line.strip().split(':')[1].strip('TB').strip()
size = str(int(round((float(size) * 1000))))+'G'
# Size reported in GB (default)
else:
size = line.strip().split(':')[1].strip('GB').strip()
size = str(int(round((float(size)))))+'G'
if re.match(r'^State\s*:.*$',line.strip()):
state = line.strip().split(':')[1].strip()
if re.match(r'^Ongoing Progresses\s*:.*$',line.strip()):
operationlinennumber = linenumber
linenumber += 1
if operationlinennumber:
inprogress = output[operationlinennumber+1]
else:
inprogress = 'None'
if ldpdcount and (int(spandepth) > 1):
ldpdcount = int(ldpdcount) * int(spandepth)
if int(raidlevel) < 10:
type = type + "0"
return [id,type,size,state,inprogress]
def returnDiskInfo(output,controllerid):
arrayid = False
diskid = False
table = []
state = 'undef'
model = 'undef'
for line in output:
if re.match(r'^Virtual (Disk|Drive): [0-9]+.*$',line.strip()):
arrayid = line.split('(')[0].split(':')[1].strip()
if re.match(r'Firmware state: .*$',line.strip()):
state = line.split(':')[1].strip()
if re.match(r'Inquiry Data: .*$',line.strip()):
model = line.split(':')[1].strip()
model = re.sub(' +', ' ', model)
if re.match(r'PD: [0-9]+ Information.*$',line.strip()):
diskid = line.split()[1].strip()
if arrayid != False and state != 'undef' and model != 'undef' and diskid != False:
table.append([str(arrayid), str(diskid), state, model])
state = 'undef'
model = 'undef'
return table
cmd = binarypath+' -adpCount -NoLog'
output = getOutput(cmd)
controllernumber = returnControllerNumber(output)
bad = False
# List available controller
if not nagiosmode:
print '-- Controller informations --'
print '-- ID | Model'
controllerid = 0
while controllerid < controllernumber:
cmd = binarypath+' -AdpAllInfo -a'+str(controllerid)+' -NoLog'
output = getOutput(cmd)
controllermodel = returnControllerModel(output)
print 'c'+str(controllerid)+' | '+controllermodel
controllerid += 1
print ''
controllerid = 0
if not nagiosmode:
print '-- Arrays informations --'
print '-- ID | Type | Size | Status | InProgress'
while controllerid < controllernumber:
arrayid = 0
cmd = binarypath+' -LdGetNum -a'+str(controllerid)+' -NoLog'
output = getOutput(cmd)
arraynumber = returnArrayNumber(output)
while arrayid < int(arraynumber):
cmd = binarypath+' -LDInfo -l'+str(arrayid)+' -a'+str(controllerid)+' -NoLog'
output = getOutput(cmd)
arrayinfo = returnArrayInfo(output,controllerid,arrayid)
if not nagiosmode:
print arrayinfo[0]+' | '+arrayinfo[1]+' | '+arrayinfo[2]+' | '+arrayinfo[3]+' | '+arrayinfo[4]
if not arrayinfo[3] == 'Optimal':
bad = True
nagiosbadarray=nagiosbadarray+1
else:
nagiosgoodarray=nagiosgoodarray+1
arrayid += 1
controllerid += 1
if not nagiosmode:
print ''
if not nagiosmode:
print '-- Disks informations'
print '-- ID | Model | Status'
controllerid = 0
while controllerid < controllernumber:
arrayid = 0
cmd = binarypath+' -LDInfo -lall -a'+str(controllerid)+' -NoLog'
output = getOutput(cmd)
cmd = binarypath+' -LdPdInfo -a'+str(controllerid)+' -NoLog'
output = getOutput(cmd)
arraydisk = returnDiskInfo(output,controllerid)
for array in arraydisk:
if not array[2] == 'Online' and not array[2] == 'Online, Spun Up':
bad=True
nagiosbaddisk=nagiosbaddisk+1
else:
nagiosgooddisk=nagiosgooddisk+1
if not nagiosmode:
print 'c'+str(controllerid)+'u'+array[0]+'p'+array[1]+' | '+array[3]+' | '+array[2]
controllerid += 1
if nagiosmode:
if bad:
print 'RAID ERROR - Arrays: OK:'+str(nagiosgoodarray)+' Bad:'+str(nagiosbadarray)+' - Disks: OK:'+str(nagiosgooddisk)+' Bad:'+str(nagiosbaddisk)
sys.exit(2)
else:
print 'RAID OK - Arrays: OK:'+str(nagiosgoodarray)+' Bad:'+str(nagiosbadarray)+' - Disks: OK:'+str(nagiosgooddisk)+' Bad:'+str(nagiosbaddisk)
else:
if bad:
print '\nThere is at least one disk/array in a NOT OPTIMAL state.'
sys.exit(1)

BIN
files/nagios.tar.gz

Binary file not shown.
Loading…
Cancel
Save