|
|
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: ! 23: def usage(): ! 24: return '''environment variables: ! 25: QMP_SOCKET=<path | addr:port> ! 26: usage: ! 27: %s [-h] [-s <QMP socket path | addr:port>] <path>.<property> ! 28: ''' % cmd ! 29: ! 30: def usage_error(error_msg = "unspecified error"): ! 31: sys.stderr.write('%s\nERROR: %s\n' % (usage(), error_msg)) ! 32: exit(1) ! 33: ! 34: if len(args) > 0: ! 35: if args[0] == "-h": ! 36: print usage() ! 37: exit(0); ! 38: elif args[0] == "-s": ! 39: try: ! 40: socket_path = args[1] ! 41: except: ! 42: usage_error("missing argument: QMP socket path or address"); ! 43: args = args[2:] ! 44: ! 45: if not socket_path: ! 46: if os.environ.has_key('QMP_SOCKET'): ! 47: socket_path = os.environ['QMP_SOCKET'] ! 48: else: ! 49: usage_error("no QMP socket path or address given"); ! 50: ! 51: if len(args) > 0: ! 52: try: ! 53: path, prop = args[0].rsplit('.', 1) ! 54: except: ! 55: usage_error("invalid format for path/property/value") ! 56: else: ! 57: usage_error("not enough arguments") ! 58: ! 59: srv = QEMUMonitorProtocol(socket_path) ! 60: srv.connect() ! 61: ! 62: rsp = srv.command('qom-get', path=path, property=prop) ! 63: if type(rsp) == dict: ! 64: for i in rsp.keys(): ! 65: print '%s: %s' % (i, rsp[i]) ! 66: else: ! 67: print rsp
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.