[dak/master 09/11] deal with orig's we have in the DB which are references in the changes file but not there (e.g. security uploads)
Signed-off-by: Mark Hymers <mhy@debian.org>
---
daklib/queue.py | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/daklib/queue.py b/daklib/queue.py
index a01a1e5..1a1199e 100755
--- a/daklib/queue.py
+++ b/daklib/queue.py
@@ -288,6 +288,8 @@ class Upload(object):
self.warnings = []
self.notes = []
+ self.later_check_files = []
+
self.pkg.reset()
def package_info(self):
@@ -820,8 +822,7 @@ class Upload(object):
for f in file_keys:
ret = holding.copy_to_holding(f)
if ret is not None:
- # XXX: Should we bail out here or try and continue?
- self.rejects.append(ret)
+ self.warnings.append('Could not copy %s to holding; will attempt to find in DB later' % f)
os.chdir(cwd)
@@ -863,7 +864,9 @@ class Upload(object):
if os.path.exists(f):
self.rejects.append("Can't read `%s'. [permission denied]" % (f))
else:
- self.rejects.append("Can't read `%s'. [file not found]" % (f))
+ # Don't directly reject, mark to check later to deal with orig's
+ # we can find in the pool
+ self.later_check_files.append(f)
entry["type"] = "unreadable"
continue
@@ -1008,6 +1011,10 @@ class Upload(object):
self.check_dsc_against_db(dsc_filename, session)
session.close()
+ # Finally, check if we're missing any files
+ for f in self.later_check_files:
+ self.rejects.append("Could not find file %s references in changes" % f)
+
return True
###########################################################################
@@ -2439,6 +2446,13 @@ distribution."""
orig_files[dsc_name]["path"] = os.path.join(i.location.path, i.filename)
match = 1
+ # Don't bitch that we couldn't find this file later
+ try:
+ self.later_check_files.remove(dsc_name)
+ except ValueError:
+ pass
+
+
if not match:
self.rejects.append("can not overwrite existing copy of '%s' already in the archive." % (dsc_name))
--
1.6.3.3
Reply to: