diff options
author | 2015-01-09 13:04:04 -0800 | |
---|---|---|
committer | 2015-04-20 10:49:44 -0700 | |
commit | 8afad8720eea5e69c9247fe207c9cd8e20a2a0e6 (patch) | |
tree | 516974ee3ed9f3a71c28c4260371567ca21f5a19 /gkeys/gkeys/lib.py | |
parent | gkeyldap/actions.py: Ignore 'undefined' for the keyid,longkeyid fields. (diff) | |
download | gentoo-keys-8afad8720eea5e69c9247fe207c9cd8e20a2a0e6.tar.gz gentoo-keys-8afad8720eea5e69c9247fe207c9cd8e20a2a0e6.tar.bz2 gentoo-keys-8afad8720eea5e69c9247fe207c9cd8e20a2a0e6.zip |
gkeys: remove-key refactoring
Update the remove-key action to use the proper installed db.
Populate the del_key, del_keydir functions in lib.py
Diffstat (limited to 'gkeys/gkeys/lib.py')
-rw-r--r-- | gkeys/gkeys/lib.py | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/gkeys/gkeys/lib.py b/gkeys/gkeys/lib.py index 9687c24..3eb267c 100644 --- a/gkeys/gkeys/lib.py +++ b/gkeys/gkeys/lib.py @@ -19,9 +19,10 @@ with gentoo-keys specific convienience functions. # for py 2.6 compatibility from __future__ import print_function - +import os from os.path import abspath, pardir from os.path import join as pjoin +from shutil import rmtree from pyGPG.gpg import GPG from gkeys.checks import KeyChecks @@ -165,18 +166,40 @@ class GkeysGPG(GPG): return results - def del_key(self, gkey, keydir): - '''Delete the specified key in the specified keydir + def del_key(self, gkey, key): + '''Delete the specified key @param gkey: GKEY namedtuple with (name, nick, keydir, fingerprint) + @param key: Fingerprint of the primary key to delete ''' - return [] + self.set_keydir(gkey.keydir, 'del-key', reset=True) + self.set_keyring('pubring.gpg', 'del-key', reset=False) + self.set_keyseedfile(refresh=True) + self.logger.debug("LIB: del_key, gkey: %s" % str(gkey)) + self.logger.debug("LIB: del_key, key: %s" % key) + self.logger.debug("** Calling runGPG with: 'gpg %s --delete-keys' for: %s" + % (' '.join(self.config.get_key('tasks', 'delete-keys')), str(gkey))) + result = self.runGPG(task='delete-keys', inputfile=key) + self.logger.info('GPG return code: ' + str(result.returncode)) + self.update_gkey(gkey, save=True) + return (False, []) - def del_keydir(self, keydir): + def del_keydir(self, gkey): '''Delete the specified keydir + + @param gkey: GKEY namedtuple with (name, nick, keydir, fingerprint) ''' - return [] + rm_candidate = os.path.join(self.basedir, gkey.keydir) + success = False + messages = [] + try: + rmtree(rm_candidate) + messages.append("Done removing %s key." % gkey.nick) + success = True + except OSError: + messages.append("%s directory does not exist or is a symbolic link." % rm_candidate) + return (success, messages) def refresh_key(self, gkey): |