1 |
commit: 89d64ec041b3f4ce51d339e252073bf38bb77206 |
2 |
Author: aeroniero33 <justthisthing <AT> gmail <DOT> com> |
3 |
AuthorDate: Tue Jun 21 01:40:28 2016 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Dec 24 09:39:25 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=89d64ec0 |
7 |
|
8 |
Created the send-key function |
9 |
|
10 |
<rebase edit> use _set_category() for consistency </edit Brian Dolbec> |
11 |
|
12 |
gkeys/gkeys/action_map.py | 11 ++++++++++- |
13 |
gkeys/gkeys/actions.py | 27 +++++++++++++++++++++++++++ |
14 |
gkeys/gkeys/lib.py | 16 ++++++++++++++++ |
15 |
3 files changed, 53 insertions(+), 1 deletion(-) |
16 |
|
17 |
diff --git a/gkeys/gkeys/action_map.py b/gkeys/gkeys/action_map.py |
18 |
index e4ea412..f372a5c 100644 |
19 |
--- a/gkeys/gkeys/action_map.py |
20 |
+++ b/gkeys/gkeys/action_map.py |
21 |
@@ -18,7 +18,7 @@ Seed_Actions = ['----seeds----', 'add-seed', 'fetch-seed', |
22 |
'list-seed', 'list-seedfiles', 'move-seed', 'remove-seed'] |
23 |
|
24 |
Key_Actions = ['----keys-----', 'check-key', 'installed', |
25 |
- 'install-key', 'list-key', 'refresh-key', 'remove-key', |
26 |
+ 'install-key', 'list-key', 'send-key', 'refresh-key', 'remove-key', |
27 |
'search-key', 'spec-check'] |
28 |
|
29 |
General_Actions = ['---general---', 'list-cats', 'sign','verify'] |
30 |
@@ -174,6 +174,15 @@ Gpg info.: pub 4096R/825533CBF6CD6C97 2014-10-03 [expires: 2017-09-17] |
31 |
Gkey task results: |
32 |
Done.''', |
33 |
}), |
34 |
+ ('send-key', { |
35 |
+ 'func': 'sendkey', |
36 |
+ 'options': ['category', 'nick', 'name', 'fingerprint', 'keyid', 'keys', |
37 |
+ 'keydir', 'keyring'], |
38 |
+ 'desc': '''Uploads the selected gpg key''', |
39 |
+ 'long_desc': '''Uploads the selected gpg key''', |
40 |
+ 'example': '''gkeys send-key -C gentoo -n gkeys''', |
41 |
+ }), |
42 |
+ |
43 |
('move-key', { |
44 |
'func': 'movekey', |
45 |
'options': ['category', 'nick', 'name', 'fingerprint', 'keys', |
46 |
|
47 |
diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py |
48 |
index aaa3f02..12b8efa 100644 |
49 |
--- a/gkeys/gkeys/actions.py |
50 |
+++ b/gkeys/gkeys/actions.py |
51 |
@@ -194,6 +194,33 @@ class Actions(ActionBase): |
52 |
return (False, messages) |
53 |
|
54 |
|
55 |
+ def sendkey(self, args): |
56 |
+ '''Send selected key(s) to the server''' |
57 |
+ if not args.category: |
58 |
+ return (False, ["Please specify seeds type."]) |
59 |
+ self.logger.debug(_unicode("ACTIONS: sendkey; args: %s") |
60 |
+ % _unicode(args)) |
61 |
+ seeds = self.seedhandler.load_category(args.category, refresh=True) |
62 |
+ self._set_category(args.category) |
63 |
+ results = {} |
64 |
+ kwargs = self.seedhandler.build_gkeydict(args) |
65 |
+ keyresults = seeds.list(**kwargs) |
66 |
+ if keyresults: |
67 |
+ self.output('', '\n sending keys...') |
68 |
+ else: |
69 |
+ return (False, ["Key(s) not found"]) |
70 |
+ for gkey in sorted(keyresults): |
71 |
+ self.logger.info(_unicode("Sending key %s, %s") |
72 |
+ % (gkey.nick, gkey.pub_keyid)) |
73 |
+ self.output('', _unicode(" %s: %s") |
74 |
+ % (gkey.name, ', '.join(gkey.pub_keyid))) |
75 |
+ self.logger.debug(_unicode("ACTIONS: sendkey; gkey = %s") |
76 |
+ % _unicode(gkey)) |
77 |
+ results[gkey.keydir] = self.gpg.send_keys(gkey) |
78 |
+ return (True, ['Completed']) |
79 |
+ |
80 |
+ |
81 |
+ |
82 |
def listkey(self, args): |
83 |
'''Pretty-print the selected gpg key''' |
84 |
# get confirmation |
85 |
|
86 |
diff --git a/gkeys/gkeys/lib.py b/gkeys/gkeys/lib.py |
87 |
index 5ad1aab..a8529f4 100644 |
88 |
--- a/gkeys/gkeys/lib.py |
89 |
+++ b/gkeys/gkeys/lib.py |
90 |
@@ -273,6 +273,22 @@ class GkeysGPG(GPG): |
91 |
self.logger.info('GPG return code: ' + str(result.returncode)) |
92 |
return result |
93 |
|
94 |
+ def send_keys(self, gkey): |
95 |
+ '''Send gkey to keyserver |
96 |
+ @param gkey: the gkey to be sent to the server |
97 |
+ @return: GKEY_CHECK instance |
98 |
+ ''' |
99 |
+ self.config.defaults['gpg_defaults'].append('--no-permission-warning') |
100 |
+ self.set_keyserver() |
101 |
+ self.set_keydir(gkey.keydir, 'send-keys', reset=True) |
102 |
+ self.set_keyring('pubring.gpg', 'send-keys', reset=False) |
103 |
+ self.set_keyseedfile(refresh=True) |
104 |
+ self.logger.debug("LIB: send-keys, gkey: %s" % str(gkey)) |
105 |
+ self.logger.debug("** Calling runGPG with Running 'gpg %s --send-keys' for: %s" |
106 |
+ % (' '.join(self.config.get_key('tasks', 'send-keys')), str(gkey))) |
107 |
+ result = self.runGPG(task='send-keys', inputfile='') |
108 |
+ self.logger.info('GPG return code: ' + str(result.returncode)) |
109 |
+ return result |
110 |
|
111 |
def check_keys(self, keydir, keyid, result=None): |
112 |
'''Check specified or all keys based on the seed type |