|
|
1.1 ! root 1: #!/usr/bin/python ! 2: ## ! 3: # QEMU Object Model test tools ! 4: # ! 5: # Copyright IBM, Corp. 2011 ! 6: # ! 7: # Authors: ! 8: # Anthony Liguori <[email protected]> ! 9: # ! 10: # This work is licensed under the terms of the GNU GPL, version 2 or later. See ! 11: # the COPYING file in the top-level directory. ! 12: ## ! 13: ! 14: import sys ! 15: import os ! 16: from qmp import QEMUMonitorProtocol ! 17: ! 18: cmd, args = sys.argv[0], sys.argv[1:] ! 19: socket_path = None ! 20: path = None ! 21: prop = None ! 22: value = None ! 23: ! 24: def usage(): ! 25: return '''environment variables: ! 26: QMP_SOCKET=<path | addr:port> ! 27: usage: ! 28: %s [-h] [-s <QMP socket path | addr:port>] <path>.<property> <value> ! 29: ''' % cmd ! 30: ! 31: def usage_error(error_msg = "unspecified error"): ! 32: sys.stderr.write('%s\nERROR: %s\n' % (usage(), error_msg)) ! 33: exit(1) ! 34: ! 35: if len(args) > 0: ! 36: if args[0] == "-h": ! 37: print usage() ! 38: exit(0); ! 39: elif args[0] == "-s": ! 40: try: ! 41: socket_path = args[1] ! 42: except: ! 43: usage_error("missing argument: QMP socket path or address"); ! 44: args = args[2:] ! 45: ! 46: if not socket_path: ! 47: if os.environ.has_key('QMP_SOCKET'): ! 48: socket_path = os.environ['QMP_SOCKET'] ! 49: else: ! 50: usage_error("no QMP socket path or address given"); ! 51: ! 52: if len(args) > 1: ! 53: try: ! 54: path, prop = args[0].rsplit('.', 1) ! 55: except: ! 56: usage_error("invalid format for path/property/value") ! 57: value = args[1] ! 58: else: ! 59: usage_error("not enough arguments") ! 60: ! 61: srv = QEMUMonitorProtocol(socket_path) ! 62: srv.connect() ! 63: ! 64: print srv.command('qom-set', path=path, property=prop, value=sys.argv[2])
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.