diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2019-12-09 23:59:09 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-15 09:04:38 +0000 |
commit | 47e40fdd7dd58bde4e017e2375c16450fcb14eca (patch) | |
tree | d79b0f6167dc54cd23010345a143941b8c3b456f /scripts | |
parent | ca64a3d490fbe1bf87c9f1dd6d87a1ecdeba8325 (diff) | |
download | openembedded-core-contrib-47e40fdd7dd58bde4e017e2375c16450fcb14eca.tar.gz |
runqemu: handle tap device creation failure properly
If we fail to run the command to generate the tap devices then we should
show a reasonable message and then exit, without showing a traceback.
"return 1" at this point in the code does nothing because the caller
doesn't check the return, so just use sys.exit().
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/runqemu | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index f061917c4b..ef454d67ff 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -1121,7 +1121,11 @@ class BaseConfig(object): uid = os.getuid() logger.info("Setting up tap interface under sudo") cmd = ('sudo', self.qemuifup, str(uid), str(gid), self.bindir_native) - tap = subprocess.check_output(cmd).decode('utf-8').strip() + try: + tap = subprocess.check_output(cmd).decode('utf-8').strip() + except subprocess.CalledProcessError as e: + logger.error('Setting up tap device failed:\n%s\nRun runqemu-gen-tapdevs to manually create one.' % str(e)) + sys.exit(1) lockfile = os.path.join(lockdir, tap) self.taplock = lockfile + '.lock' self.acquire_taplock() @@ -1130,7 +1134,7 @@ class BaseConfig(object): if not tap: logger.error("Failed to setup tap device. Run runqemu-gen-tapdevs to manually create.") - return 1 + sys.exit(1) self.tap = tap tapnum = int(tap[3:]) gateway = tapnum * 2 + 1 |