Refactored, deprecated old API and assigned / to load default page

community
Steve L. Nyemba 7 years ago
parent 75f948bf97
commit a8b32ec459

@ -48,6 +48,21 @@ class_write= CONFIG['store']['class']['write']
factory = DataSourceFactory() factory = DataSourceFactory()
# gReader = factory.instance(type=class_read,args=p) # gReader = factory.instance(type=class_read,args=p)
@app.route('/')
def dashboard():
context = PARAMS['context']
if 'title' in PARAMS :
title = PARAMS['title']
else:
title = 'Dashboard'
apps = []
try:
gReader = factory.instance(type=class_read,args=p)
apps = gReader.view('summary/app_names',key=p['uid'])
except Exception, e:
print (e)
return render_template('dashboard.html',context=context,title=title,app_names=apps)
@app.route('/1/get/nodes') @app.route('/1/get/nodes')
def get_apps(): def get_apps():
""" """
@ -159,50 +174,50 @@ def app_status() :
except Exception,e: except Exception,e:
print e print e
return r return r
@app.route('/get/<id>') #@app.route('/get/<id>')
def procs(id): #def procs(id):
try: #try:
gReader = factory.instance(type=class_read,args=p) #gReader = factory.instance(type=class_read,args=p)
data = gReader.read() #data = gReader.read()
ahandler = AnalyzeAnomaly() #ahandler = AnalyzeAnomaly()
learn = {} #learn = {}
if 'learn' in data : #if 'learn' in data :
for row in data['learn'] : #for row in data['learn'] :
label = row['label'] #label = row['label']
learn[label] = row #learn[label] = row
r = {} #r = {}
for label in data : #for label in data :
if label not in ['learn','folders'] : #if label not in ['learn','folders'] :
index = len(data[label]) - 1 #index = len(data[label]) - 1
row = data[label][index] #row = data[label][index]
r[label] = row #r[label] = row
# ##
# Let us determine if this is a normal operation or not ## Let us determine if this is a normal operation or not
# We will update the status of the information ... ## We will update the status of the information ...
# ##
for row in r[label] : #for row in r[label] :
index = r[label].index(row) #index = r[label].index(row)
if row['label'] in learn: #if row['label'] in learn:
id = row['label'] #id = row['label']
px = ahandler.predict([row],learn[id]) #px = ahandler.predict([row],learn[id])
if px : #if px :
# row['anomaly'] = px[1]==1 ## row['anomaly'] = px[1]==1
print "" #print ""
print label,' *** ',index #print label,' *** ',index
row = dict(row,**px) #row = dict(row,**px)
r[label][index] =row #r[label][index] =row
# ##
# @TODO: ## @TODO:
# Compile a report here that will be sent to the mailing list ## Compile a report here that will be sent to the mailing list
# ##
except Exception, e: #except Exception, e:
print e #print e
r = [] #r = []
return json.dumps(r) #return json.dumps(r)
""" """
This function/endpoint will assess n-virtual environments and return the results This function/endpoint will assess n-virtual environments and return the results
@ -232,36 +247,36 @@ def sandbox():
return json.dumps(r) return json.dumps(r)
@app.route('/trends') #@app.route('/trends')
def trends (): #def trends ():
id = request.args.get('id') #id = request.args.get('id')
app = request.args.get('app').strip() #app = request.args.get('app').strip()
p = CONFIG['store']['args'] #p = CONFIG['store']['args']
class_read = CONFIG['store']['class']['read'] #class_read = CONFIG['store']['class']['read']
gReader = factory.instance(type=class_read,args=p) #gReader = factory.instance(type=class_read,args=p)
r = gReader.read() #r = gReader.read()
if id in r: #if id in r:
r = r[id] #--matrix #r = r[id] #--matrix
series = [] #series = []
for row in r: #for row in r:
series += [item for item in row if str(item['label'])== app] #series += [item for item in row if str(item['label'])== app]
if len(series) > 12 : #if len(series) > 12 :
beg = len(series) - 8 #beg = len(series) - 8
series = series[beg:] #series = series[beg:]
return json.dumps(series) #return json.dumps(series)
else: #else:
return "[]" #return "[]"
@app.route('/download',methods=['POST']) #@app.route('/download',methods=['POST'])
def requirements(): #def requirements():
stream = request.form['missing'] #stream = request.form['missing']
print stream #print stream
stream = "\n".join(json.loads(stream)) #stream = "\n".join(json.loads(stream))
headers = {"content-disposition":"attachment; filename=requirements.txt"} #headers = {"content-disposition":"attachment; filename=requirements.txt"}
return Response(stream,mimetype='text/plain',headers=headers) #return Response(stream,mimetype='text/plain',headers=headers)
@app.route('/dashboard') @app.route('/dashboard')
def dashboard(): def dashboard():
@ -297,132 +312,132 @@ def user():
return render_template('user.html',context=context,title=title) return render_template('user.html',context=context,title=title)
""" #"""
This function is designed to trigger learning for anomaly detection #This function is designed to trigger learning for anomaly detection
@TODO: forward this to a socket i.e non-blocking socket #@TODO: forward this to a socket i.e non-blocking socket
""" #"""
@app.route('/anomalies/get') #@app.route('/anomalies/get')
def learn(): #def learn():
global CONFIG #global CONFIG
p = CONFIG['store']['args'] #p = CONFIG['store']['args']
class_read = CONFIG['store']['class']['read'] #class_read = CONFIG['store']['class']['read']
gReader = factory.instance(type=class_read,args=p) #gReader = factory.instance(type=class_read,args=p)
d = gReader.read() #d = gReader.read()
if 'learn' in d : #if 'learn' in d :
info = d['learn'] #info = d['learn']
del d['learn'] #del d['learn']
else : #else :
info = [] #info = []
r = [] #r = []
if 'id' in request.args: #if 'id' in request.args:
id = request.args['id'] #id = request.args['id']
d = d[id] #d = d[id]
params = {} #params = {}
for item in info: #for item in info:
label = item['label'] #label = item['label']
params[label] = item #params[label] = item
#apps = list(set(ML.Extract(['label'],d))) ##apps = list(set(ML.Extract(['label'],d)))
r = [] #r = []
if params : #if params :
# ##
# If we have parameters available ## If we have parameters available
p = AnomalyDetection() #p = AnomalyDetection()
apps = params.keys() #apps = params.keys()
for name in apps : #for name in apps :
if name not in params: #if name not in params:
continue #continue
_info = params[name] #_info = params[name]
try: #try:
xo = ML.Filter('label',name,d) #xo = ML.Filter('label',name,d)
except Exception,e: #except Exception,e:
xo = [] #xo = []
#print name,e ##print name,e
if len(xo) == 0: #if len(xo) == 0:
continue #continue
xo = [xo[ len(xo) -1]] #xo = [xo[ len(xo) -1]]
value = p.predict(xo,_info)[0] #value = p.predict(xo,_info)[0]
if len(value): #if len(value):
report = dict(_info,**{'predicton':value}) #report = dict(_info,**{'predicton':value})
r.append(report) #r.append(report)
#print app,value ##print app,value
#if value is not None: ##if value is not None:
# r.append(value) ## r.append(value)
return json.dumps(r) #return json.dumps(r)
""" """
This function returns anomalies for a given context or group of processes This function returns anomalies for a given context or group of processes
The information returned is around precision/recall and f-score and parameters The information returned is around precision/recall and f-score and parameters
""" """
@app.route('/anomalies/status') #@app.route('/anomalies/status')
def anomalies_status(): #def anomalies_status():
global CONFIG #global CONFIG
p = CONFIG['store']['args'] #p = CONFIG['store']['args']
class_read = CONFIG['store']['class']['read'] #class_read = CONFIG['store']['class']['read']
gReader = factory.instance(type=class_read,args=p) #gReader = factory.instance(type=class_read,args=p)
d = gReader.read() #d = gReader.read()
if 'learn' in d : #if 'learn' in d :
info = d['learn'] #info = d['learn']
del d['learn'] #del d['learn']
else : #else :
info = [] #info = []
print info #print info
r = [] #r = []
if 'id' in request.args: #if 'id' in request.args:
id = request.args['id'] #id = request.args['id']
r = info #r = info
return json.dumps(r) #return json.dumps(r)
@app.route('/folders') #@app.route('/folders')
def get_folders(): #def get_folders():
global CONFIG #global CONFIG
p = CONFIG['store']['args'] #p = CONFIG['store']['args']
class_read = CONFIG['store']['class']['read'] #class_read = CONFIG['store']['class']['read']
gReader = factory.instance(type=class_read,args=p) #gReader = factory.instance(type=class_read,args=p)
d = gReader.read() #d = gReader.read()
if 'folders' in d: #if 'folders' in d:
d = d['folders'] #d = d['folders']
hosts = set([row[0]['id'] for row in d]) #hosts = set([row[0]['id'] for row in d])
m = {} #m = {}
for id in hosts: #for id in hosts:
for row in d: #for row in d:
if id == row[0]['id'] : #if id == row[0]['id'] :
m[id] = row #m[id] = row
d = m.values() #d = m.values()
for row in d: #for row in d:
print row[0]['id'] #print row[0]['id']
# index = len(d) - 1 ## index = len(d) - 1
# d = d[index] ## d = d[index]
# m = {} ## m = {}
# for row in d : ## for row in d :
# key = row.keys()[0] ## key = row.keys()[0]
# row = row[key] ## row = row[key]
# if key not in m: ## if key not in m:
# r.append(row) ## r.append(row)
# m[key] = len(r) -1 ## m[key] = len(r) -1
# else: ## else:
# index = m[key] ## index = m[key]
# r[index] = row ## r[index] = row
# d = r ## d = r
else: #else:
d = [] #d = []
return json.dumps(d) #return json.dumps(d)
if __name__== '__main__': if __name__== '__main__':

Loading…
Cancel
Save