Selaa lähdekoodia

Move value bounds of segment (index) into constants module and use them instead

nain 2 vuotta sitten
vanhempi
sitoutus
edb5e749f5
2 muutettua tiedostoa jossa 9 lisäystä ja 3 poistoa
  1. 6 0
      src/borg/constants.py
  2. 3 3
      src/borg/repository.py

+ 6 - 0
src/borg/constants.py

@@ -62,6 +62,12 @@ LIST_SCAN_LIMIT = 100000
 
 DEFAULT_SEGMENTS_PER_DIR = 1000
 
+# Some bounds on segment / segment_dir indexes
+MIN_SEGMENT_INDEX = 0
+MAX_SEGMENT_INDEX = 2**32 - 1
+MIN_SEGMENT_DIR_INDEX = 0
+MAX_SEGMENT_DIR_INDEX = 2**32 - 1
+
 FD_MAX_AGE = 4 * 60  # 4 minutes
 
 CHUNK_MIN_EXP = 19  # 2**19 == 512kiB

+ 3 - 3
src/borg/repository.py

@@ -1319,7 +1319,7 @@ class LoggedIO:
         safe_fadvise(fd.fileno(), 0, 0, 'DONTNEED')
         fd.close()
 
-    def get_segment_dirs(self, data_dir, start_index=0, end_index=2**30):
+    def get_segment_dirs(self, data_dir, start_index=MIN_SEGMENT_DIR_INDEX, end_index=MAX_SEGMENT_DIR_INDEX):
         """Returns generator yielding required segment dirs in data_dir as `os.DirEntry` objects.
         Start and end are inclusive.
         """
@@ -1330,7 +1330,7 @@ class LoggedIO:
         )
         return segment_dirs
 
-    def get_segment_files(self, segment_dir, start_index=0, end_index=2**32):
+    def get_segment_files(self, segment_dir, start_index=MIN_SEGMENT_INDEX, end_index=MAX_SEGMENT_INDEX):
         """Returns generator yielding required segment files in segment_dir as `os.DirEntry` objects.
         Start and end are inclusive.
         """
@@ -1343,7 +1343,7 @@ class LoggedIO:
 
     def segment_iterator(self, segment=None, reverse=False):
         if segment is None:
-            segment = 0 if not reverse else 2 ** 32 - 1
+            segment = MIN_SEGMENT_INDEX if not reverse else MAX_SEGMENT_INDEX
         start_segment_dir = segment // self.segments_per_dir
         data_path = os.path.join(self.path, 'data')
         if not reverse: