Skip to content

Commit 8dbe6d1

Browse files
committed
Slightly simplify BuildResults
1 parent 1a7f80d commit 8dbe6d1

File tree

1 file changed

+6
-31
lines changed

1 file changed

+6
-31
lines changed

lib/OpenQA/BuildResults.pm

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ use Sort::Versions;
1515
use Time::Seconds;
1616

1717
sub init_job_figures ($job_result) {
18-
1918
# relevant distributions for the build (hash is used as a set)
2019
$job_result->{distris} = {};
21-
2220
# number of passed/failed/... jobs
2321
$job_result->{passed} = 0;
2422
$job_result->{failed} = 0;
@@ -31,7 +29,6 @@ sub init_job_figures ($job_result) {
3129
}
3230

3331
sub count_job ($job, $jr, $labels) {
34-
3532
$jr->{total}++;
3633
if ($job->state eq OpenQA::Jobs::Constants::DONE) {
3734
if ($job->result eq OpenQA::Jobs::Constants::PASSED) {
@@ -69,18 +66,15 @@ sub count_job ($job, $jr, $labels) {
6966
}
7067

7168
sub add_review_badge ($build_res) {
72-
7369
$build_res->{all_passed} = $build_res->{passed} + $build_res->{softfailed} >= $build_res->{total} ? 1 : 0;
7470
$build_res->{reviewed} = $build_res->{labeled} >= $build_res->{failed} ? 1 : 0;
7571
$build_res->{commented} = $build_res->{comments} >= $build_res->{failed} ? 1 : 0;
7672
}
7773

7874
sub filter_subgroups ($group, $subgroup_filter) {
79-
8075
my @group_ids;
8176
my @children;
8277
my $group_name = $group->name;
83-
8478
for my $child ($group->children) {
8579
my $full_name = $child->full_name;
8680
if (grep { $_ eq '' || regex_match($_, $full_name) } @$subgroup_filter) {
@@ -95,29 +89,24 @@ sub filter_subgroups ($group, $subgroup_filter) {
9589
}
9690

9791
sub find_child_groups ($group, $subgroup_filter) {
98-
9992
# handle regular (non-parent) groups
10093
return {
10194
group_ids => [$group->id],
10295
children => [],
10396
} unless $group->can('children');
104-
10597
# handle simple case where no filter for subgroups present
10698
return {
10799
group_ids => $group->child_group_ids,
108100
children => [$group->children],
109101
} unless @$subgroup_filter;
110-
111102
return filter_subgroups($group, $subgroup_filter);
112103
}
113104

114105
sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_filter, $show_tags) {
115-
116106
# find relevant child groups taking filter into account
117107
my $child_groups = find_child_groups($group, $subgroup_filter);
118108
my $group_ids = $child_groups->{group_ids};
119109
my $children = $child_groups->{children};
120-
121110
my @sorted_results;
122111
my %result = (
123112
build_results => \@sorted_results,
@@ -127,11 +116,7 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
127116
id => $group->id,
128117
name => $group->name
129118
});
130-
131-
if (defined($limit) && int($limit) <= 0) {
132-
return \%result;
133-
}
134-
119+
return \%result if defined($limit) && int($limit) <= 0;
135120
# build sorting
136121
my $buildver_sort_mode = BUILD_SORT_BY_NAME;
137122
$buildver_sort_mode = $group->build_version_sort if $group->can('build_version_sort');
@@ -147,11 +132,8 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
147132
rows => $row_limit
148133
);
149134
my %search_filter = (group_id => {in => $group_ids});
150-
if ($time_limit_days) {
151-
$search_filter{t_created}
152-
= {'>' => time2str('%Y-%m-%d %H:%M:%S', time - ONE_DAY * $time_limit_days, 'UTC')};
153-
}
154-
135+
$search_filter{t_created} = {'>' => time2str('%Y-%m-%d %H:%M:%S', time - ONE_DAY * $time_limit_days, 'UTC')}
136+
if $time_limit_days;
155137
# add search filter for tags
156138
# caveat: a tag that references only a build, not including a version, might be ambiguous
157139
if ($tags) {
@@ -165,7 +147,6 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
165147
$search_filter{BUILD} = {-in => \@builds};
166148
$search_filter{VERSION} = {-in => \@versions} if @versions;
167149
}
168-
169150
# find relevant builds
170151
my $jobs_resultset = $group->result_source->schema->resultset('Jobs');
171152
my @builds = $jobs_resultset->search(\%search_filter, \%search_opts)->all;
@@ -175,16 +156,13 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
175156
$build->{key} = join('-', $version, $buildnr);
176157
$versions_per_build{$buildnr}->{$version} = 1;
177158
}
178-
if ($buildver_sort_mode == BUILD_SORT_BY_NAME) {
179-
@builds = reverse sort { versioncmp($a->{key}, $b->{key}); } @builds;
180-
}
181-
159+
@builds = reverse sort { versioncmp($a->{key}, $b->{key}); } @builds
160+
if $buildver_sort_mode == BUILD_SORT_BY_NAME;
182161
my $max_jobs = 0;
183162
my $now = DateTime->now;
184163
my $newest = ($buildver_sort_mode == BUILD_SORT_BY_OLDEST_JOB || $buildver_sort_mode == BUILD_SORT_BY_NAME) ? 0 : 1;
185164
for my $build (@builds) {
186165
last if defined($limit) && (--$limit < 0);
187-
188166
my ($version, $buildnr) = ($build->VERSION, $build->BUILD);
189167
my $jobs = $jobs_resultset->search(
190168
{
@@ -201,10 +179,7 @@ sub compute_build_results ($group, $limit, $time_limit_days, $tags, $subgroup_fi
201179
version_count => scalar keys %{$versions_per_build{$buildnr}},
202180
);
203181
init_job_figures(\%jr);
204-
for my $child (@$children) {
205-
init_job_figures($jr{children}->{$child->id} = {});
206-
}
207-
182+
init_job_figures($jr{children}->{$_->id} = {}) for @$children;
208183
my %seen;
209184
my @jobs = map {
210185
my $key = $_->TEST . '-' . $_->ARCH . '-' . $_->FLAVOR . '-' . ($_->MACHINE // '');

0 commit comments

Comments
 (0)