self.crs.execute("SELECT `id`, `hostname`, `service`, `identity`, `read`, `write`, `debug`, `test` FROM `clients2` WHERE `valid` = 1 AND `hostname` IN (%s)"%format_strings,tuple(name))
self.crs.execute("SELECT cl.`id`, cl.`hostname`, s.`service`, s.`service_id`, s.`identity`, cl.`read`, s.`write`, s.`test`, cl.`debug` FROM `clients3` cl LEFT JOIN `services` s ON cl.`id` = s.`client_id` WHERE cl.`valid` = 1 AND s.`valid` = 1 AND `hostname` IN (%s)"%format_strings,tuple(name))
row=self.crs.fetchall()
row=self.crs.fetchall()
returnrowifrowelseNone
returnrowifrowelseNone
...
@@ -319,17 +319,22 @@ class MySQL(Object):
...
@@ -319,17 +319,22 @@ class MySQL(Object):
sqlwhere=[]
sqlwhere=[]
sqltemp={}
sqltemp={}
ifcatisnotNoneandnocatisnotNone:
ifcatisnotNoneandnocatisnotNone:
raiseError("Unrealizable conditions. Choose cat or nocat option.",500,method='getEvents',
raiseError("Unrealizable conditions. Choose cat or nocat option.",500,method='getEvents',
sqltemp['cat']=generateDynamicQuery(self,"Category","category_id IN (%s)",json.loads(cat))
parent_cats=[]
sqltemp['cat']=generateDynamicQuery(self,"Category","category_id IN (%s)",json.loads(cat),parent_cats)
forpcatsinparent_cats:
sqltemp['cat']+=" %s category_id DIV %s = 1 "%(("OR"ifsqltemp['cat']else""),pcats)
ifnocatisnotNone:
ifnocatisnotNone:
sqltemp['cat']=generateDynamicQuery(self,"Category","category_id NOT IN (%s)",json.loads(nocat))
parent_cats=[]
sqltemp['cat']=generateDynamicQuery(self,"Category","category_id NOT IN (%s)",json.loads(nocat),parent_cats)
forpcatsinparent_cats:
sqltemp['cat']+=" %s category_id DIV %s = 1 "%(("OR"ifsqltemp['cat']else""),pcats)
sqlwhere.append("e.id IN (SELECT event_id FROM event_category_mapping4 WHERE %s)"%sqltemp['cat'])
sqlwhere.append("e.id IN (SELECT event_id FROM event_category_mapping4 WHERE %s)"%sqltemp['cat'])
iftagisnotNoneandnotagisnotNone:
iftagisnotNoneandnotagisnotNone:
...
@@ -369,12 +374,20 @@ class MySQL(Object):
...
@@ -369,12 +374,20 @@ class MySQL(Object):
#sqlwhere = sqlwhere[:-4]
#sqlwhere = sqlwhere[:-4]
and_op=""ifnotsqlwhere_stringelse"AND"
and_op=""ifnotsqlwhere_stringelse"AND"
# logging.debug("SELECT e.id, e.data FROM clients2 cl RIGHT JOIN events4 e ON cl.id = e.client_id WHERE e.id > %s AND %s %s e.valid = 1 LIMIT %s" % (str(id), sqlwhere_string, and_op, str(count)))
logging.debug("SELECT e.id, e.data FROM clients2 cl RIGHT JOIN events4 e ON cl.id = e.client_id WHERE e.id > %s AND %s %s e.valid = 1 LIMIT %s"%(str(id),sqlwhere_string,and_op,str(count)))
self.crs.execute("SELECT e.id, e.data FROM clients2 cl RIGHT JOIN events4 e ON cl.id = e.client_id WHERE e.id > %s AND %s %s e.valid = 1 LIMIT %s"%(str(id),sqlwhere_string,and_op,str(count)))
self.crs.execute("SELECT e.id, e.data FROM clients2 cl RIGHT JOIN events4 e ON cl.id = e.client_id WHERE e.id > %s AND %s %s e.valid = 1 LIMIT %s"%(str(id),sqlwhere_string,and_op,str(count)))
row=self.crs.fetchall()
row=self.crs.fetchall()
ifrow:
maxid=max(r['id']forrinrow)
else:
maxid=self.getLastEventId()
# logging.debug("MAX ID = %s", str(maxid))
return{
return{
"lastid":row[-1]['id']ifrowelsestr(id),
"lastid":maxid,
# "lastid": row[-1]['id'] if row else str(id),
"events":[row[i]['data']foriinrange(len(row))]
"events":[row[i]['data']foriinrange(len(row))]
}
}
...
@@ -409,7 +422,31 @@ class MySQL(Object):
...
@@ -409,7 +422,31 @@ class MySQL(Object):
returnerrs
returnerrs
defmap_id(self,section,key):
definsertLastReceivedId(self,client,id):
logging.debug("INSERT INTO last_events(client_id, event_id, timestamp) VALUES(%s, %s, NOW())"%(str(client[0]['id']),id))
self.crs.execute("INSERT INTO last_events(client_id, event_id, timestamp) VALUES(%s, %s, NOW())"%(str(client[0]['id']),id))
defgetLastEventId(self):
self.crs.execute("SELECT MAX(id) as id FROM events4")