diff --git a/commands/multi.go b/commands/multi.go index 4f45f7cff6e72a7b4d1a6d8709b735f85da23a9d..fd32de0e076f236043356fb6f5c4c2d0258747ae 100644 --- a/commands/multi.go +++ b/commands/multi.go @@ -216,21 +216,14 @@ func (mr *RunCommand) acquireRunnerResources(provider common.ExecutorProvider, r return nil, func() {}, fmt.Errorf("failed to update executor: %v", err) } - releaseProviderFn := func() { - err := provider.Release(runner, executorData) - if err != nil { - logrus.WithError(err).Error("Failed to release executor") - } - } - if !mr.buildsHelper.acquireBuild(runner) { - releaseProviderFn() + provider.Release(runner, executorData) return nil, nil, errors.New("failed to request job, runner limit met") } releaseFn := func() { mr.buildsHelper.releaseBuild(runner) - releaseProviderFn() + provider.Release(runner, executorData) } return executorData, releaseFn, nil diff --git a/common/executor.go b/common/executor.go index f8ceb36c870c0040e11c1f31a8315bb89efca370..8dbed88b23867aa90b2187d0cd499b0eadb245dd 100644 --- a/common/executor.go +++ b/common/executor.go @@ -48,7 +48,7 @@ type ExecutorProvider interface { CanCreate() bool Create() Executor Acquire(config *RunnerConfig) (ExecutorData, error) - Release(config *RunnerConfig, data ExecutorData) error + Release(config *RunnerConfig, data ExecutorData) GetFeatures(features *FeaturesInfo) error GetDefaultShell() string } diff --git a/common/mock_ExecutorProvider.go b/common/mock_ExecutorProvider.go index 2e5488e351e17a371c77a14f3d8f906ce6694878..47722361fb6c4aca2c024f5aefe51705feb5c708 100644 --- a/common/mock_ExecutorProvider.go +++ b/common/mock_ExecutorProvider.go @@ -93,15 +93,6 @@ func (_m *MockExecutorProvider) GetFeatures(features *FeaturesInfo) error { } // Release provides a mock function with given fields: config, data -func (_m *MockExecutorProvider) Release(config *RunnerConfig, data ExecutorData) error { - ret := _m.Called(config, data) - - var r0 error - if rf, ok := ret.Get(0).(func(*RunnerConfig, ExecutorData) error); ok { - r0 = rf(config, data) - } else { - r0 = ret.Error(0) - } - - return r0 +func (_m *MockExecutorProvider) Release(config *RunnerConfig, data ExecutorData) { + _m.Called(config, data) } diff --git a/executors/default_executor_provider.go b/executors/default_executor_provider.go index 67a4a60cdb40ae747877c7c31e8742d237794815..ebffd49a36e5aae17fe84939a38a74fe59077333 100644 --- a/executors/default_executor_provider.go +++ b/executors/default_executor_provider.go @@ -27,9 +27,7 @@ func (e DefaultExecutorProvider) Acquire(config *common.RunnerConfig) (common.Ex return nil, nil } -func (e DefaultExecutorProvider) Release(config *common.RunnerConfig, data common.ExecutorData) error { - return nil -} +func (e DefaultExecutorProvider) Release(config *common.RunnerConfig, data common.ExecutorData) {} func (e DefaultExecutorProvider) GetFeatures(features *common.FeaturesInfo) error { if e.FeaturesUpdater == nil { diff --git a/executors/docker/machine/provider.go b/executors/docker/machine/provider.go index 9111022e805daf2098487e8c58c894a5e83a261d..8e7f2cbc3aa46841b6d4d3450a1b569229300764 100644 --- a/executors/docker/machine/provider.go +++ b/executors/docker/machine/provider.go @@ -379,7 +379,7 @@ func (m *machineProvider) Use(config *common.RunnerConfig, data common.ExecutorD return } -func (m *machineProvider) Release(config *common.RunnerConfig, data common.ExecutorData) error { +func (m *machineProvider) Release(config *common.RunnerConfig, data common.ExecutorData) { // Release machine details, ok := data.(*machineDetails) if ok { @@ -393,12 +393,11 @@ func (m *machineProvider) Release(config *common.RunnerConfig, data common.Execu config.Machine.MaxBuilds > 0 && details.UsedCount >= config.Machine.MaxBuilds { err := m.remove(details.Name, "Too many builds") if err == nil { - return nil + return } } details.State = machineStateIdle } - return nil } func (m *machineProvider) CanCreate() bool { diff --git a/executors/docker/machine/provider_test.go b/executors/docker/machine/provider_test.go index d81e500d44c88ec01a0199162e1473eb2b6f817a..3b0aaf9ea4a3079cb67650fd39e4ed474354445a 100644 --- a/executors/docker/machine/provider_test.go +++ b/executors/docker/machine/provider_test.go @@ -564,8 +564,7 @@ func TestMachineReleaseIfInvalidDataArePassed(t *testing.T) { assert.NotNil(t, nd) assertTotalMachines(t, p, 1, "it creates one machine") - err = p.Release(nil, nd) - assert.NoError(t, err, "it should not fail") + p.Release(nil, nd) } func TestMachineCreationIfFailedToConnect(t *testing.T) {