mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-25 11:51:26 -07:00
More statvfs info for mount facts rebase 12073 (#25454)
* Add more mount point statvfs info including sizes Based on https://github.com/ansible/ansible/pull/12073 facts.utils.get_mount_size() now returns a dict of most of the posix statvfs data, including block_size and inode counts. Update the facts.hardware classes that use get_mount_size() to use the new info by mount_info.update(mount_statvfs_inof) to merge. * add back unit tests for LinuxHardware mount/fs facts * add test cases for facts.utils.get_mount_size
This commit is contained in:
parent
3bba43a487
commit
56b7483b85
10 changed files with 591 additions and 46 deletions
|
@ -47,13 +47,24 @@ def get_file_lines(path):
|
|||
|
||||
|
||||
def get_mount_size(mountpoint):
|
||||
size_total = None
|
||||
size_available = None
|
||||
mount_size = {}
|
||||
|
||||
try:
|
||||
statvfs_result = os.statvfs(mountpoint)
|
||||
size_total = statvfs_result.f_frsize * statvfs_result.f_blocks
|
||||
size_available = statvfs_result.f_frsize * (statvfs_result.f_bavail)
|
||||
mount_size['size_total'] = statvfs_result.f_frsize * statvfs_result.f_blocks
|
||||
mount_size['size_available'] = statvfs_result.f_frsize * (statvfs_result.f_bavail)
|
||||
|
||||
# Block total/available/used
|
||||
mount_size['block_size'] = statvfs_result.f_bsize
|
||||
mount_size['block_total'] = statvfs_result.f_blocks
|
||||
mount_size['block_available'] = statvfs_result.f_bavail
|
||||
mount_size['block_used'] = mount_size['block_total'] - mount_size['block_available']
|
||||
|
||||
# Inode total/available/used
|
||||
mount_size['inode_total'] = statvfs_result.f_files
|
||||
mount_size['inode_available'] = statvfs_result.f_favail
|
||||
mount_size['inode_used'] = mount_size['inode_total'] - mount_size['inode_available']
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
return size_total, size_available
|
||||
return mount_size
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue