RESTful interface using flask

master
Steve L. Nyemba 8 years ago
parent 96d6a0e7d9
commit 10c6a911d8

@ -0,0 +1,15 @@
{
"virtual-env":{
"class":"Sandbox",
"config":{
"3-launchpad":{"requirements":"/Users/steve/Documents/git/repair-file/required.txt","sandbox":"/Users/steve/Documents/git/sandbox"}
}
},
"processes":{
"class":"DetailProcess",
"config":{
"system":["postgresql","couchdb","httpd"]
}
}
}

@ -0,0 +1,54 @@
from flask import Flask,request
import sys
import os
import json
import re
import monitor
PARAMS = {'context':''}
if len(sys.argv) > 1:
N = len(sys.argv)
for i in range(1,N):
value = None
if sys.argv[i].startswith('--'):
key = sys.argv[i].replace('-','')
if i + 1 < N:
value = sys.argv[i + 1] = sys.argv[i+1].strip()
if key and value:
PARAMS[key] = value
i += 2
app = Flask(__name__)
f = open(PARAMS['path'])
CONFIG = json.loads(f.read())
HANDLERS= {}
for key in CONFIG :
className = CONFIG[key]['class']
ref = "".join(["monitor.",className,"()"])
ref = eval(ref)
HANDLERS[key] = {"class":ref,"config":CONFIG[key]["config"]}
f.close()
@app.route('/get/<id>')
def procs(id):
if id in HANDLERS:
handler = HANDLERS[id]["class"]
conf = HANDLERS[id]["config"]
r = {}
for key in conf:
handler.init(conf[key])
r[key] = handler.composite()
return json.dumps(r)
else:
return "[]"
pass
if __name__== '__main__':
app.run(host='0.0.0.0',debug=True,threaded=True)
Loading…
Cancel
Save