Gentoo Archives: gentoo-commits

From: Brian Dolbec <dolsen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-keys:gsoc-2016 commit in: gkeys/gkeys/
Date: Sat, 24 Dec 2016 09:41:22
Message-Id: 1482572365.89d64ec041b3f4ce51d339e252073bf38bb77206.dolsen@gentoo
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