Something went wrong on our end
-
Florent Thiery authoredFlorent Thiery authored
test_raid.py 1.02 KiB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2017, Florent Thiery
'''
Criticality: High
Checks that the server RAID array is fine.
'''
import glob
import subprocess
import sys
import os
GREEN = '\033[92m'
RED = '\033[91m'
DEF = '\033[0m'
def print_red(string):
print(RED + string + DEF)
def print_green(string):
print(GREEN + string + DEF)
def check_raid(dev):
cmd = 'mdadm -D %s' % dev
status, output = subprocess.getstatusoutput(cmd)
ok = status == 0
print('%s status: %s' % (dev, ok))
return ok
if os.path.isfile('/proc/mdstat'):
all_ok = True
for r in glob.glob('/dev/md*'):
# ignore /dev/md folder
if os.path.isfile(r):
all_ok = min(check_raid(r), all_ok)
if all_ok:
print_green('Everything fine')
else:
print_red('Some array is in bad shape')
with open('/proc/mdstat', 'r') as f:
d = f.read()
print(d)
sys.exit(not all_ok)
else:
print('No software RAID array found, untestable')
sys.exit(2)