Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
喜羊羊3508
Dak
提交
11812c97
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,发现更多精彩内容 >>
提交
11812c97
编写于
6月 06, 2015
作者:
N
Niels Thykier
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move two queries from cruft_report to daklib/cruft
Signed-off-by:
N
Niels Thykier
<
niels@thykier.net
>
上级
6ff8b512
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
109 addition
and
104 deletion
+109
-104
dak/cruft_report.py
dak/cruft_report.py
+1
-104
daklib/cruft.py
daklib/cruft.py
+108
-0
未找到文件。
dak/cruft_report.py
浏览文件 @
11812c97
...
@@ -209,29 +209,9 @@ def do_newer_version(lowersuite_name, highersuite_name, code, session):
...
@@ -209,29 +209,9 @@ def do_newer_version(lowersuite_name, highersuite_name, code, session):
################################################################################
################################################################################
def
queryWithoutSource
(
suite_id
,
session
):
"""searches for arch: all packages from suite that do no longer
reference a source package in the same suite
subquery unique_binaries: selects all packages with only 1 version
in suite since 'dak rm' does not allow to specify version numbers"""
query
=
"""
with unique_binaries as
(select package, max(version) as version, max(source) as source
from bin_associations_binaries
where architecture = 2 and suite = :suite_id
group by package having count(*) = 1)
select ub.package, ub.version
from unique_binaries ub
left join src_associations_src sas
on ub.source = sas.src and sas.suite = :suite_id
where sas.id is null
order by ub.package"""
return
session
.
execute
(
query
,
{
'suite_id'
:
suite_id
})
def
reportWithoutSource
(
suite_name
,
suite_id
,
session
,
rdeps
=
False
):
def
reportWithoutSource
(
suite_name
,
suite_id
,
session
,
rdeps
=
False
):
rows
=
query
WithoutS
ource
(
suite_id
,
session
)
rows
=
query
_without_s
ource
(
suite_id
,
session
)
title
=
'packages without source in suite %s'
%
suite_name
title
=
'packages without source in suite %s'
%
suite_name
if
rows
.
rowcount
>
0
:
if
rows
.
rowcount
>
0
:
print
'%s
\n
%s
\n
'
%
(
title
,
'-'
*
len
(
title
))
print
'%s
\n
%s
\n
'
%
(
title
,
'-'
*
len
(
title
))
...
@@ -284,90 +264,7 @@ def reportNewerAll(suite_name, session):
...
@@ -284,90 +264,7 @@ def reportNewerAll(suite_name, session):
print
" dak rm -m %s -s %s -a %s -p -b %s
\n
"
%
\
print
" dak rm -m %s -s %s -a %s -p -b %s
\n
"
%
\
(
message
,
suite_name
,
oldarch
,
package
)
(
message
,
suite_name
,
oldarch
,
package
)
def
queryNBS
(
suite_id
,
session
):
"""This one is really complex. It searches arch != all packages that
are no longer built from current source packages in suite.
temp table unique_binaries: will be populated with packages that
have only one version in suite because 'dak rm' does not allow
specifying version numbers
temp table newest_binaries: will be populated with packages that are
built from current sources
subquery uptodate_arch: returns all architectures built from current
sources
subquery unique_binaries_uptodate_arch: returns all packages in
architectures from uptodate_arch
subquery unique_binaries_uptodate_arch_agg: same as
unique_binaries_uptodate_arch but with column architecture
aggregated to array
subquery uptodate_packages: similar to uptodate_arch but returns all
packages built from current sources
subquery outdated_packages: returns all packages with architectures
no longer built from current source
"""
query
=
"""
create temp table unique_binaries (
package text not null,
architecture integer not null,
source integer not null);
insert into unique_binaries
select bab.package, bab.architecture, max(bab.source)
from bin_associations_binaries bab
where bab.suite = :suite_id and bab.architecture > 2
group by package, architecture having count(*) = 1;
create temp table newest_binaries (
package text not null,
architecture integer not null,
source text not null,
version debversion not null);
insert into newest_binaries
select ub.package, ub.architecture, nsa.source, nsa.version
from unique_binaries ub
join newest_src_association nsa
on ub.source = nsa.src and nsa.suite = :suite_id;
with uptodate_arch as
(select architecture, source, version
from newest_binaries
group by architecture, source, version),
unique_binaries_uptodate_arch as
(select ub.package, ub.architecture, ua.source, ua.version
from unique_binaries ub
join source s
on ub.source = s.id
join uptodate_arch ua
on ub.architecture = ua.architecture and s.source = ua.source),
unique_binaries_uptodate_arch_agg as
(select ubua.package,
array(select unnest(array_agg(a.arch_string)) order by 1) as arch_list,
ubua.source, ubua.version
from unique_binaries_uptodate_arch ubua
join architecture a
on ubua.architecture = a.id
group by ubua.source, ubua.version, ubua.package),
uptodate_packages as
(select package, source, version
from newest_binaries
group by package, source, version),
outdated_packages as
(select array(select unnest(array_agg(package)) order by 1) as pkg_list,
arch_list, source, version
from unique_binaries_uptodate_arch_agg
where package not in
(select package from uptodate_packages)
group by arch_list, source, version)
select * from outdated_packages order by source"""
return
session
.
execute
(
query
,
{
'suite_id'
:
suite_id
})
def
reportNBS
(
suite_name
,
suite_id
,
rdeps
=
False
):
def
reportNBS
(
suite_name
,
suite_id
,
rdeps
=
False
):
session
=
DBConn
().
session
()
session
=
DBConn
().
session
()
...
...
daklib/cruft.py
浏览文件 @
11812c97
...
@@ -121,3 +121,111 @@ def report_multiple_source(suite):
...
@@ -121,3 +121,111 @@ def report_multiple_source(suite):
if
binary
.
has_multiple_sources
():
if
binary
.
has_multiple_sources
():
print
binary
print
binary
print
print
def
query_without_source
(
suite_id
,
session
):
"""searches for arch: all packages from suite that do no longer
reference a source package in the same suite
subquery unique_binaries: selects all packages with only 1 version
in suite since 'dak rm' does not allow to specify version numbers"""
query
=
"""
with unique_binaries as
(select package, max(version) as version, max(source) as source
from bin_associations_binaries
where architecture = 2 and suite = :suite_id
group by package having count(*) = 1)
select ub.package, ub.version
from unique_binaries ub
left join src_associations_src sas
on ub.source = sas.src and sas.suite = :suite_id
where sas.id is null
order by ub.package"""
return
session
.
execute
(
query
,
{
'suite_id'
:
suite_id
})
def
queryNBS
(
suite_id
,
session
):
"""This one is really complex. It searches arch != all packages that
are no longer built from current source packages in suite.
temp table unique_binaries: will be populated with packages that
have only one version in suite because 'dak rm' does not allow
specifying version numbers
temp table newest_binaries: will be populated with packages that are
built from current sources
subquery uptodate_arch: returns all architectures built from current
sources
subquery unique_binaries_uptodate_arch: returns all packages in
architectures from uptodate_arch
subquery unique_binaries_uptodate_arch_agg: same as
unique_binaries_uptodate_arch but with column architecture
aggregated to array
subquery uptodate_packages: similar to uptodate_arch but returns all
packages built from current sources
subquery outdated_packages: returns all packages with architectures
no longer built from current source
"""
query
=
"""
create temp table unique_binaries (
package text not null,
architecture integer not null,
source integer not null);
insert into unique_binaries
select bab.package, bab.architecture, max(bab.source)
from bin_associations_binaries bab
where bab.suite = :suite_id and bab.architecture > 2
group by package, architecture having count(*) = 1;
create temp table newest_binaries (
package text not null,
architecture integer not null,
source text not null,
version debversion not null);
insert into newest_binaries
select ub.package, ub.architecture, nsa.source, nsa.version
from unique_binaries ub
join newest_src_association nsa
on ub.source = nsa.src and nsa.suite = :suite_id;
with uptodate_arch as
(select architecture, source, version
from newest_binaries
group by architecture, source, version),
unique_binaries_uptodate_arch as
(select ub.package, ub.architecture, ua.source, ua.version
from unique_binaries ub
join source s
on ub.source = s.id
join uptodate_arch ua
on ub.architecture = ua.architecture and s.source = ua.source),
unique_binaries_uptodate_arch_agg as
(select ubua.package,
array(select unnest(array_agg(a.arch_string)) order by 1) as arch_list,
ubua.source, ubua.version
from unique_binaries_uptodate_arch ubua
join architecture a
on ubua.architecture = a.id
group by ubua.source, ubua.version, ubua.package),
uptodate_packages as
(select package, source, version
from newest_binaries
group by package, source, version),
outdated_packages as
(select array(select unnest(array_agg(package)) order by 1) as pkg_list,
arch_list, source, version
from unique_binaries_uptodate_arch_agg
where package not in
(select package from uptodate_packages)
group by arch_list, source, version)
select * from outdated_packages order by source"""
return
session
.
execute
(
query
,
{
'suite_id'
:
suite_id
})
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录