Kaynağa Gözat

Merge pull request #1518 from pbiering/improve-verify-storage

Improve verify storage
Peter Bieringer 1 yıl önce
ebeveyn
işleme
ac14b01dda
1 değiştirilmiş dosya ile 15 ekleme ve 5 silme
  1. 15 5
      radicale/storage/multifilesystem/verify.py

+ 15 - 5
radicale/storage/multifilesystem/verify.py

@@ -1,7 +1,8 @@
 # This file is part of Radicale - CalDAV and CardDAV server
 # Copyright © 2014 Jean-Marc Martins
 # Copyright © 2012-2017 Guillaume Ayoub
-# Copyright © 2017-2018 Unrud <unrud@outlook.com>
+# Copyright © 2017-2021 Unrud <unrud@outlook.com>
+# Copyright © 2024-2024 Peter Bieringer <pb@bieringer.de>
 #
 # This library is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -48,7 +49,9 @@ class StoragePartVerify(StoragePartDiscover, StorageBase):
         while remaining_sane_paths:
             sane_path = remaining_sane_paths.pop(0)
             path = pathutils.unstrip_path(sane_path, True)
-            logger.debug("Verifying collection %r", sane_path)
+            logger.info("Verifying   path %r", sane_path)
+            count = 0
+            is_collection = True
             with exception_cm(sane_path, None):
                 saved_item_errors = item_errors
                 collection: Optional[storage.BaseCollection] = None
@@ -59,6 +62,9 @@ class StoragePartVerify(StoragePartDiscover, StorageBase):
                         assert isinstance(item, storage.BaseCollection)
                         collection = item
                         collection.get_meta()
+                        if not collection.tag:
+                            is_collection = False
+                            logger.info("Skip !collection %r", sane_path)
                         continue
                     if isinstance(item, storage.BaseCollection):
                         has_child_collections = True
@@ -68,13 +74,17 @@ class StoragePartVerify(StoragePartDiscover, StorageBase):
                                      item.href, sane_path, item.uid)
                     else:
                         uids.add(item.uid)
-                        logger.debug("Verified item %r in %r",
-                                     item.href, sane_path)
+                        count += 1
+                        logger.debug("Verified in %r item %r",
+                                     sane_path, item.href)
                 assert collection
                 if item_errors == saved_item_errors:
-                    collection.sync()
+                    if is_collection:
+                        collection.sync()
                 if has_child_collections and collection.tag:
                     logger.error("Invalid collection %r: %r must not have "
                                  "child collections", sane_path,
                                  collection.tag)
+            if is_collection:
+                logger.info("Verified collect %r (items: %d)", sane_path, count)
         return item_errors == 0 and collection_errors == 0