This makes it fast enough to run at startup with -f, if it's expected that a system will frequently need to be fixed.tags/nilmdb-1.9.2
@@ -89,7 +89,7 @@ class Fsck(object): | |||||
### Main checks | ### Main checks | ||||
@retry_if_raised(RetryFsck, "Something was fixed: restarting fsck") | @retry_if_raised(RetryFsck, "Something was fixed: restarting fsck") | ||||
def check(self): | |||||
def check(self, skip_data = False): | |||||
self.bulk = None | self.bulk = None | ||||
self.sql = None | self.sql = None | ||||
try: | try: | ||||
@@ -97,7 +97,10 @@ class Fsck(object): | |||||
self.check_sql() | self.check_sql() | ||||
self.check_streams() | self.check_streams() | ||||
self.check_intervals() | self.check_intervals() | ||||
self.check_data() | |||||
if skip_data: | |||||
log("skipped data check\n") | |||||
else: | |||||
self.check_data() | |||||
finally: | finally: | ||||
if self.bulk: | if self.bulk: | ||||
self.bulk.close() | self.bulk.close() | ||||
@@ -16,10 +16,12 @@ def main(): | |||||
parser.add_argument("-f", "--fix", action="store_true", | parser.add_argument("-f", "--fix", action="store_true", | ||||
default=False, help = 'Fix errors when possible ' | default=False, help = 'Fix errors when possible ' | ||||
'(which may involve removing data)') | '(which may involve removing data)') | ||||
parser.add_argument("-n", "--no-data", action="store_true", | |||||
default=False, help = 'Skip the slow full-data check') | |||||
parser.add_argument('database', help = 'Database directory') | parser.add_argument('database', help = 'Database directory') | ||||
args = parser.parse_args() | args = parser.parse_args() | ||||
nilmdb.fsck.Fsck(args.database, args.fix).check() | |||||
nilmdb.fsck.Fsck(args.database, args.fix).check(skip_data = args.no_data) | |||||
if __name__ == "__main__": | if __name__ == "__main__": | ||||
main() | main() |