-
Notifications
You must be signed in to change notification settings - Fork 5.5k
/
mdadm.py
38 lines (31 loc) · 937 Bytes
/
mdadm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# -*- coding: utf-8 -*-
'''
Detect MDADM RAIDs
'''
from __future__ import absolute_import, print_function, unicode_literals
# Import python libs
import logging
# Import salt libs
import salt.utils.files
log = logging.getLogger(__name__)
def mdadm():
'''
Return list of mdadm devices
'''
devices = set()
try:
with salt.utils.files.fopen('/proc/mdstat', 'r') as mdstat:
for line in mdstat:
line = salt.utils.stringutils.to_unicode(line)
if line.startswith('Personalities : '):
continue
if line.startswith('unused devices:'):
continue
if ' : ' in line:
devices.add(line.split(' : ')[0])
except IOError:
return {}
devices = sorted(devices)
if devices:
log.trace('mdadm devices detected: %s', ', '.join(devices))
return {'mdadm': devices}