From: David Stainton Date: Thu, 8 Oct 2015 14:33:27 +0000 (+0200) Subject: Remove magic-folder db code from backupdb.py X-Git-Url: https://git.rkrishnan.org/pf/content/%22news.html/FOOURL?a=commitdiff_plain;h=88b8f6e10874b38e5231b2fc3c88e29324d76cd3;p=tahoe-lafs%2Ftahoe-lafs.git Remove magic-folder db code from backupdb.py --- diff --git a/src/allmydata/backupdb.py b/src/allmydata/backupdb.py index bf1a3576..316ebf51 100644 --- a/src/allmydata/backupdb.py +++ b/src/allmydata/backupdb.py @@ -68,27 +68,6 @@ UPDATERS = { } -# magic-folder db schema version 3 -MAGIC_FOLDER_SCHEMA_v3 = """ -CREATE TABLE version -( - version INTEGER -- contains one row, set to %s -); - -CREATE TABLE local_files -( - path VARCHAR(1024) PRIMARY KEY, -- index, this is an absolute UTF-8-encoded local filename - -- note that size is before mtime and ctime here, but after in function parameters - size INTEGER, -- os.stat(fn)[stat.ST_SIZE] (NULL if the file has been deleted) - mtime NUMBER, -- os.stat(fn)[stat.ST_MTIME] - ctime NUMBER, -- os.stat(fn)[stat.ST_CTIME] - version INTEGER, - last_downloaded_uri VARCHAR(256) UNIQUE, -- URI:CHK:... - last_downloaded_timestamp NUMBER -); -""" % (3,) - - def get_backupdb(dbfile, stderr=sys.stderr, create_version=(SCHEMA_v2, 2), just_create=False): # Open or create the given backupdb file. The parent directory must @@ -98,8 +77,6 @@ def get_backupdb(dbfile, stderr=sys.stderr, just_create=just_create, dbname="backupdb") if create_version[1] in (1, 2): return BackupDB(sqlite3, db) - elif create_version[1] == 3: - return MagicFolderDB(sqlite3, db) else: print >>stderr, "invalid db schema version specified" return None @@ -384,103 +361,3 @@ class BackupDB: " WHERE dircap=?", (now, dircap)) self.connection.commit() - - -class MagicFolderDB(): - VERSION = 3 - - def __init__(self, sqlite_module, connection): - self.sqlite_module = sqlite_module - self.connection = connection - self.cursor = connection.cursor() - - def check_file_db_exists(self, path): - """I will tell you if a given file has an entry in my database or not - by returning True or False. - """ - c = self.cursor - c.execute("SELECT size,mtime,ctime" - " FROM local_files" - " WHERE path=?", - (path,)) - row = self.cursor.fetchone() - if not row: - return False - else: - return True - - def get_all_relpaths(self): - """ - Retrieve a set of all relpaths of files that have had an entry in magic folder db - (i.e. that have been downloaded at least once). - """ - self.cursor.execute("SELECT path FROM local_files") - rows = self.cursor.fetchall() - return set([r[0] for r in rows]) - - def get_last_downloaded_uri(self, relpath_u): - """ - Return the last downloaded uri recorded in the magic folder db. - If none are found then return None. - """ - c = self.cursor - c.execute("SELECT last_downloaded_uri" - " FROM local_files" - " WHERE path=?", - (relpath_u,)) - row = self.cursor.fetchone() - if not row: - return None - else: - return row[0] - - def get_local_file_version(self, relpath_u): - """ - Return the version of a local file tracked by our magic folder db. - If no db entry is found then return None. - """ - c = self.cursor - c.execute("SELECT version" - " FROM local_files" - " WHERE path=?", - (relpath_u,)) - row = self.cursor.fetchone() - if not row: - return None - else: - return row[0] - - def did_upload_version(self, filecap, relpath_u, version, pathinfo): - print "did_upload_version(%r, %r, %r, %r)" % (filecap, relpath_u, version, pathinfo) - now = time.time() - try: - print "insert" - self.cursor.execute("INSERT INTO local_files VALUES (?,?,?,?,?,?)", - (relpath_u, pathinfo.size, pathinfo.mtime, pathinfo.ctime, version, filecap, pathinfo.mtime)) - except (self.sqlite_module.IntegrityError, self.sqlite_module.OperationalError): - print "err... update" - try: - self.cursor.execute("UPDATE local_files" - " SET size=?, mtime=?, ctime=?, version=?, last_downloaded_uri=?, last_downloaded_timestamp=?" - " WHERE path=?", - (pathinfo.size, pathinfo.mtime, pathinfo.ctime, version, filecap, pathinfo.mtime, relpath_u)) - except (self.sqlite_module.IntegrityError, self.sqlite_module.OperationalError): - print "WTF BBQ OMG" - self.connection.commit() - print "commited" - - def is_new_file(self, pathinfo, relpath_u): - """ - Returns true if the file's current pathinfo (size, mtime, and ctime) has - changed from the pathinfo previously stored in the db. - """ - #print "is_new_file(%r, %r)" % (pathinfo, relpath_u) - c = self.cursor - c.execute("SELECT size, mtime, ctime" - " FROM local_files" - " WHERE path=?", - (relpath_u,)) - row = self.cursor.fetchone() - if not row: - return True - return (pathinfo.size, pathinfo.mtime, pathinfo.ctime) != row