cros_vm: clean up normal error output
The vm module throws VMError for "normal" errors that shows users
the problem (e.g. missing file). But cros_vm code doesn't catch
those, so it turns into a raw traceback. Clean up the code so we
log it properly and then exit non-zero.
BUG=None
TEST=CQ passes
Change-Id: I52a7bbf8995a0efc29d61862bcaa62111d3e4255
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3586977
Tested-by: Mike Frysinger <vapier@chromium.org>
Auto-Submit: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Lizzy Presland <zland@google.com>
Commit-Queue: Lizzy Presland <zland@google.com>
diff --git a/scripts/cros_vm.py b/scripts/cros_vm.py
index 8cd0aef..9e7c905 100644
--- a/scripts/cros_vm.py
+++ b/scripts/cros_vm.py
@@ -4,6 +4,8 @@
"""CLI entry point into lib/vm.py; used for VM management."""
+import logging
+
from chromite.lib import vm
@@ -11,4 +13,13 @@
opts = vm.VM.GetParser().parse_args(argv)
opts.Freeze()
- vm.VM(opts).Run()
+ try:
+ vm.VM(opts).Run()
+ return 0
+ except vm.VMError as e:
+ logging.error('%s', e)
+ if opts.debug:
+ raise
+
+ logging.error('(Re-run with --debug for more details.)')
+ return 1