Viewing file:
store.py (2.75 KB) -rw-r--r--Select action/file-type:

(
+) |

(
+) |

(
+) |
Code (
+) |
Session (
+) |

(
+) |
SDB (
+) |

(
+) |

(
+) |

(
+) |

(
+) |

(
+) |
try:
import sqlite3
except ImportError:
from pysqlite2 import dbapi2 as sqlite3
from landscape.package.store import with_cursor
class ManagerStore(object):
def __init__(self, filename):
self._db = sqlite3.connect(filename)
ensure_schema(self._db)
@with_cursor
def get_graph(self, cursor, graph_id):
cursor.execute(
"SELECT graph_id, filename, user FROM graph WHERE graph_id=?",
(graph_id,))
return cursor.fetchone()
@with_cursor
def get_graphs(self, cursor):
cursor.execute("SELECT graph_id, filename, user FROM graph")
return cursor.fetchall()
@with_cursor
def add_graph(self, cursor, graph_id, filename, user):
cursor.execute(
"SELECT graph_id FROM graph WHERE graph_id=?",
(graph_id,))
if cursor.fetchone():
cursor.execute(
"UPDATE graph SET filename=?, user=? WHERE graph_id=?",
(filename, user, graph_id))
else:
cursor.execute(
"INSERT INTO graph (graph_id, filename, user) VALUES (?, ?, ?)",
(graph_id, filename, user))
@with_cursor
def remove_graph(self, cursor, graph_id):
cursor.execute("DELETE FROM graph WHERE graph_id=?", (graph_id,))
@with_cursor
def set_graph_accumulate(self, cursor, graph_id, timestamp, value):
cursor.execute(
"SELECT graph_id, graph_timestamp, graph_value FROM "
"graph_accumulate WHERE graph_id=?", (graph_id,))
graph_accumulate = cursor.fetchone()
if graph_accumulate:
cursor.execute(
"UPDATE graph_accumulate SET graph_timestamp = ?, "
"graph_value = ? WHERE graph_id=?",
(timestamp, value, graph_id))
else:
cursor.execute(
"INSERT INTO graph_accumulate (graph_id, graph_timestamp, "
"graph_value) VALUES (?, ?, ?)", (graph_id, timestamp, value))
@with_cursor
def get_graph_accumulate(self, cursor, graph_id):
cursor.execute(
"SELECT graph_id, graph_timestamp, graph_value FROM "
"graph_accumulate WHERE graph_id=?", (graph_id,))
return cursor.fetchone()
def ensure_schema(db):
cursor = db.cursor()
try:
cursor.execute("CREATE TABLE graph"
" (graph_id INTEGER PRIMARY KEY,"
" filename TEXT NOT NULL, user TEXT)")
cursor.execute("CREATE TABLE graph_accumulate"
" (graph_id INTEGER PRIMARY KEY,"
" graph_timestamp INTEGER, graph_value FLOAT)")
except sqlite3.OperationalError:
cursor.close()
db.rollback()
else:
cursor.close()
db.commit()