 fe2f74af2b
			
		
	
	
		fe2f74af2b
		
	
	
	
	
		
			
			When invoking the script with -s, we end up passing a bogus value
to QEMU:
$ ./scripts/qmp/qom-set -s /var/tmp/qmp-sock-exp /machine.accel kvm
{}
$ ./scripts/qmp/qom-get -s /var/tmp/qmp-sock-exp /machine.accel
/var/tmp/qmp-sock-exp
This happens because sys.argv[2] isn't necessarily the command line
argument that holds the value. It is sys.argv[4] when -s was also
passed.
Actually, the code already has a variable to handle that. This patch
simply uses it.
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <149373610338.5144.9635049015143453288.stgit@bahia.lan>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
		
	
			
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python
 | |
| ##
 | |
| # QEMU Object Model test tools
 | |
| #
 | |
| # Copyright IBM, Corp. 2011
 | |
| #
 | |
| # Authors:
 | |
| #  Anthony Liguori   <aliguori@us.ibm.com>
 | |
| #
 | |
| # This work is licensed under the terms of the GNU GPL, version 2 or later.  See
 | |
| # the COPYING file in the top-level directory.
 | |
| ##
 | |
| 
 | |
| import sys
 | |
| import os
 | |
| from qmp import QEMUMonitorProtocol
 | |
| 
 | |
| cmd, args = sys.argv[0], sys.argv[1:]
 | |
| socket_path = None
 | |
| path = None
 | |
| prop = None
 | |
| value = None
 | |
| 
 | |
| def usage():
 | |
|     return '''environment variables:
 | |
|     QMP_SOCKET=<path | addr:port>
 | |
| usage:
 | |
|     %s [-h] [-s <QMP socket path | addr:port>] <path>.<property> <value>
 | |
| ''' % cmd
 | |
| 
 | |
| def usage_error(error_msg = "unspecified error"):
 | |
|     sys.stderr.write('%s\nERROR: %s\n' % (usage(), error_msg))
 | |
|     exit(1)
 | |
| 
 | |
| if len(args) > 0:
 | |
|     if args[0] == "-h":
 | |
|         print usage()
 | |
|         exit(0);
 | |
|     elif args[0] == "-s":
 | |
|         try:
 | |
|             socket_path = args[1]
 | |
|         except:
 | |
|             usage_error("missing argument: QMP socket path or address");
 | |
|         args = args[2:]
 | |
| 
 | |
| if not socket_path:
 | |
|     if os.environ.has_key('QMP_SOCKET'):
 | |
|         socket_path = os.environ['QMP_SOCKET']
 | |
|     else:
 | |
|         usage_error("no QMP socket path or address given");
 | |
| 
 | |
| if len(args) > 1:
 | |
|     try:
 | |
|         path, prop = args[0].rsplit('.', 1)
 | |
|     except:
 | |
|         usage_error("invalid format for path/property/value")
 | |
|     value = args[1]
 | |
| else:
 | |
|     usage_error("not enough arguments")
 | |
| 
 | |
| srv = QEMUMonitorProtocol(socket_path)
 | |
| srv.connect()
 | |
| 
 | |
| print srv.command('qom-set', path=path, property=prop, value=value)
 |