Show volume usage for all devices
* Don't CoreStorage scans for failed devices * Fixes issue #25
This commit is contained in:
parent
3216c2f46b
commit
f0179ec962
2 changed files with 42 additions and 40 deletions
|
|
@ -250,7 +250,9 @@ def get_mounted_volumes():
|
||||||
mounted_volumes.extend(item.get('children', []))
|
mounted_volumes.extend(item.get('children', []))
|
||||||
return {item['source']: item for item in mounted_volumes}
|
return {item['source']: item for item in mounted_volumes}
|
||||||
|
|
||||||
def mount_volumes(all_devices=True, device_path=None, read_write=False):
|
def mount_volumes(
|
||||||
|
all_devices=True, device_path=None,
|
||||||
|
read_write=False, core_storage=True):
|
||||||
"""Mount all detected filesystems."""
|
"""Mount all detected filesystems."""
|
||||||
report = {}
|
report = {}
|
||||||
cmd = [
|
cmd = [
|
||||||
|
|
@ -261,7 +263,8 @@ def mount_volumes(all_devices=True, device_path=None, read_write=False):
|
||||||
cmd.append(device_path)
|
cmd.append(device_path)
|
||||||
|
|
||||||
# Check for Apple CoreStorage volumes first
|
# Check for Apple CoreStorage volumes first
|
||||||
find_core_storage_volumes(device_path)
|
if core_storage:
|
||||||
|
find_core_storage_volumes(device_path)
|
||||||
|
|
||||||
# Get list of block devices
|
# Get list of block devices
|
||||||
result = run_program(cmd)
|
result = run_program(cmd)
|
||||||
|
|
|
||||||
|
|
@ -668,44 +668,43 @@ def post_drive_results(ticket_number):
|
||||||
# Used space
|
# Used space
|
||||||
report.append('')
|
report.append('')
|
||||||
report.append('Volumes:')
|
report.append('Volumes:')
|
||||||
if dev_failed or dev_unknown:
|
core_storage = dev_passed and not dev_failed and not dev_unknown
|
||||||
report.append('Skipped due to error(s) above.')
|
volume_report = mount_volumes(
|
||||||
else:
|
all_devices=False,
|
||||||
volume_report = mount_volumes(
|
device_path='/dev/{}'.format(name),
|
||||||
all_devices=False,
|
core_storage=core_storage)
|
||||||
device_path='/dev/{}'.format(name))
|
for vol_path, vol_data in sorted(volume_report.items()):
|
||||||
for vol_path, vol_data in sorted(volume_report.items()):
|
vol_report = [
|
||||||
vol_report = [
|
vol_path,
|
||||||
vol_path,
|
'{q}{label}{q}'.format(
|
||||||
'{q}{label}{q}'.format(
|
label=vol_data.get('label', ''),
|
||||||
label=vol_data.get('label', ''),
|
q='"' if vol_data.get('label', '') else ''),
|
||||||
q='"' if vol_data.get('label', '') else ''),
|
'{}'.format(
|
||||||
'{}'.format(
|
vol_data.get('size', 'UNKNOWN').upper()),
|
||||||
vol_data.get('size', 'UNKNOWN').upper()),
|
'{}'.format(
|
||||||
'{}'.format(
|
vol_data.get('size_used', 'UNKNOWN').upper()),
|
||||||
vol_data.get('size_used', 'UNKNOWN').upper()),
|
'{}'.format(
|
||||||
'{}'.format(
|
vol_data.get('size_avail', 'UNKNOWN').upper()),
|
||||||
vol_data.get('size_avail', 'UNKNOWN').upper()),
|
]
|
||||||
]
|
if vol_report[2][-1:] != 'N':
|
||||||
if vol_report[2][-1:] != 'N':
|
vol_report[2] = '{} {}B'.format(
|
||||||
vol_report[2] = '{} {}B'.format(
|
vol_report[2][:-1],
|
||||||
vol_report[2][:-1],
|
vol_report[2][-1:])
|
||||||
vol_report[2][-1:])
|
vol_report = [v.strip().replace(' ', '_') for v in vol_report]
|
||||||
vol_report = [v.strip().replace(' ', '_') for v in vol_report]
|
for i in range(5):
|
||||||
for i in range(5):
|
pad = 8
|
||||||
pad = 8
|
if i < 2:
|
||||||
if i < 2:
|
pad += 4 * (2 - i)
|
||||||
pad += 4 * (2 - i)
|
vol_report[i] = pad_with_dots(
|
||||||
vol_report[i] = pad_with_dots(
|
left_pad=False,
|
||||||
left_pad=False,
|
s='{s:<{p}}'.format(
|
||||||
s='{s:<{p}}'.format(
|
s=vol_report[i],
|
||||||
s=vol_report[i],
|
p=pad))
|
||||||
p=pad))
|
vol_report[-1] = re.sub(r'\.*$', '', vol_report[-1])
|
||||||
vol_report[-1] = re.sub(r'\.*$', '', vol_report[-1])
|
vol_report = [v.replace('_', ' ') for v in vol_report]
|
||||||
vol_report = [v.replace('_', ' ') for v in vol_report]
|
line = '{}..{}..Total..{}..(Used..{}..Free..{})'.format(
|
||||||
line = '{}..{}..Total..{}..(Used..{}..Free..{})'.format(
|
*vol_report)
|
||||||
*vol_report)
|
report.append(line)
|
||||||
report.append(line)
|
|
||||||
|
|
||||||
# Post reply for drive
|
# Post reply for drive
|
||||||
osticket_post_reply(
|
osticket_post_reply(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue