Guest User

Untitled

a guest
Jan 22nd, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. #coding=utf-8
  2.  
  3. import json, os, sys, uuid, datetime, subprocess, traceback
  4.  
  5.  
  6. def runCmd(cmd):
  7. return [str(x) for x in subprocess.check_output(cmd, shell=True).splitlines()]
  8.  
  9. def getServerId():
  10. try:
  11. return open('/tmp/serverId').read()
  12. except IOError:
  13. serverId = str(uuid.uuid4())+" "+str(datetime.datetime.now())
  14. ofile = open('/tmp/serverId', 'w')
  15. ofile.write(serverId)
  16. ofile.close()
  17. return serverId
  18.  
  19. def handler(event, context):
  20. try:
  21. return handler2(event, context)
  22. except Exception:
  23. exstr = traceback.format_exc()
  24. result = {
  25. 'statusCode': 500,
  26. 'headers': {'Content-Type': 'application/json; charset=utf-8'},
  27. 'body': json.dumps({
  28. "exception": exstr.splitlines(),
  29. })}
  30. return result
  31.  
  32.  
  33. def handler2(event, context):
  34. reqid = event['detail']["headers"]["x-jdcloud-request-id"]
  35. print(reqid)
  36. serverId = None
  37. try:
  38. serverId = getServerId()
  39. except Exception as e:
  40. serverId = str(e)
  41.  
  42.  
  43. cmds = event['detail']["queryParameters"].get("cmds", None)
  44. if cmds is None:
  45. cmds = []
  46. elif type(cmds) is str:
  47. cmds = [cmds]
  48.  
  49. cmdResult = []
  50. for cmd in cmds:
  51. cmdResult.append([cmd, runCmd(cmd)])
  52.  
  53. result = {
  54. 'statusCode': 200,
  55. 'headers': {'Content-Type': 'application/json; charset=utf-8'},
  56. 'body': json.dumps({
  57. 'serverId': serverId,
  58. "sys.version": sys.version,
  59. "event":event,
  60. "uid":os.getuid(),
  61. "context":str(context),
  62. "cmdResult": cmdResult,
  63. #"environ":dict(os.environ.items()),
  64. }, sort_keys=True),
  65. }
  66.  
  67. return result
  68.  
  69. if __name__ == '__main__':
  70. import jdcloud_apim_mock as mock
  71. import sys
  72. if len(sys.argv) == 2:
  73. mock.run(handler, sys.argv[1])
  74. else:
  75. mock.run(handler, "127.0.0.1:8080")
Add Comment
Please, Sign In to add comment