diff --git a/testgres/node.py b/testgres/node.py index 2ea49529..5b245fe4 100644 --- a/testgres/node.py +++ b/testgres/node.py @@ -913,6 +913,17 @@ def free_port(self): self._should_free_port = False release_port(self.port) + def _get_directory_size(self, directory): + """Calculate the total size of a directory.""" + total_size = 0 + for dirpath, dirnames, filenames in os.walk(directory): + for f in filenames: + fp = os.path.join(dirpath, f) + # Skip if it is symbolic link + if not os.path.islink(fp): + total_size += os.path.getsize(fp) + return total_size + def cleanup(self, max_attempts=3, full=False): """ Stop node if needed and remove its data/logs directory. @@ -934,6 +945,9 @@ def cleanup(self, max_attempts=3, full=False): else: rm_dir = self.data_dir # just data, save logs + dir_size = self._get_directory_size(rm_dir) + print(f"Cleanup: Size of the directory '{rm_dir}' before removal: {dir_size} bytes") + self.os_ops.rmdirs(rm_dir, ignore_errors=False) return self