Gentoo Archives: gentoo-commits

From: Brian Dolbec <dolsen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-keys:master commit in: gkeys/gkeys/
Date: Sat, 07 Jul 2018 05:24:05
Message-Id: 1530940933.653d1b0c231ee789a294d040a67cef141bb11cc0.dolsen@gentoo
1 commit: 653d1b0c231ee789a294d040a67cef141bb11cc0
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jul 5 17:51:36 2018 +0000
4 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
5 CommitDate: Sat Jul 7 05:22:13 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=653d1b0c
7
8 gkeys seedhandler.py: Simplify code, let verify() handle fetching
9
10 Signed-off-by: Brian Dolbec <dolsen <AT> gentoo.org>
11
12 gkeys/gkeys/seedhandler.py | 68 ++++++++++++++++++++++++----------------------
13 1 file changed, 35 insertions(+), 33 deletions(-)
14
15 diff --git a/gkeys/gkeys/seedhandler.py b/gkeys/gkeys/seedhandler.py
16 index cb082ef..a7bfbaa 100644
17 --- a/gkeys/gkeys/seedhandler.py
18 +++ b/gkeys/gkeys/seedhandler.py
19 @@ -24,6 +24,7 @@ demandload(
20 "json:load",
21 "gkeys.exception:UpdateDbError",
22 "gkeys.fileops:ensure_dirs",
23 + "gkeys.fileops:updateseeds",
24 "gkeys.fetch:Fetch",
25 "sslfetch.connections:get_timestamp",
26 )
27 @@ -170,9 +171,10 @@ class SeedHandler(object):
28 if category == 'sign':
29 catdir = self.config.get_key('sign-keydir')
30 else:
31 - keyrings = self.config.get_key('keyring')
32 - catdir = os.path.join(keyrings, category)
33 - self.logger.debug("SeedHandler: load_category; catdir = %s" % catdir)
34 + #keyrings = self.config.get_key('keyring')
35 + #catdir = os.path.join(keyrings, category)
36 + catdir = self.config.get_key('keyrings', category)
37 + self.logger.debug("SeedHandler: load_category; catdir = %s", catdir)
38 try:
39 if not nicks:
40 nicks = os.listdir(catdir)
41 @@ -185,11 +187,14 @@ class SeedHandler(object):
42 try:
43 with open(gkey_path, 'r') as fileseed:
44 seed = load(fileseed)
45 + self.logger.debug("SeedHandler: load_category; loaded seed file %s.",
46 + gkey_path)
47 except IOError as error:
48 - self.logger.debug("SeedHandler: load_category; IOError loading seed file %s."
49 - % gkey_path)
50 + self.logger.debug("SeedHandler: load_category; IOError loading seed file %s.",
51 + gkey_path)
52 self.logger.debug("Error was: %s" % str(error))
53 if seed:
54 + self.logger.debug("SeedHandler: load_category; processing seeds: %s", seed)
55 for nick in sorted(seed):
56 key = seed[nick]
57 # GKEY class change auto-update
58 @@ -206,6 +211,7 @@ class SeedHandler(object):
59 self.logger.debug("SeedHandler: load_category; OSError for %s" % catdir)
60 self.logger.exception("Error was: %s" % str(error))
61 self.seeds = seeds
62 + self.logger.debug("SeedHandler: load_category; seeds loaded: %s", seeds)
63 return seeds
64
65 def fetch_seeds(self, seeds, args, verified_dl=None):
66 @@ -231,44 +237,40 @@ class SeedHandler(object):
67 except KeyError:
68 pass
69 succeeded = []
70 - seedsdir = os.path.join(self.config.get_key('seedsdir'))
71 + seedsdir = os.path.dirname(self.config.get_key('seeds', seeds))
72 updatedir = os.path.join(seedsdir, "__updates__")
73 mode = int(self.config.get_key('permissions', 'directories'),0)
74 ensure_dirs(updatedir, mode=mode)
75 self.update_lock = LockDir(updatedir)
76 self.update_lock.write_lock()
77 - fetcher = Fetch(self.logger)
78 for (seed, url, filepath) in urls:
79 tmppath = os.path.join(updatedir, os.path.split(filepath)[-1])
80 # use the real timestamp file for the dl timestamp
81 tpath = filepath + ".timestamp"
82 - # verify the re-fetch cycle timer
83 - if fetcher.verify_cycle(tpath, climit=60):
84 - timestamp = get_timestamp(filepath + ".timestamp")
85 - success, msgs = fetcher.fetch_url(url, tmppath, timestamp=timestamp)
86 - messages.extend(msgs)
87 - if success:
88 - verify_info = self.config.get_key('verify-seeds', seed).split()
89 - args.category = verify_info[0]
90 - args.nick = verify_info[1]
91 - args.filename = url
92 - args.signature = tmppath + ".timestamp"
93 - #args.timestamp = True
94 - args.destination = tmppath
95 - verified, messages_ = verified_dl(args)
96 - messages.append(messages_)
97 - if verified and not args.fetchonly:
98 - self.seedsdir_lock = LockDir(seedsdir)
99 - if updateseeds(tmppath, filepath) and updateseeds(args.signature, tpath):
100 - self.logger.info("Updated seed file...: %s ... OK" % (filepath))
101 - succeeded.append(verified)
102 - else:
103 - self.logger.info("Updating seed file...: %s ... Failed" % (filepath))
104 - succeeded.append(False)
105 - self.seedsdir_lock.unlock()
106 + verify_info = self.config.get_key('verify-seeds', seed).split()
107 + args.category = verify_info[0]
108 + args.nick = verify_info[1]
109 + args.filename = url
110 + args.signature = tmppath + ".sig"
111 + args.timestamp = tpath
112 + args.destination = tmppath
113 + args.fetchonly = False
114 + verified, messages_ = verified_dl(args)
115 + messages.append(messages_)
116 + if verified and not args.fetchonly:
117 + self.seedsdir_lock = LockDir(seedsdir)
118 + if (updateseeds(self.config, self.logger, tmppath, filepath) and
119 + updateseeds(self.config, self.logger, args.signature, tpath)
120 + ):
121 + self.logger.info("Updated seed file...: %s ... OK" % (filepath))
122 + succeeded.append(verified)
123 else:
124 - # sha512sum the 2 files
125 - pass
126 + self.logger.info("Updating seed file...: %s ... Failed" % (filepath))
127 + succeeded.append(False)
128 + self.seedsdir_lock.unlock()
129 + else:
130 + # sha512sum the 2 files
131 + pass
132 self.update_lock.unlock()
133 return (succeeded, messages)