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