[core] Do not start the plugin loader on non-clients (#16111)

The plugin loader loads task and device driver plugins which are not
used on server nodes.
This commit is contained in:
Charlie Voiselle
2023-02-10 15:33:16 -05:00
committed by GitHub
parent 146f4598f6
commit e803d7c77f
5 changed files with 44 additions and 22 deletions

View File

@@ -0,0 +1,33 @@
package agent
import (
"testing"
"github.com/hashicorp/nomad/api"
"github.com/shoenig/test/must"
)
func TestPlugins_WhenNotClientSkip(t *testing.T) {
s, _, _ := testServer(t, false, nil)
must.Nil(t, s.Agent.pluginSingletonLoader)
}
func TestPlugins_WhenClientRun(t *testing.T) {
s, _, _ := testServer(t, true, nil)
must.NotNil(t, s.Agent.pluginSingletonLoader)
}
func testServer(t *testing.T, runClient bool, cb func(*Config)) (*TestAgent, *api.Client, string) {
// Make a new test server
a := NewTestAgent(t, t.Name(), func(config *Config) {
config.Client.Enabled = runClient
if cb != nil {
cb(config)
}
})
t.Cleanup(a.Shutdown)
c := a.Client()
return a, c, a.HTTPAddr()
}