def main(self): librariangc.log = self.logger if self.options.loglevel <= logging.DEBUG: librariangc.debug = True # XXX wgrant 2011-09-18 bug=853066: Using Storm's raw connection # here is wrong. We should either create our own or use # Store.execute or cursor() and the transaction module. conn = IStore(LibraryFileAlias)._connection._raw_connection # Refuse to run if we have significant clock skew between the # librarian and the database. librariangc.confirm_no_clock_skew(conn) # Note that each of these next steps will issue commit commands # as appropriate to make this script transaction friendly if not self.options.skip_expiry: librariangc.expire_aliases(conn) if not self.options.skip_content: # First sweep. librariangc.delete_unreferenced_content(conn) if not self.options.skip_blobs: librariangc.delete_expired_blobs(conn) if not self.options.skip_duplicates: librariangc.merge_duplicates(conn) if not self.options.skip_aliases: librariangc.delete_unreferenced_aliases(conn) if not self.options.skip_content: # Second sweep. librariangc.delete_unreferenced_content(conn) if not self.options.skip_files: librariangc.delete_unwanted_files(conn)
def main(self): librariangc.log = self.logger if self.options.loglevel <= logging.DEBUG: librariangc.debug = True # XXX wgrant 2011-09-18 bug=853066: Using Storm's raw connection # here is wrong. We should either create our own or use # Store.execute or cursor() and the transaction module. conn = IStore(LibraryFileAlias)._connection._raw_connection # Refuse to run if we have significant clock skew between the # librarian and the database. librariangc.confirm_no_clock_skew(conn) # Note that each of these next steps will issue commit commands # as appropriate to make this script transaction friendly if not self.options.skip_expiry: librariangc.expire_aliases(conn) if not self.options.skip_content: # First sweep. librariangc.delete_unreferenced_content(conn) if not self.options.skip_blobs: librariangc.delete_expired_blobs(conn) if not self.options.skip_duplicates: librariangc.merge_duplicates(conn) if not self.options.skip_aliases: librariangc.delete_unreferenced_aliases(conn) if not self.options.skip_content: # Second sweep. librariangc.delete_unreferenced_content(conn) if not self.options.skip_files: librariangc.delete_unwanted_files(conn)
def test_confirm_no_clock_skew(self): # There should not be any clock skew when running the test suite. librariangc.confirm_no_clock_skew(self.con) # To test this function raises an excption when it should, # the garbage collector into thinking it is tomorrow. org_time = librariangc.time def tomorrow_time(): return org_time() + 24 * 60 * 60 + 1 try: librariangc.time = tomorrow_time self.assertRaises( Exception, librariangc.confirm_no_clock_skew, (self.con,) ) finally: librariangc.time = org_time