From d71af9ea4416b1292a0b22388ca2fff58538e036 Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Wed, 3 Oct 2018 03:55:53 +0000 Subject: [PATCH] Handle docker data root doesn't exist In kolla, zun compute run inside a container so it couldn't access the docker data root. Zun needs to handle this case. Change-Id: I6882803404a1a5a6a5fe59afb1ee4b63bcd36514 Closes-Bug: #1795262 --- zun/container/docker/driver.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/zun/container/docker/driver.py b/zun/container/docker/driver.py index d5f465f38..cc5b1e365 100644 --- a/zun/container/docker/driver.py +++ b/zun/container/docker/driver.py @@ -12,6 +12,7 @@ # limitations under the License. import datetime +import errno import eventlet import functools import types @@ -1118,7 +1119,14 @@ class DockerDriver(driver.ContainerDriver): runtimes) def get_total_disk_for_container(self): - disk_usage = psutil.disk_usage(CONF.docker.docker_data_root) + try: + disk_usage = psutil.disk_usage(CONF.docker.docker_data_root) + except OSError as e: + if e.errno != errno.ENOENT: + raise + LOG.warning('Docker data root doesnot exist.') + # give another try with system root + disk_usage = psutil.disk_usage('/') total_disk = disk_usage.total / 1024 ** 3 return int(total_disk * (1 - CONF.compute.reserve_disk_for_image))