Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
喜羊羊3508
Dak
提交
3df860e9
D
Dak
项目概览
喜羊羊3508
/
Dak
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Dak
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3df860e9
编写于
8月 08, 2009
作者:
M
Mark Hymers
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
convert p-a to use new SQL API
Signed-off-by:
N
Mark Hymers
<
mhy@debian.org
>
上级
fcb5dd60
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
508 addition
and
409 deletion
+508
-409
dak/process_accepted.py
dak/process_accepted.py
+415
-409
daklib/queue.py
daklib/queue.py
+93
-0
未找到文件。
dak/process_accepted.py
浏览文件 @
3df860e9
此差异已折叠。
点击以展开。
daklib/queue.py
浏览文件 @
3df860e9
...
...
@@ -2080,6 +2080,99 @@ distribution."""
if
actual_size
!=
int
(
dsc_entry
[
"size"
]):
self
.
rejects
.
append
(
"size for %s doesn't match %s."
%
(
found
,
file
))
################################################################################
def
accepted_checks
(
self
,
overwrite_checks
=
True
,
session
=
None
):
# Recheck anything that relies on the database; since that's not
# frozen between accept and our run time when called from p-a.
# overwrite_checks is set to False when installing to stable/oldstable
if
session
is
None
:
session
=
DBConn
().
session
()
propogate
=
{}
nopropogate
=
{}
for
checkfile
in
self
.
pkg
.
files
.
keys
():
# The .orig.tar.gz can disappear out from under us is it's a
# duplicate of one in the archive.
if
not
self
.
pkg
.
files
.
has_key
(
checkfile
):
continue
entry
=
self
.
pkg
.
files
[
checkfile
]
# Check that the source still exists
if
entry
[
"type"
]
==
"deb"
:
source_version
=
entry
[
"source version"
]
source_package
=
entry
[
"source package"
]
if
not
self
.
pkg
.
changes
[
"architecture"
].
has_key
(
"source"
)
\
and
not
source_exists
(
source_package
,
source_version
,
self
.
pkg
.
changes
[
"distribution"
].
keys
()):
self
.
rejects
.
append
(
"no source found for %s %s (%s)."
%
(
source_package
,
source_version
,
checkfile
))
# Version and file overwrite checks
if
overwrite_checks
:
if
entry
[
"type"
]
==
"deb"
:
self
.
check_binary_against_db
(
checkfile
,
session
)
elif
entry
[
"type"
]
==
"dsc"
:
self
.
check_source_against_db
(
checkfile
,
session
)
self
.
check_dsc_against_db
(
dsc_filename
,
session
)
# propogate in the case it is in the override tables:
for
suite
in
self
.
pkg
.
changes
.
get
(
"propdistribution"
,
{}).
keys
():
if
self
.
in_override_p
(
entry
[
"package"
],
entry
[
"component"
],
suite
,
entry
.
get
(
"dbtype"
,
""
),
checkfile
):
propogate
[
suite
]
=
1
else
:
nopropogate
[
suite
]
=
1
for
suite
in
propogate
.
keys
():
if
suite
in
nopropogate
:
continue
self
.
pkg
.
changes
[
"distribution"
][
suite
]
=
1
for
checkfile
in
self
.
pkg
.
files
.
keys
():
# Check the package is still in the override tables
for
suite
in
self
.
pkg
.
changes
[
"distribution"
].
keys
():
if
not
self
.
in_override_p
(
entry
[
"package"
],
entry
[
"component"
],
suite
,
entry
.
get
(
"dbtype"
,
""
),
checkfile
):
self
.
rejects
.
append
(
"%s is NEW for %s."
%
(
checkfile
,
suite
))
################################################################################
# This is not really a reject, but an unaccept, but since a) the code for
# that is non-trivial (reopen bugs, unannounce etc.), b) this should be
# extremely rare, for now we'll go with whining at our admin folks...
def
do_unaccept
(
self
):
cnf
=
Config
()
self
.
Subst
[
"__REJECTOR_ADDRESS__"
]
=
cnf
[
"Dinstall::MyEmailAddress"
]
self
.
Subst
[
"__REJECT_MESSAGE__"
]
=
self
.
package_info
()
self
.
Subst
[
"__CC__"
]
=
"Cc: "
+
cnf
[
"Dinstall::MyEmailAddress"
]
self
.
Subst
[
"__BCC__"
]
=
"X-DAK: dak process-accepted
\n
X-Katie: $Revision: 1.18 $"
if
cnf
.
has_key
(
"Dinstall::Bcc"
):
self
.
Subst
[
"__BCC__"
]
+=
"
\n
Bcc: %s"
%
(
cnf
[
"Dinstall::Bcc"
])
template
=
os
.
path
.
join
(
cnf
[
"Dir::Templates"
],
"process-accepted.unaccept"
)
reject_mail_message
=
utils
.
TemplateSubst
(
self
.
Subst
,
template
)
# Write the rejection email out as the <foo>.reason file
reason_filename
=
os
.
path
.
basename
(
self
.
pkg
.
changes_file
[:
-
8
])
+
".reason"
reject_filename
=
os
.
path
.
join
(
cnf
[
"Dir::Queue::Reject"
],
reason_filename
)
# If we fail here someone is probably trying to exploit the race
# so let's just raise an exception ...
if
os
.
path
.
exists
(
reject_filename
):
os
.
unlink
(
reject_filename
)
fd
=
os
.
open
(
reject_filename
,
os
.
O_RDWR
|
os
.
O_CREAT
|
os
.
O_EXCL
,
0644
)
os
.
write
(
fd
,
reject_mail_message
)
os
.
close
(
fd
)
utils
.
send_mail
(
reject_mail_message
)
del
self
.
Subst
[
"__REJECTOR_ADDRESS__"
]
del
self
.
Subst
[
"__REJECT_MESSAGE__"
]
del
self
.
Subst
[
"__CC__"
]
################################################################################
# If any file of an upload has a recent mtime then chances are good
# the file is still being uploaded.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录