Skip to content

Commit

Permalink
[backend] do not propagate med events to locked project
Browse files Browse the repository at this point in the history
  • Loading branch information
mlschroe committed Feb 14, 2019
1 parent 9d10156 commit 8ad9324
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/backend/BSSched/Lookat.pm
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ sub changed2lookat {
my $rprpdeps = $gctx->{'rprpdeps'};
for my $prp (keys %$changed_med) {
$lookat_next->{$prp} = 1;
$lookat_next->{$_} = 1 for @{$rprpdeps->{$prp} || []};
my $alllocked = $gctx->{'alllocked'};
$lookat_next->{$_} = 1 for grep {!$alllocked->{$_}} @{$rprpdeps->{$prp} || []};
}

#my $prpdeps = $gctx->{'prpdeps'};
Expand Down
16 changes: 16 additions & 0 deletions src/backend/BSSched/ProjPacks.pm
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,7 @@ sub setup_projects {
$gctx->{'channeldata'} = {};
$gctx->{'channelids'} = {};
$gctx->{'project_prps'} = {};
$gctx->{'alllocked'} = {};
} else {
for my $projid (@$projids_todo) {
# just updating some projects, delete all the entries we currently have
Expand All @@ -884,6 +885,7 @@ sub setup_projects {
delete $gctx->{'prpsearchpath'}->{$prp};
delete $gctx->{'prpdeps'}->{$prp};
delete $gctx->{'relatedprpdeps'}->{$prp};
delete $gctx->{'alllocked'}->{$prp};
}
# remove project from various projid indexed hashes
delete $gctx->{'expandedprojlink'}->{$projid};
Expand Down Expand Up @@ -1027,6 +1029,20 @@ sub setup_projects {
# get list of related prp
my @related_prps = grep { $prp ne $_ && is_related($projid, $_) } @{$prpdeps->{$prp} || []};
$relatedprpdeps->{$prp} = \@related_prps if @related_prps;

# check if all packages are locked
my $alllocked;
if ($proj->{'locked'} && BSUtil::enabled($repoid, $proj->{'locked'}, 0, $myarch)) {
$alllocked = 1;
for my $pack (grep {$_->{'locked'}} values(%{$proj->{'package'} || {}})) {
$alllocked = 0 unless BSUtil::enabled($repoid, $pack->{'locked'}, 1, $myarch);
}
}
if ($alllocked) {
$gctx->{'alllocked'}->{$prp} = 1;
} else {
delete $gctx->{'alllocked'}->{$prp};
}
}
$gctx->{'project_prps'}->{$projid} = [ sort keys %myprps ] if %myprps;
}
Expand Down
1 change: 1 addition & 0 deletions src/backend/bs_sched
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,7 @@ my $gctx = {
# maps prp => [ prp, prp ... ]
'relatedprpdeps' => {}, # prpdeps filtered for related projects
'rrelatedprpdeps' => {}, # reverse of relatedprpdeps
'alllocked' => {}, # prps where all packages are locked

# triggers
'prpcheckuseforbuild' => {}, # project/package meta has changed
Expand Down

0 comments on commit 8ad9324

Please sign in to comment.