]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/policy.py
daklib/archive.py: also ignore files from .changes that do not exist
[dak.git] / daklib / policy.py
index 78d58d67aaa2f1cb5ced663e8b7365cbabca1e0e..eef18a4f343f4bde8fe8f17bb1900d4b2d2893d0 100644 (file)
 """module to process policy queue uploads"""
 
 from .config import Config
-from .dbconn import BinaryMetadata, Component, MetadataKey, Override, OverrideType
+from .dbconn import BinaryMetadata, Component, MetadataKey, Override, OverrideType, get_mapped_component
 from .fstransactions import FilesystemTransaction
 from .regexes import re_file_changes, re_file_safe
+import daklib.utils as utils
 
 import errno
 import os
@@ -126,18 +127,20 @@ class PolicyQueueUploadHandler(object):
     def _source_override(self, component_name):
         package = self.upload.source.source
         suite = self._overridesuite
+        component = get_mapped_component(component_name, self.session)
         query = self.session.query(Override).filter_by(package=package, suite=suite) \
             .join(OverrideType).filter(OverrideType.overridetype == 'dsc') \
-            .join(Component).filter(Component.component_name == component_name)
+            .filter(Override.component == component)
         return query.first()
 
     def _binary_override(self, binary, component_name):
         package = binary.package
         suite = self._overridesuite
         overridetype = binary.binarytype
+        component = get_mapped_component(component_name, self.session)
         query = self.session.query(Override).filter_by(package=package, suite=suite) \
             .join(OverrideType).filter(OverrideType.overridetype == overridetype) \
-            .join(Component).filter(Component.component_name == component_name)
+            .filter(Override.component == component)
         return query.first()
 
     def _binary_metadata(self, binary, key):
@@ -178,6 +181,8 @@ class PolicyQueueUploadHandler(object):
         @type  reason: str
         @param reason: reason for the rejection
         """
+        cnf = Config()
+
         fn1 = 'REJECT.{0}'.format(self._changes_prefix)
         assert re_file_safe.match(fn1)
 
@@ -185,6 +190,7 @@ class PolicyQueueUploadHandler(object):
         try:
             fh = os.open(fn, os.O_CREAT | os.O_EXCL | os.O_WRONLY)
             os.write(fh, 'NOTOK\n')
+            os.write(fh, 'From: {0} <{1}>\n\n'.format(utils.whoami(), cnf['Dinstall::MyAdminAddress']))
             os.write(fh, reason)
             os.close(fh)
         except OSError as e: