Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions spread/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -896,6 +896,14 @@ var openstackRemoveVolumeTimeout = 2 * time.Minute
var openstackRemoveRetry = 5 * time.Second

func (p *openstackProvider) removeMachine(ctx context.Context, s *openstackServer) error {
if p == nil || p.computeClient == nil {
return fmt.Errorf("The provider or compute client are not initialized")
}

if s == nil || s.d.Id == "" {
return fmt.Errorf("The server pointer is not initialized")
}

_, err := p.computeClient.GetServer(s.d.Id)
if err != nil {
// this is when the server was already removed
Expand Down
4 changes: 0 additions & 4 deletions spread/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -1193,10 +1193,6 @@ func (p *Project) Jobs(options *Options) ([]*Job, error) {
}
}

if p.TasksLimit > 0 && len(jobs) > p.TasksLimit {
return nil, fmt.Errorf("The number of jobs (%d) is greater then the tasks limit set (%d)", len(jobs), p.TasksLimit)
}

sort.Sort(jobsByName(jobs))
if options.Order {
jobs = options.Filter.Order(jobs)
Expand Down
8 changes: 8 additions & 0 deletions spread/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,14 @@ func (r *Runner) loop() (err error) {
}
}

// Check the jobs limit before starting any worker, so that if the limit is exceeded,
// no worker will be started and the error will be returned immediately.
if !r.options.Discard {
if r.project.TasksLimit > 0 && len(r.pending) > r.project.TasksLimit {
return fmt.Errorf("The number of jobs (%d) is greater then the tasks limit set (%d)", len(r.pending), r.project.TasksLimit)
}
}

r.done = make(chan bool, r.alive)

msg := fmt.Sprintf("Starting %d worker%s for the following jobs", r.alive, nth(r.alive, "", "", "s"))
Expand Down