[dak/master] generate_releases: separate hashfile table update from hardlink creation
This way we only touch the filesystem after the db is updated.
Signed-off-by: Julien Cristau <jcristau@debian.org>
---
dak/generate_releases.py | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dak/generate_releases.py b/dak/generate_releases.py
index d947def..34103f7 100755
--- a/dak/generate_releases.py
+++ b/dak/generate_releases.py
@@ -390,7 +390,16 @@ class ReleaseWriter(object):
INSERT INTO hashfile (path, suite_id)
VALUES (:p, :id)''',
{'p': hashfile, 'id': suite.suite_id})
+ session.commit()
+ for filename in fileinfo:
+ if not os.path.exists(filename):
+ # probably an uncompressed index we didn't generate
+ continue
+
+ for h in hashes:
+ field = h.release_field
+ hashfile = os.path.join(os.path.dirname(filename), 'by-hash', field, fileinfo[filename][field])
try:
os.makedirs(os.path.dirname(hashfile))
except OSError as exc:
@@ -402,7 +411,6 @@ class ReleaseWriter(object):
if exc.errno != errno.EEXIST:
raise
- session.commit()
sign_release_dir(suite, os.path.dirname(outfile))
--
2.1.4
Reply to: