dirnode: add some deep-check logging

This commit is contained in:
Brian Warner
2008-08-11 21:23:38 -07:00
parent 79576cf75b
commit 1306b11a76

View File

@ -10,7 +10,7 @@ from allmydata.interfaces import IMutableFileNode, IDirectoryNode,\
IURI, IFileNode, IMutableFileURI, IVerifierURI, IFilesystemNode, \ IURI, IFileNode, IMutableFileURI, IVerifierURI, IFilesystemNode, \
ExistingChildError, ICheckable ExistingChildError, ICheckable
from allmydata.immutable.checker import DeepCheckResults from allmydata.immutable.checker import DeepCheckResults
from allmydata.util import hashutil, mathutil from allmydata.util import hashutil, mathutil, base32, log
from allmydata.util.hashutil import netstring from allmydata.util.hashutil import netstring
from allmydata.util.limiter import ConcurrencyLimiter from allmydata.util.limiter import ConcurrencyLimiter
from allmydata.uri import NewDirectoryURI from allmydata.uri import NewDirectoryURI
@ -537,13 +537,19 @@ class NewDirectoryNode:
def deep_check(self, verify=False, repair=False): def deep_check(self, verify=False, repair=False):
# shallow-check each object first, then traverse children # shallow-check each object first, then traverse children
root_si = self._node.get_storage_index() root_si = self._node.get_storage_index()
self._lp = log.msg(format="deep-check starting (%(si)s),"
" verify=%(verify)s, repair=%(repair)s",
si=base32.b2a(root_si), verify=verify, repair=repair)
results = DeepCheckResults(root_si) results = DeepCheckResults(root_si)
found = set() found = set()
limiter = ConcurrencyLimiter(10) limiter = ConcurrencyLimiter(10)
d = self._add_deepcheck_from_node(self, results, found, limiter, d = self._add_deepcheck_from_node(self, results, found, limiter,
verify, repair) verify, repair)
d.addCallback(lambda res: results) def _done(res):
log.msg("deep-check done", parent=self._lp)
return results
d.addCallback(_done)
return d return d
def _add_deepcheck_from_node(self, node, results, found, limiter, def _add_deepcheck_from_node(self, node, results, found, limiter,