qemurunner: Update to match qmp changes

Upstream made changes to the qmp module. We need to use the legacy one
for now since that matches the interface we use, ultimately we likely
need to update our code.

Also fix the generic exception handler to show the actual exception
which helps debugging when something does break.

(From OE-Core rev: 6e90b0d909d3c8b1be5cb19f2411cd0e89735c84)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2022-09-09 09:15:55 +01:00
parent 9040d46f59
commit df89d59a19

View File

@@ -188,8 +188,8 @@ class QemuRunner:
importlib.invalidate_caches()
try:
qmp = importlib.import_module("qmp")
except:
self.logger.error("qemurunner: qmp.py missing, please ensure it's installed")
except Exception as e:
self.logger.error("qemurunner: qmp.py missing, please ensure it's installed (%s)" % str(e))
return False
# Path relative to tmpdir used as cwd for qemu below to avoid unix socket path length issues
qmp_file = "." + next(tempfile._get_candidate_names())
@@ -325,7 +325,8 @@ class QemuRunner:
try:
os.chdir(os.path.dirname(qmp_port))
try:
self.qmp = qmp.QEMUMonitorProtocol(os.path.basename(qmp_port))
from qmp.legacy import QEMUMonitorProtocol
self.qmp = QEMUMonitorProtocol(os.path.basename(qmp_port))
except OSError as msg:
self.logger.warning("Failed to initialize qemu monitor socket: %s File: %s" % (msg, msg.filename))
return False