Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
< 60 * 60 * 24 * 31): # last check more than 1 month ago
if options.force or options.renumber_inodes:
log.info('File system seems clean, checking anyway.')
else:
log.info('File system is marked as clean. Use --force to force checking.')
return
# If using local metadata, check consistency
if db:
log.info('Checking DB integrity...')
try:
# get_list may raise CorruptError itself
res = db.get_list('PRAGMA integrity_check(20)')
if res[0][0] != u'ok':
log.error('\n'.join(x[0] for x in res ))
raise apsw.CorruptError()
except apsw.CorruptError:
raise QuietError('Local metadata is corrupted. Remove or repair the following '
'files manually and re-run fsck:\n'
+ cachepath + '.db (corrupted)\n'
+ cachepath + '.param (intact)')
else:
def do_read(fh):
tmpfh = tempfile.TemporaryFile()
stream_read_bz2(fh, tmpfh)
return tmpfh
log.info('Downloading and decompressing metadata...')
tmpfh = bucket.perform_read(do_read, "s3ql_metadata")
os.close(os.open(cachepath + '.db.tmp', os.O_RDWR | os.O_CREAT | os.O_TRUNC,
stat.S_IRUSR | stat.S_IWUSR))
db = Connection(cachepath + '.db.tmp', fast_mode=True)
log.info("Reading metadata...")
log.warning('You should delete this directory once you are sure that '
'everything is in order.')
os.rename(cachepath + '-cache', bak_name)
elif outdated_cachedir:
log.info("Flushing outdated local cache...")
shutil.rmtree(cachepath + '-cache')
# If using local metadata, check consistency
if db:
log.info('Checking DB integrity...')
try:
# get_list may raise CorruptError itself
res = db.get_list('PRAGMA integrity_check(20)')
if res[0][0] != 'ok':
log.error('\n'.join(x[0] for x in res))
raise apsw.CorruptError()
except apsw.CorruptError:
raise QuietError('Local metadata is corrupted. Remove or repair the following '
'files manually and re-run fsck:\n'
+ cachepath + '.db (corrupted)\n'
+ cachepath + '.param (intact)', exitcode=43)
else:
db = download_metadata(backend, cachepath + '.db')
# We only read cache files if the filesystem was not
# unmounted cleanly. On a clean unmount, the cache files can
# not be dirty.
check_cache = param['needs_fsck']
if check_cache and options.keep_cache:
check_cache = 'keep'
# Increase metadata sequence no