Procházet zdrojové kódy

RESTful interface using flask

Steve L. Nyemba před 8 roky
rodič
revize
10c6a911d8
2 změnil soubory, kde provedl 69 přidání a 0 odebrání
  1. 15 0
      config.json
  2. 54 0
      src/api/index.py

+ 15 - 0
config.json

@@ -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"]
+			}
+	}
+	
+}

+ 54 - 0
src/api/index.py

@@ -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)