From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 380D2138334 for ; Sat, 7 Jul 2018 05:24:05 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 46B43E0BB8; Sat, 7 Jul 2018 05:23:57 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id DA2F2E0B9E for ; Sat, 7 Jul 2018 05:23:56 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 5F379335CA5 for ; Sat, 7 Jul 2018 05:23:55 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 4D7C4372 for ; Sat, 7 Jul 2018 05:23:51 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1530940933.653d1b0c231ee789a294d040a67cef141bb11cc0.dolsen@gentoo> Subject: [gentoo-commits] proj/gentoo-keys:master commit in: gkeys/gkeys/ X-VCS-Repository: proj/gentoo-keys X-VCS-Files: gkeys/gkeys/seedhandler.py X-VCS-Directories: gkeys/gkeys/ X-VCS-Committer: dolsen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: 653d1b0c231ee789a294d040a67cef141bb11cc0 X-VCS-Branch: master Date: Sat, 7 Jul 2018 05:23:51 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 44f595f4-07e0-4561-ba78-be29f0874d4f X-Archives-Hash: 935d6d5a55d270433b18363b23920bd0 commit: 653d1b0c231ee789a294d040a67cef141bb11cc0 Author: Brian Dolbec gentoo org> AuthorDate: Thu Jul 5 17:51:36 2018 +0000 Commit: Brian Dolbec gentoo org> CommitDate: Sat Jul 7 05:22:13 2018 +0000 URL: https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=653d1b0c gkeys seedhandler.py: Simplify code, let verify() handle fetching Signed-off-by: Brian Dolbec gentoo.org> gkeys/gkeys/seedhandler.py | 68 ++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/gkeys/gkeys/seedhandler.py b/gkeys/gkeys/seedhandler.py index cb082ef..a7bfbaa 100644 --- a/gkeys/gkeys/seedhandler.py +++ b/gkeys/gkeys/seedhandler.py @@ -24,6 +24,7 @@ demandload( "json:load", "gkeys.exception:UpdateDbError", "gkeys.fileops:ensure_dirs", + "gkeys.fileops:updateseeds", "gkeys.fetch:Fetch", "sslfetch.connections:get_timestamp", ) @@ -170,9 +171,10 @@ class SeedHandler(object): if category == 'sign': catdir = self.config.get_key('sign-keydir') else: - keyrings = self.config.get_key('keyring') - catdir = os.path.join(keyrings, category) - self.logger.debug("SeedHandler: load_category; catdir = %s" % catdir) + #keyrings = self.config.get_key('keyring') + #catdir = os.path.join(keyrings, category) + catdir = self.config.get_key('keyrings', category) + self.logger.debug("SeedHandler: load_category; catdir = %s", catdir) try: if not nicks: nicks = os.listdir(catdir) @@ -185,11 +187,14 @@ class SeedHandler(object): try: with open(gkey_path, 'r') as fileseed: seed = load(fileseed) + self.logger.debug("SeedHandler: load_category; loaded seed file %s.", + gkey_path) except IOError as error: - self.logger.debug("SeedHandler: load_category; IOError loading seed file %s." - % gkey_path) + self.logger.debug("SeedHandler: load_category; IOError loading seed file %s.", + gkey_path) self.logger.debug("Error was: %s" % str(error)) if seed: + self.logger.debug("SeedHandler: load_category; processing seeds: %s", seed) for nick in sorted(seed): key = seed[nick] # GKEY class change auto-update @@ -206,6 +211,7 @@ class SeedHandler(object): self.logger.debug("SeedHandler: load_category; OSError for %s" % catdir) self.logger.exception("Error was: %s" % str(error)) self.seeds = seeds + self.logger.debug("SeedHandler: load_category; seeds loaded: %s", seeds) return seeds def fetch_seeds(self, seeds, args, verified_dl=None): @@ -231,44 +237,40 @@ class SeedHandler(object): except KeyError: pass succeeded = [] - seedsdir = os.path.join(self.config.get_key('seedsdir')) + seedsdir = os.path.dirname(self.config.get_key('seeds', seeds)) updatedir = os.path.join(seedsdir, "__updates__") mode = int(self.config.get_key('permissions', 'directories'),0) ensure_dirs(updatedir, mode=mode) self.update_lock = LockDir(updatedir) self.update_lock.write_lock() - fetcher = Fetch(self.logger) for (seed, url, filepath) in urls: tmppath = os.path.join(updatedir, os.path.split(filepath)[-1]) # use the real timestamp file for the dl timestamp tpath = filepath + ".timestamp" - # verify the re-fetch cycle timer - if fetcher.verify_cycle(tpath, climit=60): - timestamp = get_timestamp(filepath + ".timestamp") - success, msgs = fetcher.fetch_url(url, tmppath, timestamp=timestamp) - messages.extend(msgs) - if success: - verify_info = self.config.get_key('verify-seeds', seed).split() - args.category = verify_info[0] - args.nick = verify_info[1] - args.filename = url - args.signature = tmppath + ".timestamp" - #args.timestamp = True - args.destination = tmppath - verified, messages_ = verified_dl(args) - messages.append(messages_) - if verified and not args.fetchonly: - self.seedsdir_lock = LockDir(seedsdir) - if updateseeds(tmppath, filepath) and updateseeds(args.signature, tpath): - self.logger.info("Updated seed file...: %s ... OK" % (filepath)) - succeeded.append(verified) - else: - self.logger.info("Updating seed file...: %s ... Failed" % (filepath)) - succeeded.append(False) - self.seedsdir_lock.unlock() + verify_info = self.config.get_key('verify-seeds', seed).split() + args.category = verify_info[0] + args.nick = verify_info[1] + args.filename = url + args.signature = tmppath + ".sig" + args.timestamp = tpath + args.destination = tmppath + args.fetchonly = False + verified, messages_ = verified_dl(args) + messages.append(messages_) + if verified and not args.fetchonly: + self.seedsdir_lock = LockDir(seedsdir) + if (updateseeds(self.config, self.logger, tmppath, filepath) and + updateseeds(self.config, self.logger, args.signature, tpath) + ): + self.logger.info("Updated seed file...: %s ... OK" % (filepath)) + succeeded.append(verified) else: - # sha512sum the 2 files - pass + self.logger.info("Updating seed file...: %s ... Failed" % (filepath)) + succeeded.append(False) + self.seedsdir_lock.unlock() + else: + # sha512sum the 2 files + pass self.update_lock.unlock() return (succeeded, messages)