summaryrefslogtreecommitdiff
path: root/obnamlib/plugins/forget_plugin.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2013-12-15 00:16:03 +0200
committerLars Wirzenius <liw@liw.fi>2013-12-28 21:51:24 +0000
commitaac34727e34728f2bef726d027cb80f0e3e58279 (patch)
tree52df483f26439f1468bf2c82fe7cb836d5138cbf /obnamlib/plugins/forget_plugin.py
parentd6c5feebdabf6dd0b343c278d023a65157e90c41 (diff)
downloadobnam-aac34727e34728f2bef726d027cb80f0e3e58279.tar.gz
Make forget remove now-unused chunks
Diffstat (limited to 'obnamlib/plugins/forget_plugin.py')
-rw-r--r--obnamlib/plugins/forget_plugin.py37
1 files changed, 25 insertions, 12 deletions
diff --git a/obnamlib/plugins/forget_plugin.py b/obnamlib/plugins/forget_plugin.py
index 9a54555e..128c7fa7 100644
--- a/obnamlib/plugins/forget_plugin.py
+++ b/obnamlib/plugins/forget_plugin.py
@@ -39,24 +39,33 @@ class ForgetPlugin(obnamlib.ObnamPlugin):
self.app.ts['gens'] = []
self.app.ts.format('forgetting generations: %Index(gen,gens) done')
- self.repo = self.app.open_repository()
+ self.repo = self.app.get_repository_object()
self.repo.lock_client(self.app.settings['client-name'])
- self.repo.lock_shared()
+ self.repo.lock_chunk_indexes()
self.app.dump_memory_profile('at beginning')
+ client_name = self.app.settings['client-name']
if args:
self.app.ts['gens'] = args
for genspec in args:
self.app.ts['gen'] = genspec
- genid = self.repo.genspec(genspec)
- self.app.ts.notify('Forgetting generation %s' % genid)
+ genid = self.repo.interpret_generation_spec(
+ client_name, genspec)
+ self.app.ts.notify(
+ 'Forgetting generation %s' %
+ self.repo.make_generation_spec(genid))
self.remove(genid)
- self.app.dump_memory_profile('after removing %s' % genid)
+ self.app.dump_memory_profile(
+ 'after removing %s' %
+ self.repo.make_generation_spec(genid))
elif self.app.settings['keep']:
genlist = []
dt = datetime.datetime(1970, 1, 1, 0, 0, 0)
- for genid in self.repo.list_generations():
- start, end = self.repo.get_generation_times(genid)
+ for genid in self.repo.get_client_generation_ids(client_name):
+ start = self.repo.get_generation_key(
+ genid, obnamlib.REPO_GENERATION_STARTED)
+ end = self.repo.get_generation_key(
+ genid, obnamlib.REPO_GENERATION_ENDED)
genlist.append((genid, dt.fromtimestamp(end)))
fp = obnamlib.ForgetPolicy()
@@ -71,17 +80,21 @@ class ForgetPlugin(obnamlib.ObnamPlugin):
for genid in removeids:
self.app.ts['gen'] = genid
self.remove(genid)
- self.app.dump_memory_profile('after removing %s' % genid)
+ self.app.dump_memory_profile(
+ 'after removing %s' %
+ self.repo.make_generation_spec(genid))
- self.repo.commit_client()
- self.repo.commit_shared()
+ self.repo.commit_client(client_name)
+ self.repo.commit_chunk_indexes()
self.app.dump_memory_profile('after committing')
- self.repo.fs.close()
+ self.repo.close()
self.app.ts.finish()
def remove(self, genid):
if self.app.settings['pretend']:
- self.app.ts.notify('Pretending to remove generation %s' % genid)
+ self.app.ts.notify(
+ 'Pretending to remove generation %s' %
+ self.repo.make_generation_spec(genid))
else:
self.repo.remove_generation(genid)