| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/python
- # Copyright 2013 Christian Berendt
- #
- # This program is free software; you can redistribute it and/or modify it under
- # the terms of the GNU General Public License as published by the Free Software
- # Foundation; either version 3 of the License, or (at your option) any later
- # version. See COPYING for more details.
- import argparse
- import json
- import logging
- import pprint
- import socket
- logging.basicConfig(
- format='%(asctime)s %(levelname)s %(message)s',
- level=logging.DEBUG
- )
- parser = argparse.ArgumentParser()
- parser.add_argument("command", default="summary", nargs='?')
- parser.add_argument("parameter", default="", nargs='?')
- parser.add_argument("--hostname", default="localhost")
- parser.add_argument("--port", type=int, default=4028)
- args = parser.parse_args()
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- try:
- s.connect((args.hostname, args.port))
- except socket.error, e:
- logging.error(e)
- try:
- s.send("{\"command\" : \"%s\", \"parameter\" : \"%s\"}"
- % (args.command, args.parameter)
- )
- except socket.error, e:
- logging.error(e)
- data = ''
- while True:
- try:
- newdata = s.recv(1024)
- if newdata:
- data += newdata
- else:
- break
- except socket.error, e:
- break
- try:
- s.close()
- except socket.error,e:
- logging.error(e)
- if data:
- data = json.loads(data.replace('\x00', ''))
- pp = pprint.PrettyPrinter()
- pp.pprint(data)
|