renamed PendingInformation to JobInformation
All checks were successful
ci/woodpecker/pr/pr Pipeline was successful

filter running jobs better
This commit is contained in:
Tobias Trabelsi 2023-11-01 20:54:44 +01:00
parent db1b560896
commit b313c1b5aa
Signed by: lerentis
GPG Key ID: FF0C2839718CAF2E
2 changed files with 21 additions and 8 deletions

View File

@ -29,7 +29,7 @@ package models
}
*/
type PendingInformation struct {
type JobInformation struct {
ID int `json:"id"`
Data string `json:"data"`
Labels map[string]string `json:"labels"`
@ -48,11 +48,11 @@ type Stats struct {
}
type QueueInfo struct {
Pending []PendingInformation `json:"pending,omitempty"`
WaitingOnDeps string `json:"-"` // dont need those
Running int `json:"running,omitempty"`
Stats Stats `json:"stats"`
Paused bool `json:"paused"`
Pending []JobInformation `json:"pending,omitempty"`
WaitingOnDeps string `json:"-"` // dont need those
Running []JobInformation `json:"running,omitempty"`
Stats Stats `json:"stats"`
Paused bool `json:"paused"`
}
/*[

View File

@ -64,14 +64,27 @@ func CheckPending(cfg *config.Config) (bool, error) {
}
func CheckRunning(cfg *config.Config) (bool, error) {
expectedKV := strings.Split(cfg.WoodpeckerLabelSelector, "=")
queueInfo := new(models.QueueInfo)
err := QueueInfo(cfg, queueInfo)
if err != nil {
return false, errors.New(fmt.Sprintf("Error from QueueInfo: %s", err.Error()))
}
// TODO: create and parse running object. there may be jobs that are not for us
if queueInfo.Stats.RunningCount > 0 {
return true, nil
for _, runningJobs := range queueInfo.Running {
val, exists := runningJobs.Labels[expectedKV[0]]
if exists && val == expectedKV[1] {
log.WithFields(log.Fields{
"Caller": "CheckRunning",
}).Info("Found running job for us")
return true, nil
} else {
log.WithFields(log.Fields{
"Caller": "CheckRunning",
}).Info("No running job for us")
return false, nil
}
}
}
return false, nil
}