diff options
author | Luke Meyer <lmeyer@redhat.com> | 2017-10-19 11:47:56 -0400 |
---|---|---|
committer | Luke Meyer <lmeyer@redhat.com> | 2017-10-20 10:44:08 -0400 |
commit | 4fb35642a47550021fed3e455bedc9b6fdf2b9c9 (patch) | |
tree | 824ecdef1668084e074810f5b9867046896a44e3 /roles/openshift_health_checker/openshift_checks | |
parent | 61cca52ea383d75aa4c20cf0e96936a5188084e9 (diff) | |
download | openshift-4fb35642a47550021fed3e455bedc9b6fdf2b9c9.tar.gz openshift-4fb35642a47550021fed3e455bedc9b6fdf2b9c9.tar.bz2 openshift-4fb35642a47550021fed3e455bedc9b6fdf2b9c9.tar.xz openshift-4fb35642a47550021fed3e455bedc9b6fdf2b9c9.zip |
disk_availability check: include submount storage
Fixes bug 1491566
https://bugzilla.redhat.com/show_bug.cgi?id=1491566
In order to determine how much storage is under a path, include any
mounts that are below it in addition to the path itself.
Diffstat (limited to 'roles/openshift_health_checker/openshift_checks')
-rw-r--r-- | roles/openshift_health_checker/openshift_checks/disk_availability.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/roles/openshift_health_checker/openshift_checks/disk_availability.py b/roles/openshift_health_checker/openshift_checks/disk_availability.py index 7956559c6..87e6146d4 100644 --- a/roles/openshift_health_checker/openshift_checks/disk_availability.py +++ b/roles/openshift_health_checker/openshift_checks/disk_availability.py @@ -1,6 +1,7 @@ """Check that there is enough disk space in predefined paths.""" import tempfile +import os.path from openshift_checks import OpenShiftCheck, OpenShiftCheckException @@ -121,11 +122,21 @@ class DiskAvailability(OpenShiftCheck): return {} + def find_ansible_submounts(self, path): + """Return a list of ansible_mounts that are below the given path.""" + base = os.path.join(path, "") + return [ + mount + for mount in self.get_var("ansible_mounts") + if mount["mount"].startswith(base) + ] + def free_bytes(self, path): """Return the size available in path based on ansible_mounts.""" + submounts = sum(mnt.get('size_available', 0) for mnt in self.find_ansible_submounts(path)) mount = self.find_ansible_mount(path) try: - return mount['size_available'] + return mount['size_available'] + submounts except KeyError: raise OpenShiftCheckException( 'Unable to retrieve disk availability for "{path}".\n' |