api-example.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/python
  2. # author: Christian Berendt <berendt@b1-systems.de>
  3. import argparse
  4. import json
  5. import logging
  6. import pprint
  7. import socket
  8. logging.basicConfig(
  9. format='%(asctime)s %(levelname)s %(message)s',
  10. level=logging.DEBUG
  11. )
  12. parser = argparse.ArgumentParser()
  13. parser.add_argument("command", default="summary", nargs='?')
  14. parser.add_argument("parameter", default="", nargs='?')
  15. parser.add_argument("--hostname", default="localhost")
  16. parser.add_argument("--port", type=int, default=4028)
  17. args = parser.parse_args()
  18. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  19. try:
  20. s.connect((args.hostname, args.port))
  21. except socket.error, e:
  22. logging.error(e)
  23. try:
  24. s.send("{\"command\" : \"%s\", \"parameter\" : \"%s\"}"
  25. % (args.command, args.parameter)
  26. )
  27. except socket.error, e:
  28. logging.error(e)
  29. data = None
  30. try:
  31. data = s.recv(1024)
  32. except socket.error, e:
  33. logging.error(e)
  34. try:
  35. s.close()
  36. except socket.error,e:
  37. logging.error(e)
  38. if data:
  39. data = json.loads(data.replace('\x00', ''))
  40. pp = pprint.PrettyPrinter()
  41. pp.pprint(data)