Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #coding=utf-8
- import json, os, sys, uuid, datetime, subprocess, traceback
- def runCmd(cmd):
- return [str(x) for x in subprocess.check_output(cmd, shell=True).splitlines()]
- def getServerId():
- try:
- return open('/tmp/serverId').read()
- except IOError:
- serverId = str(uuid.uuid4())+" "+str(datetime.datetime.now())
- ofile = open('/tmp/serverId', 'w')
- ofile.write(serverId)
- ofile.close()
- return serverId
- def handler(event, context):
- try:
- return handler2(event, context)
- except Exception:
- exstr = traceback.format_exc()
- result = {
- 'statusCode': 500,
- 'headers': {'Content-Type': 'application/json; charset=utf-8'},
- 'body': json.dumps({
- "exception": exstr.splitlines(),
- })}
- return result
- def handler2(event, context):
- reqid = event['detail']["headers"]["x-jdcloud-request-id"]
- print(reqid)
- serverId = None
- try:
- serverId = getServerId()
- except Exception as e:
- serverId = str(e)
- cmds = event['detail']["queryParameters"].get("cmds", None)
- if cmds is None:
- cmds = []
- elif type(cmds) is str:
- cmds = [cmds]
- cmdResult = []
- for cmd in cmds:
- cmdResult.append([cmd, runCmd(cmd)])
- result = {
- 'statusCode': 200,
- 'headers': {'Content-Type': 'application/json; charset=utf-8'},
- 'body': json.dumps({
- 'serverId': serverId,
- "sys.version": sys.version,
- "event":event,
- "uid":os.getuid(),
- "context":str(context),
- "cmdResult": cmdResult,
- #"environ":dict(os.environ.items()),
- }, sort_keys=True),
- }
- return result
- if __name__ == '__main__':
- import jdcloud_apim_mock as mock
- import sys
- if len(sys.argv) == 2:
- mock.run(handler, sys.argv[1])
- else:
- mock.run(handler, "127.0.0.1:8080")
Add Comment
Please, Sign In to add comment