Add manifest read functions for sqlite
Change-Id: I73855f446316ddaf31a492c90a6d3b444d77683c
This commit is contained in:
parent
0f62c546d1
commit
94bf4209b2
@ -34,6 +34,12 @@ class ManifestDriver(object):
|
||||
self.conn = None
|
||||
self.manifest_file = manifest_file
|
||||
|
||||
def get_metadata(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
def get_segments(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
def put_metadata(self, metadata):
|
||||
raise NotImplementedError()
|
||||
|
||||
|
@ -18,6 +18,7 @@ from contextlib import contextmanager
|
||||
import sqlite3
|
||||
|
||||
from ekko.manifest import driver
|
||||
from ekko.manifest import structure
|
||||
|
||||
|
||||
class SQLiteDriver(driver.ManifestDriver):
|
||||
@ -58,6 +59,30 @@ class SQLiteDriver(driver.ManifestDriver):
|
||||
conn.rollback()
|
||||
self.conn = conn
|
||||
|
||||
def get_metadata(self):
|
||||
with self.get_conn() as conn:
|
||||
with closing(conn.cursor()) as cur:
|
||||
cur.execute("SELECT * FROM metadata")
|
||||
metadata = dict(cur.fetchall())
|
||||
cur.execute("SELECT * FROM backupsets")
|
||||
backupsets = [b[1] for b in cur.fetchall()]
|
||||
|
||||
return structure.Metadata(
|
||||
incremental=metadata['incremental'],
|
||||
sectors=metadata['sectors'],
|
||||
segment_size=metadata['segment_size'],
|
||||
timestamp=metadata['timestamp'],
|
||||
backupset_id=backupsets[-1],
|
||||
backupsets=backupsets
|
||||
)
|
||||
|
||||
def get_segments(self):
|
||||
with self.get_conn() as conn:
|
||||
with closing(conn.cursor()) as cur:
|
||||
cur.execute("SELECT * FROM segments")
|
||||
for result in cur:
|
||||
yield result
|
||||
|
||||
def put_segments(self, segments, metadata):
|
||||
with self.get_conn() as conn:
|
||||
with closing(conn.cursor()) as cur:
|
||||
|
Loading…
x
Reference in New Issue
Block a user