python3: Don't fail in list_containers on ValueError

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@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
Stéphane Graber 2014-01-16 13:37:32 -05:00
parent 378a572948
commit a539732721

View File

@ -386,10 +386,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])