1 |
commit: 3a59f3c4f95e5136d03805049c9af638de96dde4 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Dec 28 17:03:35 2014 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Dec 30 21:42:26 2014 +0000 |
6 |
URL: http://sources.gentoo.org/gitweb/?p=proj/gentoo-keys.git;a=commit;h=3a59f3c4 |
7 |
|
8 |
gkeys: Add UpdateDbError exception usage |
9 |
|
10 |
--- |
11 |
gkeys/gkeys/actions.py | 2 +- |
12 |
gkeys/gkeys/lib.py | 6 +++--- |
13 |
gkeys/gkeys/seed.py | 7 ++++++- |
14 |
gkeys/gkeys/seedhandler.py | 11 ++++++++--- |
15 |
4 files changed, 18 insertions(+), 8 deletions(-) |
16 |
|
17 |
diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py |
18 |
index 0dbdf24..2a68739 100644 |
19 |
--- a/gkeys/gkeys/actions.py |
20 |
+++ b/gkeys/gkeys/actions.py |
21 |
@@ -858,7 +858,7 @@ class Actions(object): |
22 |
return (False, ["Please specify seeds type."]) |
23 |
self.logger.debug("ACTIONS: refreshkey; args: %s" % str(args)) |
24 |
handler = SeedHandler(self.logger, self.config) |
25 |
- seeds = handler.load_category(args.category) |
26 |
+ seeds = handler.load_category(args.category, refresh=True) |
27 |
keyring = self.config.get_key('keyring') |
28 |
catdir = os.path.join(keyring, args.category) |
29 |
self.logger.debug("ACTIONS: refreshkey; catdir = %s" % catdir) |
30 |
|
31 |
diff --git a/gkeys/gkeys/lib.py b/gkeys/gkeys/lib.py |
32 |
index f8e6615..724abfc 100644 |
33 |
--- a/gkeys/gkeys/lib.py |
34 |
+++ b/gkeys/gkeys/lib.py |
35 |
@@ -189,7 +189,7 @@ class GkeysGPG(GPG): |
36 |
self.set_keyserver() |
37 |
self.set_keydir(gkey.keydir, 'refresh-keys', reset=True) |
38 |
self.set_keyring('pubring.gpg', 'refresh-keys', reset=False) |
39 |
- self.set_keyseedfile() |
40 |
+ self.set_keyseedfile(refresh=True) |
41 |
logger.debug("LIB: refresh_key, gkey: %s" % str(gkey)) |
42 |
logger.debug("** Calling runGPG with Running 'gpg %s --refresh-keys' for: %s" |
43 |
% (' '.join(self.config.get_key('tasks', 'refresh-keys')), str(gkey))) |
44 |
@@ -325,11 +325,11 @@ class GkeysGPG(GPG): |
45 |
return results |
46 |
|
47 |
|
48 |
- def set_keyseedfile(self, trap_errors=True): |
49 |
+ def set_keyseedfile(self, trap_errors=True, refresh=False): |
50 |
if not self.keydir: |
51 |
logger.debug("GkeysGPG.set_keyseedfile(); self.keydir error") |
52 |
self.seedfile = Seeds(pjoin(self.keydir, 'gkey.seeds'), self.config) |
53 |
- self.seedfile.load(trap_errors=trap_errors) |
54 |
+ self.seedfile.load(trap_errors=trap_errors, refresh=refresh) |
55 |
|
56 |
|
57 |
def sign_file(self, gkey, mode, fingerprint, filepath): |
58 |
|
59 |
diff --git a/gkeys/gkeys/seed.py b/gkeys/gkeys/seed.py |
60 |
index 67354f3..1a2bae2 100644 |
61 |
--- a/gkeys/gkeys/seed.py |
62 |
+++ b/gkeys/gkeys/seed.py |
63 |
@@ -19,6 +19,7 @@ with gentoo-keys specific convienience functions. |
64 |
import json |
65 |
import os |
66 |
|
67 |
+from gkeys.exception import UpdateDbError |
68 |
from gkeys.log import logger |
69 |
from gkeys.gkey import GKEY |
70 |
from gkeys.fileops import ensure_dirs |
71 |
@@ -38,7 +39,7 @@ class Seeds(object): |
72 |
self.seeds = {} |
73 |
|
74 |
|
75 |
- def load(self, filename=None, trap_errors=True): |
76 |
+ def load(self, filename=None, trap_errors=True, refresh=False): |
77 |
'''Load the seed file into memory''' |
78 |
if filename: |
79 |
self.filename = filename |
80 |
@@ -59,8 +60,12 @@ class Seeds(object): |
81 |
for seed in list(seedlines.items()): |
82 |
# GKEY class change auto-update |
83 |
if not 'uid' in list(seed[1]): |
84 |
+ if not refresh: |
85 |
+ raise UpdateDbError(filename) |
86 |
seed[1]['uid'] = [] |
87 |
if not 'keys' in list(seed[1]): |
88 |
+ if not refresh: |
89 |
+ raise UpdateDbError(filename) |
90 |
seed[1]['keys'] = seed[1]['fingerprint'][:] |
91 |
|
92 |
#try: |
93 |
|
94 |
diff --git a/gkeys/gkeys/seedhandler.py b/gkeys/gkeys/seedhandler.py |
95 |
index a9fb720..5ddccbe 100644 |
96 |
--- a/gkeys/gkeys/seedhandler.py |
97 |
+++ b/gkeys/gkeys/seedhandler.py |
98 |
@@ -14,6 +14,7 @@ import os |
99 |
import re |
100 |
from json import load |
101 |
|
102 |
+from gkeys.exception import UpdateDbError |
103 |
from gkeys.gkey import GKEY |
104 |
from gkeys.seed import Seeds |
105 |
from gkeys.fileops import ensure_dirs |
106 |
@@ -58,7 +59,7 @@ class SeedHandler(object): |
107 |
pass |
108 |
return keyinfo |
109 |
|
110 |
- def load_seeds(self, seedfile=None, filepath=None): |
111 |
+ def load_seeds(self, seedfile=None, filepath=None, refresh=False): |
112 |
'''Load seed file |
113 |
|
114 |
@param seeds: string of the short name seed file |
115 |
@@ -77,11 +78,11 @@ class SeedHandler(object): |
116 |
self.logger.debug("SeedHandler: load_seeds; seeds filepath to load: " |
117 |
"%s" % filepath) |
118 |
seeds = Seeds(config=self.config) |
119 |
- seeds.load(filepath) |
120 |
+ seeds.load(filepath, refresh=refresh) |
121 |
self.seeds = seeds |
122 |
return seeds |
123 |
|
124 |
- def load_category(self, category, nicks=None): |
125 |
+ def load_category(self, category, nicks=None, refresh=False): |
126 |
'''Loads the designated key directories |
127 |
|
128 |
@param category: string |
129 |
@@ -113,8 +114,12 @@ class SeedHandler(object): |
130 |
key = seed[nick] |
131 |
# GKEY class change auto-update |
132 |
if not 'uid' in list(key): |
133 |
+ if not refresh: |
134 |
+ raise UpdateDbError(category) |
135 |
key['uid'] = [] |
136 |
if not 'keys' in list(key): |
137 |
+ if not refresh: |
138 |
+ raise UpdateDbError(category) |
139 |
key['keys'] = key['fingerprint'][:] |
140 |
seeds.add(nick, GKEY(**key)) |
141 |
except OSError as error: |