Skip to content

Commit

Permalink
Report zero capacity if GPFS is unmounted
Browse files Browse the repository at this point in the history
_get_available_capacity() calls df command to gather the capacity of GPFS
filesystem. If GPFS is unmounted, df command will return the capacity of
root file system. This change will let get_volume_stats() to report zero
capacity, so that Cinder can schedule the volume request to another volume
service After GPFS is mounted again, the correct capacity will be reported.

Change-Id: I4c229d78e7d659604a23a50e6ab46060642b4088
Closes-Bug: #1246779
  • Loading branch information
zhaoqin-github committed Nov 8, 2013
1 parent 54b117d commit 5ec46e1
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions cinder/volume/drivers/gpfs.py
Expand Up @@ -589,6 +589,18 @@ def _mkfs(self, volume, fs, label=None):

def _get_available_capacity(self, path):
"""Calculate available space on path."""
# Check if GPFS is mounted
try:
self._verify_gpfs_path_state(path)
mounted = True
except exception.VolumeBackendAPIException:
mounted = False

# If GPFS is not mounted, return zero capacity. So that the volume
# request can be scheduled to another volume service.
if not mounted:
return 0, 0

out, _ = self._execute('df', '-P', '-B', '1', path,
run_as_root=True)
out = out.splitlines()[1]
Expand Down

0 comments on commit 5ec46e1

Please sign in to comment.