Добавлен объект для /bin/df

master3.4
Mike Hiretsky 9 years ago
parent f2e7d8ca57
commit 943f18e981

@ -591,6 +591,7 @@ def check_rw(dn):
:param dn:
:return:
"""
def _random_string(l=10):
return "".join(
random.choice(string.ascii_letters) for i in xrange(0, l))
@ -1316,3 +1317,30 @@ class scanDirectory(object):
if ret is False:
return False
return ret
class DiskSpaceError(Exception):
pass
class DiskSpace(object):
def __init__(self):
self.df_cmd = getProgPath('/bin/df')
def get_free(self, dev=None, dn=None):
if dev:
mp = isMount(dev)
if not mp:
raise DiskSpaceError(_("Device %s must be mounted") % dev)
dn = dev
p = process(self.df_cmd, dn, "-B1")
if p.success():
data = p.read().strip()
lines = data.split('\n')
if len(lines) >= 2:
cols = filter(None, lines[1].split())
if len(cols) == 6:
return int(cols[3])
raise DiskSpaceError(_("Wrong df output:\n%s") % data)
else:
raise DiskSpaceError(str(p.readerr()))

Loading…
Cancel
Save