Write email cache after every email sent.

master
Robert Bruce Park 7 years ago
parent 442993d3f0
commit 1b4828bfb3

@ -111,8 +111,8 @@ class EmailPolicy(BasePolicy, Rest):
for line in details.splitlines(): for line in details.splitlines():
parts = line.split(':') parts = line.split(':')
if parts[0] == 'info': if parts[0] == 'info':
assert int(parts[1]) == 1 # Version if int(parts[1]) != 1 or int(parts[2]) > 1:
assert int(parts[2]) <= 1 # Count break
if parts[0] == 'uid': if parts[0] == 'uid':
flags = parts[4] flags = parts[4]
if 'e' in flags or 'r' in flags: if 'e' in flags or 'r' in flags:
@ -185,12 +185,14 @@ class EmailPolicy(BasePolicy, Rest):
self.log("Failed to send mail! Is SMTP server running?") self.log("Failed to send mail! Is SMTP server running?")
self.log(err) self.log(err)
self.emails_by_pkg[source_name][version] = sent self.emails_by_pkg[source_name][version] = sent
self.save_state()
return PolicyVerdict.PASS return PolicyVerdict.PASS
def save_state(self, britney): def save_state(self, britney=None):
"""Write source ppa data to disk""" """Write source ppa data to disk"""
tmp = self.filename + '.tmp' tmp = self.filename + '.tmp'
with open(tmp, 'w', encoding='utf-8') as data: with open(tmp, 'w', encoding='utf-8') as data:
json.dump(self.emails_by_pkg, data) json.dump(self.emails_by_pkg, data)
os.rename(tmp, self.filename) os.rename(tmp, self.filename)
self.log("Wrote email data to %s" % self.filename) if britney:
self.log("Wrote email data to %s" % self.filename)

Loading…
Cancel
Save