summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-04-12 14:20:08 +0100
committerLars Wirzenius <liw@liw.fi>2011-04-12 14:20:08 +0100
commit16003161a7a2ff0d09fbb908ff4e933062ffb7f8 (patch)
treec23b5db5a5fc51a269ad0532748f9a37029aacf2
parentf2c3c3cf2dffc3a41735efd1aaa7916d9c40a3a5 (diff)
downloadobnam-16003161a7a2ff0d09fbb908ff4e933062ffb7f8.tar.gz
Refactor top eliminate duplicated code.
-rw-r--r--obnamlib/plugins/encryption_plugin.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/obnamlib/plugins/encryption_plugin.py b/obnamlib/plugins/encryption_plugin.py
index eee56152..f3da8947 100644
--- a/obnamlib/plugins/encryption_plugin.py
+++ b/obnamlib/plugins/encryption_plugin.py
@@ -120,14 +120,20 @@ class EncryptionPlugin(obnamlib.ObnamPlugin):
keyid = 'no key'
print client, keyid
- def list_keys(self, args):
- repo = self.app.open_repository()
+ def _find_keys_and_toplevels(self, repo):
toplevels = repo.fs.listdir('.')
keys = dict()
+ tops = dict()
for toplevel in toplevels:
userkeys = self.read_keyring(repo, toplevel)
for keyid in userkeys.keyids():
keys[keyid] = keys.get(keyid, []) + [toplevel]
+ tops[toplevel] = tops.get(toplevel, []) + [keyid]
+ return keys, tops
+
+ def list_keys(self, args):
+ repo = self.app.open_repository()
+ keys, tops = self._find_keys_and_toplevels(repo)
for keyid in keys:
print 'key: %s' % keyid
for toplevel in keys[keyid]:
@@ -135,14 +141,7 @@ class EncryptionPlugin(obnamlib.ObnamPlugin):
def list_toplevels(self, args):
repo = self.app.open_repository()
- toplevels = repo.fs.listdir('.')
- keys = dict()
- tops = dict()
- for toplevel in toplevels:
- userkeys = self.read_keyring(repo, toplevel)
- for keyid in userkeys.keyids():
- keys[keyid] = keys.get(keyid, []) + [toplevel]
- tops[toplevel] = tops.get(toplevel, []) + [keyid]
+ keys, tops = self._find_keys_and_toplevels(repo)
for toplevel in tops:
print 'toplevel: %s' % toplevel
for keyid in tops[toplevel]: