Commit fcfab754 authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Markus Armbruster
Browse files

qmp-shell: learn to send commands with quoted arguments



Use shlex to split the CLI command, respecting quoted arguments, and
also comments. This allows to call for ex:

(QEMU) human-monitor-command command-line="screendump /dev/null"
{"execute": "human-monitor-command", "arguments": {"command-line": "screendump /dev/null"}}

Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20180326150916.9602-3-marcandre.lureau@redhat.com>
Reviewed-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
parent 38441756
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ import sys
import os
import errno
import atexit
import shlex

class QMPCompleter(list):
    def complete(self, text, state):
@@ -219,7 +220,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):

            < command-name > [ arg-name1=arg1 ] ... [ arg-nameN=argN ]
        """
        cmdargs = cmdline.split()
        cmdargs = shlex.split(cmdline)

        # Transactional CLI entry/exit:
        if cmdargs[0] == 'transaction(':