remove deprecated scheduler

This commit is contained in:
Brad Rydzewski 2019-03-05 23:47:55 -08:00
parent dbebe9d7d9
commit dd2cc872c2
7 changed files with 18 additions and 151 deletions

View file

@ -17,7 +17,6 @@ package main
import ( import (
"github.com/drone/drone/cmd/drone-server/config" "github.com/drone/drone/cmd/drone-server/config"
"github.com/drone/drone/core" "github.com/drone/drone/core"
"github.com/drone/drone/scheduler/docker"
"github.com/drone/drone/scheduler/kube" "github.com/drone/drone/scheduler/kube"
"github.com/drone/drone/scheduler/nomad" "github.com/drone/drone/scheduler/nomad"
"github.com/drone/drone/scheduler/queue" "github.com/drone/drone/scheduler/queue"
@ -43,17 +42,9 @@ func provideScheduler(store core.StageStore, config config.Config) core.Schedule
return provideNomadScheduler(config) return provideNomadScheduler(config)
default: default:
return provideQueueScheduler(store, config) return provideQueueScheduler(store, config)
// return provideDockerScheduler(config)
} }
} }
// provideDockerScheduler is a Wire provider function that
// returns an in-memory Docker scheduler.
func provideDockerScheduler(config config.Config) core.Scheduler {
logrus.Info("main: local docker runner enabled")
return docker.New()
}
// provideKubernetesScheduler is a Wire provider function that // provideKubernetesScheduler is a Wire provider function that
// returns a nomad kubernetes from the environment configuration. // returns a nomad kubernetes from the environment configuration.
func provideKubernetesScheduler(config config.Config) core.Scheduler { func provideKubernetesScheduler(config config.Config) core.Scheduler {

2
go.mod
View file

@ -18,7 +18,7 @@ require (
github.com/drone/drone-go v0.0.0-20190217024616-3e8b71333e59 github.com/drone/drone-go v0.0.0-20190217024616-3e8b71333e59
github.com/drone/drone-runtime v0.0.0-20190210191445-ad403a0ca24e github.com/drone/drone-runtime v0.0.0-20190210191445-ad403a0ca24e
github.com/drone/drone-ui v0.0.0-20190223014501-189a4d227db5 github.com/drone/drone-ui v0.0.0-20190223014501-189a4d227db5
github.com/drone/drone-yaml v1.0.1-0.20190222030833-0e9ca9cdb963 github.com/drone/drone-yaml v1.0.1
github.com/drone/envsubst v1.0.1 github.com/drone/envsubst v1.0.1
github.com/drone/go-license v1.0.2 github.com/drone/go-license v1.0.2
github.com/drone/go-login v1.0.3 github.com/drone/go-login v1.0.3

2
go.sum
View file

@ -48,6 +48,8 @@ github.com/drone/drone-yaml v1.0.1-0.20190222011027-9e589be71ad8 h1:Fig8cPBvJu/0
github.com/drone/drone-yaml v1.0.1-0.20190222011027-9e589be71ad8/go.mod h1:eM365p3g9M5sroFBTR/najiGrZnd/GiIpWHC2UW8PoI= github.com/drone/drone-yaml v1.0.1-0.20190222011027-9e589be71ad8/go.mod h1:eM365p3g9M5sroFBTR/najiGrZnd/GiIpWHC2UW8PoI=
github.com/drone/drone-yaml v1.0.1-0.20190222030833-0e9ca9cdb963 h1:c/xcHqxU4sSjehiWoN91nNDN0QmB0UyHOVINvJJ1GUg= github.com/drone/drone-yaml v1.0.1-0.20190222030833-0e9ca9cdb963 h1:c/xcHqxU4sSjehiWoN91nNDN0QmB0UyHOVINvJJ1GUg=
github.com/drone/drone-yaml v1.0.1-0.20190222030833-0e9ca9cdb963/go.mod h1:eM365p3g9M5sroFBTR/najiGrZnd/GiIpWHC2UW8PoI= github.com/drone/drone-yaml v1.0.1-0.20190222030833-0e9ca9cdb963/go.mod h1:eM365p3g9M5sroFBTR/najiGrZnd/GiIpWHC2UW8PoI=
github.com/drone/drone-yaml v1.0.1 h1:a5t5zCqDFRa791B6/7i19rSpuT9slublvCGt5v0tl+I=
github.com/drone/drone-yaml v1.0.1/go.mod h1:eM365p3g9M5sroFBTR/najiGrZnd/GiIpWHC2UW8PoI=
github.com/drone/envsubst v1.0.1 h1:NOOStingM2sbBwsIUeQkKUz8ShwCUzmqMxWrpXItfPE= github.com/drone/envsubst v1.0.1 h1:NOOStingM2sbBwsIUeQkKUz8ShwCUzmqMxWrpXItfPE=
github.com/drone/envsubst v1.0.1/go.mod h1:bkZbnc/2vh1M12Ecn7EYScpI4YGYU0etwLJICOWi8Z0= github.com/drone/envsubst v1.0.1/go.mod h1:bkZbnc/2vh1M12Ecn7EYScpI4YGYU0etwLJICOWi8Z0=
github.com/drone/go-license v1.0.2 h1:7OwndfYk+Lp/cGHkxe4HUn/Ysrrw3WYH2pnd99yrkok= github.com/drone/go-license v1.0.2 h1:7OwndfYk+Lp/cGHkxe4HUn/Ysrrw3WYH2pnd99yrkok=

View file

@ -2,6 +2,8 @@
// Use of this source code is governed by the Drone Non-Commercial License // Use of this source code is governed by the Drone Non-Commercial License
// that can be found in the LICENSE file. // that can be found in the LICENSE file.
// +build !oss
package mockscm package mockscm
//go:generate mockgen -package=mockscm -destination=mock_gen.go github.com/drone/go-scm/scm ContentService,GitService,OrganizationService,PullRequestService,RepositoryService,UserService //go:generate mockgen -package=mockscm -destination=mock_gen.go github.com/drone/go-scm/scm ContentService,GitService,OrganizationService,PullRequestService,RepositoryService,UserService

View file

@ -1,133 +0,0 @@
// Copyright 2019 Drone.IO Inc. All rights reserved.
// Use of this source code is governed by the Drone Non-Commercial License
// that can be found in the LICENSE file.
// Package Docker is DEPRECATED. DO NOT UPDATE.
package docker
import (
"context"
"errors"
"sync"
"golang.org/x/sync/errgroup"
"github.com/drone/drone/core"
"github.com/drone/drone/operator/runner"
)
var _ core.Scheduler = (*Scheduler)(nil)
// Scheduler is a Docker scheduler.
type Scheduler struct {
sync.Mutex
pending chan int64
running map[int64]context.CancelFunc
runner *runner.Runner
}
// New returns a new Docker scheduler.
func New() *Scheduler {
return NewRunner(nil)
}
// NewRunner returns a new Docker scheduler.
func NewRunner(runner *runner.Runner) *Scheduler {
return &Scheduler{
pending: make(chan int64, 100),
running: make(map[int64]context.CancelFunc),
runner: runner,
}
}
// SetRunner sets the build runner.
func (s *Scheduler) SetRunner(runner *runner.Runner) {
s.runner = runner
}
// Start starts the scheduler.
func (s *Scheduler) Start(ctx context.Context, cap int) error {
var g errgroup.Group
for i := 0; i < cap; i++ {
g.Go(func() error {
return s.start(ctx)
})
}
return g.Wait()
}
func (s *Scheduler) start(ctx context.Context) error {
for {
select {
case id := <-s.pending:
s.run(ctx, id)
case <-ctx.Done():
return ctx.Err()
}
}
}
func (s *Scheduler) run(ctx context.Context, id int64) error {
ctx, cancel := context.WithCancel(ctx)
defer cancel()
s.Lock()
s.running[id] = cancel
s.Unlock()
err := s.runner.Run(ctx, id)
s.Lock()
delete(s.running, id)
s.Unlock()
return err
}
// Schedule schedules the stage for execution.
func (s *Scheduler) Schedule(ctx context.Context, stage *core.Stage) error {
select {
case s.pending <- stage.ID:
return nil
default:
return errors.New("Internal build queue is full")
}
}
// Cancel cancels scheduled or running jobs associated
// with the parent build ID.
func (s *Scheduler) Cancel(_ context.Context, id int64) error {
s.Lock()
cancel, ok := s.running[id]
s.Unlock()
if ok {
cancel()
}
return nil
}
// Stats returns stats specific to the scheduler.
func (s *Scheduler) Stats(_ context.Context) (interface{}, error) {
s.Lock()
stats := &status{
Pending: len(s.pending),
Running: len(s.running),
}
s.Unlock()
return stats, nil
}
func (s *Scheduler) Request(context.Context, core.Filter) (*core.Stage, error) {
return nil, nil
}
func (s *Scheduler) Cancelled(context.Context, int64) (bool, error) {
return false, nil
}
type status struct {
Pending int `json:"pending"`
Running int `json:"running"`
}

View file

@ -1,5 +0,0 @@
// Copyright 2019 Drone.IO Inc. All rights reserved.
// Use of this source code is governed by the Drone Non-Commercial License
// that can be found in the LICENSE file.
package docker

View file

@ -1,6 +1,16 @@
// Copyright 2019 Drone.IO Inc. All rights reserved. // Copyright 2019 Drone IO, Inc.
// Use of this source code is governed by the Drone Non-Commercial License //
// that can be found in the LICENSE file. // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package dbtest package dbtest