1 |
commit: 8c6da8152ca04b3a1d706abc2bbd57b1cd982e82 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Mar 21 19:12:22 2015 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat May 30 23:18:51 2015 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=8c6da815 |
7 |
|
8 |
gkeys/actions.py: Refactor installkey to refresh keys that are already installed and unchanged |
9 |
|
10 |
gkeys/gkeys/actions.py | 78 +++++++++++++++++++++++++++++--------------------- |
11 |
1 file changed, 46 insertions(+), 32 deletions(-) |
12 |
|
13 |
diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py |
14 |
index 8e078f0..7b834a4 100644 |
15 |
--- a/gkeys/gkeys/actions.py |
16 |
+++ b/gkeys/gkeys/actions.py |
17 |
@@ -245,11 +245,11 @@ class Actions(object): |
18 |
def installkey(self, args): |
19 |
'''Install a key from the seed(s)''' |
20 |
self.logger.debug("ACTIONS: installkey; args: %s" % str(args)) |
21 |
- success, gkey = self.listseed(args)[1] |
22 |
- if gkey: |
23 |
- if gkey and not args.nick == '*' and self.output: |
24 |
- self.output(['', gkey], "\n Found GKEY seeds:") |
25 |
- elif gkey and self.output: |
26 |
+ success, gkeys = self.listseed(args)[1] |
27 |
+ if gkeys: |
28 |
+ if gkeys and not args.nick == '*' and self.output: |
29 |
+ self.output(['', gkeys], "\n Found GKEY seeds:") |
30 |
+ elif gkeys and self.output: |
31 |
self.output(['all'], "\n Installing seeds:") |
32 |
else: |
33 |
self.logger.info("ACTIONS: installkey; " |
34 |
@@ -269,33 +269,47 @@ class Actions(object): |
35 |
self.logger.debug(_unicode("ACTIONS: installkey; catdir = %s") |
36 |
% catdir) |
37 |
self.gpg = GkeysGPG(self.config, catdir, self.logger) |
38 |
- results = {} |
39 |
- failed = [] |
40 |
- for key in gkey: |
41 |
- self.logger.debug("ACTIONS: installkey; adding key:") |
42 |
- self.logger.debug("ACTIONS: " + str(key)) |
43 |
- results[key.name] = self.gpg.add_key(key) |
44 |
- for result in results[key.name]: |
45 |
- self.logger.debug("ACTIONS: installkey; result.failed = " + |
46 |
- str(result.failed)) |
47 |
- if self.config.options['print_results']: |
48 |
- msg = _unicode("key desired: %(name)s, key added: %(key)s, succeeded:" +\ |
49 |
- " %(success)s, fingerprint: %(fpr)s") |
50 |
- for result in results[key.name]: |
51 |
- umsg = msg % ({'name': key.name, 'key': result.username, |
52 |
- 'success': str(not result.failed), |
53 |
- 'fpr': result.fingerprint}) |
54 |
- try: |
55 |
- print(umsg) |
56 |
- except UnicodeDecodeError: |
57 |
- print(_unicode("UnicodeDecodeError printing results for:"), key.name) |
58 |
- self.logger.debug(_unicode("installkey(); UnicodeDecodeError for:") + key.name) |
59 |
- self.logger.debug(_unicode(" result.username...:") + result.username) |
60 |
- self.logger.debug(_unicode(" result.failed.....:") + result.failed) |
61 |
- self.logger.debug(_unicode(" result.fingerprint:") + result.fingerprint) |
62 |
- self.logger.debug("stderr_out: " + str(result.stderr_out)) |
63 |
- if result.failed: |
64 |
- failed.append(key) |
65 |
+ for gkey in gkeys: |
66 |
+ self.gpg.set_keydir(gkey.keydir, "recv-keys") |
67 |
+ self.gpg.set_keyseedfile() |
68 |
+ seeds = self.gpg.seedfile.seeds |
69 |
+ #print(seeds) |
70 |
+ if seeds: |
71 |
+ self.logger.debug("ACTIONS: installkey; found installed seeds:" |
72 |
+ "\n %s" % seeds) |
73 |
+ results = {} |
74 |
+ failed = [] |
75 |
+ if gkey.nick in seeds and gkey.keys == seeds[gkey.nick].keys: |
76 |
+ self.logger.debug("ACTIONS: installkey; refreshing key:") |
77 |
+ if self.config.options['print_results']: |
78 |
+ print(_unicode("Refreshing already installed key: %s, %s" |
79 |
+ %(gkey.nick, gkey.keys))) |
80 |
+ self.gpg.refresh_key(gkey) |
81 |
+ else: |
82 |
+ self.logger.debug("ACTIONS: installkey; adding key:") |
83 |
+ self.logger.debug("ACTIONS: " + str(gkey)) |
84 |
+ results[gkey.name] = self.gpg.add_key(gkey) |
85 |
+ for result in results[gkey.name]: |
86 |
+ self.logger.debug("ACTIONS: installkey; result.failed = " + |
87 |
+ str(result.failed)) |
88 |
+ if self.config.options['print_results']: |
89 |
+ msg = _unicode("key desired: %(name)s, key added: %(key)s, succeeded:" +\ |
90 |
+ " %(success)s, fingerprint: %(fpr)s") |
91 |
+ for result in results[gkey.name]: |
92 |
+ umsg = msg % ({'name': gkey.name, 'key': result.username, |
93 |
+ 'success': str(not result.failed), |
94 |
+ 'fpr': result.fingerprint}) |
95 |
+ try: |
96 |
+ print(umsg) |
97 |
+ except UnicodeDecodeError: |
98 |
+ print(_unicode("UnicodeDecodeError printing results for:"), gkey.name) |
99 |
+ self.logger.debug(_unicode("installkey(); UnicodeDecodeError for:") + gkey.name) |
100 |
+ self.logger.debug(_unicode(" result.username...:") + result.username) |
101 |
+ self.logger.debug(_unicode(" result.failed.....:") + result.failed) |
102 |
+ self.logger.debug(_unicode(" result.fingerprint:") + result.fingerprint) |
103 |
+ self.logger.debug("stderr_out: " + str(result.stderr_out)) |
104 |
+ if result.failed: |
105 |
+ failed.append(gkey) |
106 |
if failed and self.output: |
107 |
self.output([failed], "\n Failed to install:") |
108 |
if failed: |