testing local clone hook
This commit is contained in:
parent
8add03fadb
commit
7bc6ea3408
42
storage/mdadm/status.py
Executable file
42
storage/mdadm/status.py
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import mdstat # apacman -S python-mdstat
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
# also requires parted to be installed
|
||||
|
||||
def getMdstat():
|
||||
mds = {}
|
||||
with open(os.devnull, 'w') as DEVNULL:
|
||||
_devlines = subprocess.run(['mdadm',
|
||||
'--detail',
|
||||
'--scan'],
|
||||
stderr = DEVNULL,
|
||||
stdout = subprocess.PIPE).stdout.decode('utf-8')
|
||||
for m in _devlines.split():
|
||||
l = m.split()
|
||||
dev = os.path.split(l[1])[-1]
|
||||
mds[dev] = {'device': l[1].strip(),
|
||||
'metadata': l[2].split('=')[1].strip(),
|
||||
'host': l[3].split('=')[1].split(':')[0].strip(),
|
||||
'name': l[3].split('=')[1].split(':')[1].strip(),
|
||||
'uuid': l[4].split('=')[1].strip()}
|
||||
_md = mdstat.parse()['devices'][dev]
|
||||
mds[dev]['status'] = ('active' if _md['active'] else 'inactive')
|
||||
mds[dev]['members'] = _md['disks']
|
||||
if _md['resync']:
|
||||
mds[dev]['status'] = _md['resync']
|
||||
# TODO: I STOPPED HERE
|
||||
|
||||
def userChk():
|
||||
# Needs to be run as root/with sudo, because we need to use mdadm --detail --scan etc.
|
||||
if os.geteuid() != 0:
|
||||
raise PermissionError('This script must be run with root privileges.')
|
||||
|
||||
def main():
|
||||
userChk()
|
||||
getMdstat()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user