1 |
commit: 33aa21ef6e619c7776a4984370c7f01a15c0ec87 |
2 |
Author: aeroniero33 <justthisthing <AT> gmail <DOT> com> |
3 |
AuthorDate: Tue Jun 14 20:24:08 2016 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Dec 24 04:54:15 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=33aa21ef |
7 |
|
8 |
gkeys actions: Add keys updated reporting |
9 |
|
10 |
Report the updated/revoked keys during the update. |
11 |
<rebase edit> |
12 |
Replace print() with self.output() |
13 |
Whitespace cleanup |
14 |
Create a meaningful commit message |
15 |
</edit Brian Dolbec> |
16 |
|
17 |
gkeys/gkeys/actions.py | 18 +++++++++++++++++- |
18 |
gkeys/gkeys/seedhandler.py | 23 +++++++++++++++++++++++ |
19 |
2 files changed, 40 insertions(+), 1 deletion(-) |
20 |
|
21 |
diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py |
22 |
index 3d0399a..77d39b1 100644 |
23 |
--- a/gkeys/gkeys/actions.py |
24 |
+++ b/gkeys/gkeys/actions.py |
25 |
@@ -115,7 +115,9 @@ class Actions(ActionBase): |
26 |
category_msgs.extend(messages) |
27 |
return (True, category_msgs) |
28 |
self.output('', "Fetching seeds for %s category.\n" %args.category) |
29 |
+ success, old_gkeys = self.listseed(args) |
30 |
fetch_success, fetch_messages = self.fetchseed(args) |
31 |
+ self.seeds = None |
32 |
if fetch_success is not True: |
33 |
success = False |
34 |
messages = fetch_messages |
35 |
@@ -129,7 +131,21 @@ class Actions(ActionBase): |
36 |
success = False |
37 |
else: |
38 |
self.output('', "Update succeeded.\n") |
39 |
- messages = fetch_messages + ["Update operation:"] + [install_messages] |
40 |
+ messages = fetch_messages + [" Update operation:"] + [install_messages] |
41 |
+ success, new_gkeys = self.listseed(args) |
42 |
+ added_gkeys, changed_gkeys = self.seedhandler.compare_seeds(old_gkeys, new_gkeys) |
43 |
+ self.output('', "Updated revoked GKeys:") |
44 |
+ if changed_gkeys: |
45 |
+ for gkey in changed_gkeys: |
46 |
+ self.output(['', changed_gkeys]) |
47 |
+ else: |
48 |
+ self.output('', "No GKeys were revoked") |
49 |
+ self.output('', "Added GKeys:") |
50 |
+ if added_gkeys: |
51 |
+ for gkey in added_gkeys: |
52 |
+ self.output(['', added_gkeys]) |
53 |
+ else: |
54 |
+ self.output('', "No GKeys were added") |
55 |
return (success, messages) |
56 |
|
57 |
def addseed(self, args): |
58 |
|
59 |
diff --git a/gkeys/gkeys/seedhandler.py b/gkeys/gkeys/seedhandler.py |
60 |
index de2a6ad..c7dad2e 100644 |
61 |
--- a/gkeys/gkeys/seedhandler.py |
62 |
+++ b/gkeys/gkeys/seedhandler.py |
63 |
@@ -71,6 +71,29 @@ class SeedHandler(object): |
64 |
keyinfo[attr] = None |
65 |
return keyinfo |
66 |
|
67 |
+ def compare_seeds(self, seeds1, seeds2) : |
68 |
+ '''Compares two seed lists and returns the differences |
69 |
+ |
70 |
+ @param seeds1: set of seeds to be compared |
71 |
+ @param seeds2: set of seeds to be compared |
72 |
+ @return added_gkeys: list of keys that are included in seed2 but not seed1 |
73 |
+ @return changed_gkeys: list of keys that are included in seed1 and seed2 but have been altered |
74 |
+ ''' |
75 |
+ old_gkeys = seeds1[1] |
76 |
+ new_gkeys = seeds2[1] |
77 |
+ changed_gkeys = [] |
78 |
+ added_gkeys = [] |
79 |
+ if old_gkeys: |
80 |
+ for new_gkey in new_gkeys: |
81 |
+ for old_gkey in old_gkeys: |
82 |
+ if new_gkey.nick == old_gkey.nick and new_gkey != old_gkey: |
83 |
+ changed_gkeys.append(new_gkey) |
84 |
+ if new_gkey not in old_gkeys and new_gkey not in changed_gkeys: |
85 |
+ added_gkeys.append(new_gkey) |
86 |
+ else: |
87 |
+ added_gkeys = new_gkeys |
88 |
+ return(added_gkeys, changed_gkeys) |
89 |
+ |
90 |
def load_seeds(self, seedfile=None, filepath=None, refresh=False): |
91 |
'''Load seed file |