Browse Source

python/aqmp: Fix negotiation with pre-"oob" QEMU

QEMU versions prior to the "oob" capability *also* can't accept the
"enable" keyword argument at all. Fix the handshake process with older
QEMU versions.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-id: 20220201041134.1237016-2-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
John Snow 3 years ago
parent
commit
fa73e6e4ca
1 changed files with 2 additions and 2 deletions
  1. 2 2
      python/qemu/aqmp/qmp_client.py

+ 2 - 2
python/qemu/aqmp/qmp_client.py

@@ -292,9 +292,9 @@ async def _negotiate(self) -> None:
         """
         """
         self.logger.debug("Negotiating capabilities ...")
         self.logger.debug("Negotiating capabilities ...")
 
 
-        arguments: Dict[str, List[str]] = {'enable': []}
+        arguments: Dict[str, List[str]] = {}
         if self._greeting and 'oob' in self._greeting.QMP.capabilities:
         if self._greeting and 'oob' in self._greeting.QMP.capabilities:
-            arguments['enable'].append('oob')
+            arguments.setdefault('enable', []).append('oob')
         msg = self.make_execute_msg('qmp_capabilities', arguments=arguments)
         msg = self.make_execute_msg('qmp_capabilities', arguments=arguments)
 
 
         # It's not safe to use execute() here, because the reader/writers
         # It's not safe to use execute() here, because the reader/writers