From patchwork Wed Apr 22 02:02:35 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Snow X-Patchwork-Id: 463545 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 0CF161402E5 for ; Wed, 22 Apr 2015 12:04:40 +1000 (AEST) Received: from localhost ([::1]:32838 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ykk1m-0000TW-3V for incoming@patchwork.ozlabs.org; Tue, 21 Apr 2015 22:04:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47573) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ykjzz-0005YQ-Ia for qemu-devel@nongnu.org; Tue, 21 Apr 2015 22:02:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ykjzy-0005Nh-QJ for qemu-devel@nongnu.org; Tue, 21 Apr 2015 22:02:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55152) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ykjzy-0005NO-Ih for qemu-devel@nongnu.org; Tue, 21 Apr 2015 22:02:46 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t3M22ksU017480 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Tue, 21 Apr 2015 22:02:46 -0400 Received: from scv.usersys.redhat.com (unused [10.10.51.30] (may be forged)) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t3M22cWv022843; Tue, 21 Apr 2015 22:02:44 -0400 From: John Snow To: qemu-devel@nongnu.org Date: Tue, 21 Apr 2015 22:02:35 -0400 Message-Id: <1429668155-1606-6-git-send-email-jsnow@redhat.com> In-Reply-To: <1429668155-1606-1-git-send-email-jsnow@redhat.com> References: <1429668155-1606-1-git-send-email-jsnow@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: lcapitulino@redhat.com, John Snow , kchamart@redhat.com Subject: [Qemu-devel] [PATCH 5/5] scripts: qmp-shell: Add verbose flag X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add a verbose flag that shows the QMP command that was constructed, to allow for later copy/pasting, reference, debugging, etc. Signed-off-by: John Snow Reviewed-by: Eric Blake --- scripts/qmp/qmp-shell | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell index 21d8f71..72473fc 100755 --- a/scripts/qmp/qmp-shell +++ b/scripts/qmp/qmp-shell @@ -167,6 +167,12 @@ class QMPShell(qmp.QEMUMonitorProtocol): self.__cli_expr(cmdargs[1:], qmpcmd['arguments']) return qmpcmd + def _print(self, qmp): + if self._pp is not None: + self._pp.pprint(qmp) + else: + print qmp + def _execute_cmd(self, cmdline): try: qmpcmd = self.__build_cmd(cmdline) @@ -178,15 +184,13 @@ class QMPShell(qmp.QEMUMonitorProtocol): # For transaction mode, we may have just cached the action: if qmpcmd is None: return True + if self._verbose: + self._print(qmpcmd) resp = self.cmd_obj(qmpcmd) if resp is None: print 'Disconnected' return False - - if self._pp is not None: - self._pp.pprint(resp) - else: - print resp + self._print(resp) return True def connect(self): @@ -222,6 +226,9 @@ class QMPShell(qmp.QEMUMonitorProtocol): else: return self._execute_cmd(cmdline) + def set_verbosity(self, verbose): + self._verbose = verbose + class HMPShell(QMPShell): def __init__(self, address): QMPShell.__init__(self, address) @@ -307,6 +314,7 @@ def main(): qemu = None hmp = False pp = None + verbose = False try: for arg in sys.argv[1:]: @@ -318,6 +326,8 @@ def main(): if pp is not None: fail_cmdline(arg) pp = pprint.PrettyPrinter(indent=4) + elif arg == "-v": + verbose = True else: if qemu is not None: fail_cmdline(arg) @@ -342,6 +352,7 @@ def main(): die('Could not connect to %s' % addr) qemu.show_banner() + qemu.set_verbosity(verbose) while qemu.read_exec_command(qemu.get_prompt()): pass qemu.close()