Skip to content
Snippets Groups Projects
Commit caa59013 authored by Sergio Gonzalez Diaz's avatar Sergio Gonzalez Diaz
Browse files

Add subscription methods to ManagementDBTools.py

parent 548599ea
No related branches found
No related tags found
1 merge request!5Feat/monitoring subscriptions
......@@ -17,8 +17,12 @@ import sqlite3 as sl
class ManagementDB():
def __init__(self, database):
self.client = sl.connect(database, check_same_thread=False)
self.create_monitoring_table()
self.create_subscription_table()
def create_monitoring_table(self):
self.client.execute("""
CREATE TABLE IF NOT EXISTS KPI(
CREATE TABLE IF NOT EXISTS kpi(
kpi_id INTEGER PRIMARY KEY AUTOINCREMENT,
kpi_description TEXT,
kpi_sample_type INTEGER,
......@@ -27,46 +31,93 @@ class ManagementDB():
service_id INTEGER
);
""")
def create_subscription_table(self):
self.client.execute("""
CREATE TABLE IF NOT EXISTS subscription(
subs_id INTEGER PRIMARY KEY AUTOINCREMENT,
kpi_id INTEGER,
subscriber TEXT,
sampling_duration_s REAL,
sampling_interval_s REAL,
start_timestamp REAL,
end_timestamp REAL
);
""")
def insert_KPI(self,kpi_description,kpi_sample_type,device_id,endpoint_id,service_id ):
def insert_KPI(self,kpi_description,kpi_sample_type,device_id,endpoint_id,service_id):
c = self.client.cursor()
c.execute("SELECT kpi_id FROM KPI WHERE device_id is ? AND kpi_sample_type is ? AND endpoint_id is ?",(device_id,kpi_sample_type,endpoint_id))
c.execute("SELECT kpi_id FROM kpi WHERE device_id is ? AND kpi_sample_type is ? AND endpoint_id is ?",(device_id,kpi_sample_type,endpoint_id))
data=c.fetchone()
if data is None:
c.execute("INSERT INTO KPI (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id) VALUES (?,?,?,?,?)", (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id))
c.execute("INSERT INTO kpi (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id) VALUES (?,?,?,?,?)", (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id))
self.client.commit()
return c.lastrowid
else:
return data[0]
def insert_subscription(self,kpi_id,subscriber,sampling_duration_s,sampling_interval_s,start_timestamp, end_timestamp):
c = self.client.cursor()
c.execute("SELECT subs_id FROM subscription WHERE kpi_id is ? AND subscriber is ? AND sampling_duration_s is ? AND sampling_interval_s is ? AND start_timestamp is ? AND end_timestamp is ?",(kpi_id,subscriber,sampling_duration_s,sampling_interval_s,start_timestamp, end_timestamp))
data=c.fetchone()
if data is None:
c.execute("INSERT INTO subscription (kpi_id,subscriber,sampling_duration_s,sampling_interval_s,start_timestamp, end_timestamp) VALUES (?,?,?,?,?,?)", (kpi_id,subscriber,sampling_duration_s,sampling_interval_s,start_timestamp, end_timestamp))
self.client.commit()
return c.lastrowid
else:
print("already exists")
return data[0]
def delete_KPI(self,device_id,kpi_sample_type):
c = self.client.cursor()
c.execute("SELECT kpi_id FROM KPI WHERE device_id is ? AND kpi_sample_type is ?",(device_id,kpi_sample_type))
c.execute("SELECT kpi_id FROM kpi WHERE device_id is ? AND kpi_sample_type is ?",(device_id,kpi_sample_type))
data=c.fetchone()
if data is None:
return False
else:
c.execute("DELETE FROM KPI WHERE device_id is ? AND kpi_sample_type is ?",(device_id,kpi_sample_type))
c.execute("DELETE FROM kpi WHERE device_id is ? AND kpi_sample_type is ?",(device_id,kpi_sample_type))
self.client.commit()
return True
def delete_subscription(self,subs_id):
c = self.client.cursor()
c.execute("SELECT * FROM subscription WHERE subs_id is ?",(subs_id,))
data=c.fetchone()
if data is None:
return False
else:
c.execute("DELETE FROM subscription WHERE subs_id is ?",(subs_id,))
self.client.commit()
return True
def delete_kpid_id(self,kpi_id):
c = self.client.cursor()
c.execute("SELECT * FROM KPI WHERE kpi_id is ?",(kpi_id,))
c.execute("SELECT * FROM kpi WHERE kpi_id is ?",(kpi_id,))
data=c.fetchone()
if data is None:
return False
else:
c.execute("DELETE FROM KPI WHERE kpi_id is ?",(kpi_id,))
c.execute("DELETE FROM kpi WHERE kpi_id is ?",(kpi_id,))
self.client.commit()
return True
def get_KPI(self,kpi_id):
data = self.client.execute("SELECT * FROM KPI WHERE kpi_id is ?",(kpi_id,))
data = self.client.execute("SELECT * FROM kpi WHERE kpi_id is ?",(kpi_id,))
return data.fetchone()
def get_subscription(self,subs_id):
data = self.client.execute("SELECT * FROM subscription WHERE subs_id is ?",(subs_id,))
return data.fetchone()
def get_KPIS(self):
data = self.client.execute("SELECT * FROM KPI")
data = self.client.execute("SELECT * FROM kpi")
#print("\n")
#for row in data:
# print(row)
return data.fetchall()
def get_subscriptions(self):
data = self.client.execute("SELECT * FROM subscription")
#print("\n")
#for row in data:
# print(row)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment