given by the C{directory} attribute. The copy will be removed on leaving
the with-block.
"""
- def __init__(self, upload):
+ def __init__(self, upload, group=None):
"""initializer
@type upload: L{daklib.dbconn.PolicyQueueUpload}
self.directory = None
self.upload = upload
+ self.group = group
def export(self, directory, mode=None, symlink=True, ignore_existing=False):
"""export a copy of the upload
def __enter__(self):
assert self.directory is None
+ mode = 0o0700
+ symlink = True
+ if self.group is not None:
+ mode = 0o2750
+ symlink = False
+
cnf = Config()
- self.directory = tempfile.mkdtemp(dir=cnf.get('Dir::TempPath'))
- self.export(self.directory, symlink=True)
+ self.directory = utils.temp_dirname(parent=cnf.get('Dir::TempPath'),
+ mode=mode,
+ group=self.group)
+ self.export(self.directory, symlink=symlink)
return self
def __exit__(self, *args):
fn = os.path.join(self.upload.policy_queue.path, 'COMMENTS', fn1)
try:
- fh = os.open(fn, os.O_CREAT | os.O_EXCL | os.O_WRONLY)
+ fh = os.open(fn, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o644)
os.write(fh, 'NOTOK\n')
os.write(fh, 'From: {0} <{1}>\n\n'.format(utils.whoami(), cnf['Dinstall::MyAdminAddress']))
os.write(fh, reason)
))
components.add(component)
+ source = self.upload.source
source_component = '(unknown)'
- for component in ('main', 'contrib', 'non-free'):
+ for component, in self.session.query(Component.component_name).order_by(Component.ordering):
if component in components:
source_component = component
break
+ else:
+ if source is not None:
+ if self._source_override(component) is not None:
+ source_component = component
+ break
- source = self.upload.source
if source is not None:
override = self._source_override(source_component)
if override is None: