From ae64ddf8e613217a9042457c7ae3efec26d8d842 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@allmydata.com>
Date: Fri, 13 Mar 2009 01:24:51 -0700
Subject: [PATCH] consolidate: add eta, flush stdout

---
 src/allmydata/scripts/consolidate.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/allmydata/scripts/consolidate.py b/src/allmydata/scripts/consolidate.py
index a98c1511..b72900cb 100644
--- a/src/allmydata/scripts/consolidate.py
+++ b/src/allmydata/scripts/consolidate.py
@@ -1,5 +1,5 @@
 
-import os, pickle
+import os, pickle, time
 import sqlite3 as sqlite
 
 import urllib
@@ -56,8 +56,10 @@ class Consolidator:
 
     def msg(self, text):
         print >>self.options.stdout, text
+        self.options.stdout.flush()
     def err(self, text):
         print >>self.options.stderr, text
+        self.options.stderr.flush()
 
     def consolidate(self):
         try:
@@ -183,6 +185,7 @@ class Consolidator:
 
         first_snapshot = True
         for i,(timestamp, rwname, writecap, roname, readcap) in enumerate(snapshots):
+            eta = "?"
             start_created = self.directories_created
             start_used_as_is = self.directories_used_as_is
             start_reused = self.directories_reused
@@ -227,7 +230,10 @@ class Consolidator:
                 # readonly directory (which shares common subdirs with previous
                 # backups)
                 self.msg(" %s: processing (%d/%d)" % (rwname, i+1, len(snapshots)))
+                started = time.time()
                 readcap = self.process_directory(readonly(writecap), (rwname,))
+                elapsed = time.time() - started
+                eta = "%ds" % (elapsed * (len(snapshots) - i-1))
             if self.options["really"]:
                 self.msg("  replaced %s" % rwname)
                 self.put_child(archives_dircap, rwname, readcap)
@@ -238,9 +244,10 @@ class Consolidator:
             snapshot_created = self.directories_created - start_created
             snapshot_used_as_is = self.directories_used_as_is - start_used_as_is
             snapshot_reused = self.directories_reused - start_reused
-            self.msg("  %s: done: %d dirs created, %d used as-is, %d reused"
+            self.msg("  %s: done: %d dirs created, %d used as-is, %d reused, eta %s"
                      % (rwname,
-                        snapshot_created, snapshot_used_as_is, snapshot_reused))
+                        snapshot_created, snapshot_used_as_is, snapshot_reused,
+                        eta))
         # done!
         self.msg(" system done, dircounts: %d/%d seen/used, %d created, %d as-is, %d reused" \
                  % (len(self.directories_seen), len(self.directories_used),
-- 
2.45.2