[lxc-devel] [PATCH] python3: Don't fail in list_containers on ValueError

Stéphane Graber stgraber at ubuntu.com
Thu Jan 16 18:38:59 UTC 2014


ValueError typically means that the user doesn't have permissions to
access the directory. Raising an exception there isn't consistent with
other error behaviour of list_containers which simple returns an empty
tuple.

So simply catch the exception and ignore it. An error message is already
printed by LXC itself anyway.

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 src/python-lxc/lxc/__init__.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py
index fa74297..43fb07d 100644
--- a/src/python-lxc/lxc/__init__.py
+++ b/src/python-lxc/lxc/__init__.py
@@ -398,10 +398,16 @@ def list_containers(active=True, defined=True,
     if config_path:
         if not os.path.exists(config_path):
             return tuple()
-        entries = _lxc.list_containers(active=active, defined=defined,
-                                       config_path=config_path)
+        try:
+            entries = _lxc.list_containers(active=active, defined=defined,
+                                           config_path=config_path)
+        except ValueError:
+            return tuple()
     else:
-        entries = _lxc.list_containers(active=active, defined=defined)
+        try:
+            entries = _lxc.list_containers(active=active, defined=defined)
+        except ValueError:
+            return tuple()
 
     if as_object:
         return tuple([Container(name, config_path) for name in entries])
-- 
1.8.5.2



More information about the lxc-devel mailing list