Remove obsolete daklib/holding.py.

上级 e6c38ef3
......@@ -154,7 +154,6 @@ Dir
Override "/srv/security-master.debian.org/scripts/override/";
Upload "/srv/queued/ftpmaster/";
TempPath "/srv/security-master.debian.org/tmp";
Holding "/srv/security-master.debian.org/queue/holding/";
Done "/srv/security-master.debian.org/queue/done/";
Reject "/srv/security-master.debian.org/queue/reject/";
......
......@@ -221,7 +221,6 @@ Dir
UrgencyLog "/srv/release.debian.org/britney/input/urgencies/";
TempPath "/srv/ftp-master.debian.org/tmp/";
BTSVersionTrack "/srv/ftp-master.debian.org/queue/bts_version_track/";
Holding "/srv/ftp-master.debian.org/queue/holding/";
Done "/srv/ftp-master.debian.org/queue/done/";
Reject "/srv/ftp-master.debian.org/queue/reject/";
};
......
#!/usr/bin/env python
# vim:set et sw=4:
"""
Simple singleton class for storing info about Holding directory
@contact: Debian FTP Master <ftpmaster@debian.org>
@copyright: 2001 - 2006 James Troup <james@nocrew.org>
@copyright: 2009 Joerg Jaspert <joerg@debian.org>
@license: GNU General Public License version 2 or later
"""
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
###############################################################################
import os
from errno import ENOENT, EEXIST, EACCES
import shutil
from config import Config
from utils import fubar
###############################################################################
class Holding(object):
__shared_state = {}
def __init__(self, *args, **kwargs):
self.__dict__ = self.__shared_state
if not getattr(self, 'initialised', False):
self.initialised = True
self.in_holding = {}
self.holding_dir = Config()["Dir::Holding"]
# ftptrainees haven't access to holding, use a temp directory instead
if not os.access(self.holding_dir, os.W_OK):
self.holding_dir = Config()["Dir::TempPath"]
def chdir_to_holding(self):
os.chdir(self.holding_dir)
def copy_to_holding(self, filename):
base_filename = os.path.basename(filename)
dest = os.path.join(self.holding_dir, base_filename)
try:
fd = os.open(dest, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0o640)
os.close(fd)
except OSError as e:
# Shouldn't happen, but will if, for example, someone lists a
# file twice in the .changes.
if e.errno == EEXIST:
return "%s: already exists in holding area; can not overwrite." % (base_filename)
try:
shutil.copy(filename, dest)
except IOError as e:
# In either case (ENOENT or EACCES) we want to remove the
# O_CREAT | O_EXCLed ghost file, so add the file to the list
# of 'in holding' even if it's not the real file.
if e.errno == ENOENT:
os.unlink(dest)
return "%s: can not copy to holding area: file not found." % (base_filename)
elif e.errno == EACCES:
os.unlink(dest)
return "%s: can not copy to holding area: read permission denied." % (base_filename)
self.in_holding[base_filename] = ""
return None
def clean(self):
cwd = os.getcwd()
os.chdir(self.holding_dir)
for f in self.in_holding.keys():
# TODO: Sanitize path in a much better manner...
if os.path.exists(f):
if f.find('/') != -1:
fubar("WTF? clean_holding() got a file ('%s') with / in it!" % (f))
else:
os.unlink(f)
self.in_holding = {}
os.chdir(cwd)
......@@ -45,7 +45,6 @@ from dak_exceptions import *
from changes import *
from regexes import *
from config import Config
from holding import Holding
from urgencylog import UrgencyLog
from dbconn import *
from summarystats import SummaryStats
......
......@@ -200,10 +200,6 @@ Dir
//// is mainly used for britney (the testing script).
// UrgencyLog "/srv/dak/testing/urgencies/";
//// Holding (required): Directory to use for temporary storage during
//// process-upload
Holding "/srv/dak/queue/holding/";
//// Done (required): Directory in which to store processed .changes files
Done "/srv/dak/queue/done/";
......
......@@ -42,7 +42,6 @@ Dir
Log "__DAKBASE__/log/";
Lock "__DAKBASE__/lock/";
Morgue "__DAKBASE__/morgue/";
Holding "__DAKBASE__/holding/";
Done "__DAKBASE__/done/";
Reject "__DAKBASE__/reject/";
TempPath "__DAKBASE__/tmp/";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册