diff --git a/client/allocrunner/alloc_runner.go b/client/allocrunner/alloc_runner.go index 1f93f2070..21d97fdfa 100644 --- a/client/allocrunner/alloc_runner.go +++ b/client/allocrunner/alloc_runner.go @@ -185,7 +185,9 @@ func NewAllocRunner(config *Config) (*allocRunner, error) { ar.allocDir = allocdir.NewAllocDir(ar.logger, filepath.Join(config.ClientConfig.AllocDir, alloc.ID)) // Initialize the runners hooks. - ar.initRunnerHooks() + if err := ar.initRunnerHooks(); err != nil { + return nil, err + } // Create the TaskRunners if err := ar.initTaskRunners(tg.Tasks); err != nil { diff --git a/client/allocrunner/alloc_runner_hooks.go b/client/allocrunner/alloc_runner_hooks.go index 72c4cdf04..43fa9c639 100644 --- a/client/allocrunner/alloc_runner_hooks.go +++ b/client/allocrunner/alloc_runner_hooks.go @@ -94,7 +94,7 @@ func (a *allocHealthSetter) SetHealth(healthy, isDeploy bool, trackerTaskEvents } // initRunnerHooks intializes the runners hooks. -func (ar *allocRunner) initRunnerHooks() { +func (ar *allocRunner) initRunnerHooks() error { hookLogger := ar.logger.Named("runner_hook") // create health setting shim @@ -110,7 +110,7 @@ func (ar *allocRunner) initRunnerHooks() { } // initialize platform specific hooks - ar.initPlatformRunnerHooks(hookLogger) + return ar.initPlatformRunnerHooks(hookLogger) } // prerun is used to run the runners prerun hooks. diff --git a/client/allocrunner/alloc_runner_linux.go b/client/allocrunner/alloc_runner_linux.go index 90d471fac..d8843e3b4 100644 --- a/client/allocrunner/alloc_runner_linux.go +++ b/client/allocrunner/alloc_runner_linux.go @@ -11,13 +11,17 @@ import ( ) // initialize linux specific alloc runner hooks -func (ar *allocRunner) initPlatformRunnerHooks(hookLogger hclog.Logger) { +func (ar *allocRunner) initPlatformRunnerHooks(hookLogger hclog.Logger) error { // determine how the network must be created ns := &allocNetworkIsolationSetter{ar: ar} - nm, _ := ar.initNetworkManager() + nm, err := ar.initNetworkManager() + if err != nil { + return err + } ar.runnerHooks = append(ar.runnerHooks, newNetworkHook(ns, hookLogger, ar.Alloc(), nm)) + return nil } func (ar *allocRunner) initNetworkManager() (nm drivers.DriverNetworkManager, err error) { diff --git a/client/allocrunner/alloc_runner_nonlinux.go b/client/allocrunner/alloc_runner_nonlinux.go index c9b233eaf..8d000e21d 100644 --- a/client/allocrunner/alloc_runner_nonlinux.go +++ b/client/allocrunner/alloc_runner_nonlinux.go @@ -5,4 +5,4 @@ package allocrunner import hclog "github.com/hashicorp/go-hclog" // noop for non linux clients -func (ar *allocRunner) initPlatformRunnerHooks(hookLogger hclog.Logger) {} +func (ar *allocRunner) initPlatformRunnerHooks(hookLogger hclog.Logger) error { return nil }