summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-07-04 17:02:56 +1200
committerLars Wirzenius <liw@liw.fi>2010-07-04 17:02:56 +1200
commita0fa9f8c3314882a8ff754f42a0d0026ff6528cb (patch)
tree7549d7dc02d8249c58bd37f3eabf4db6e5547861
parent1104da1ffd9091668ab50a808746b92e36d2b86b (diff)
downloadobnam-a0fa9f8c3314882a8ff754f42a0d0026ff6528cb.tar.gz
Add --chunk-group-size option.
-rw-r--r--obnamlib/app.py6
-rw-r--r--obnamlib/plugins/backup_plugin.py3
2 files changed, 8 insertions, 1 deletions
diff --git a/obnamlib/app.py b/obnamlib/app.py
index b460bee7..6ffe4623 100644
--- a/obnamlib/app.py
+++ b/obnamlib/app.py
@@ -47,6 +47,12 @@ class App(object):
'(default: %default)')
self.config['chunk-size'] = '%s' % obnamlib.DEFAULT_CHUNK_SIZE
+ self.config.new_bytesize(['chunk-group-size'],
+ 'number of chunks per chunk group '
+ '(default: %default)')
+ self.config['chunk-group-size'] = \
+ '%s' % obnamlib.DEFAULT_CHUNK_GROUP_SIZE
+
self.pm = obnamlib.PluginManager()
self.pm.locations = [self.plugins_dir()]
self.pm.plugin_arguments = (self,)
diff --git a/obnamlib/plugins/backup_plugin.py b/obnamlib/plugins/backup_plugin.py
index 4d2dbb6c..84dcb5c6 100644
--- a/obnamlib/plugins/backup_plugin.py
+++ b/obnamlib/plugins/backup_plugin.py
@@ -191,13 +191,14 @@ class BackupPlugin(obnamlib.ObnamPlugin):
groupsum = self.store.new_checksummer()
f = self.fs.open(filename, 'r')
chunk_size = int(self.app.config['chunk-size'])
+ chunk_group_size = int(self.app.config['chunk-group-size'])
while True:
data = f.read(chunk_size)
if not data:
break
chunkids.append(self.backup_file_chunk(data))
groupsum.update(data)
- if len(chunkids) == obnamlib.DEFAULT_CHUNK_GROUP_SIZE:
+ if len(chunkids) == chunk_group_size:
checksum = groupsum.hexdigest()
cgid = self.store.put_chunk_group(chunkids, checksum)
cgids.append(cgid)