diff --git a/testutil/server.go b/testutil/server.go index 745cb9c3b..6dea475d4 100644 --- a/testutil/server.go +++ b/testutil/server.go @@ -29,13 +29,33 @@ var offset uint64 // TestServerConfig is the main server configuration struct. type TestServerConfig struct { - HTTPAddr string `json:"http_addr,omitempty"` - Bootstrap bool `json:"bootstrap,omitempty"` - DataDir string `json:"data_dir,omitempty"` - Region string `json:"region,omitempty"` - DisableCheckpoint bool `json:"disable_update_check"` - LogLevel string `json:"log_level,omitempty"` - Stdout, Stderr io.Writer `json:"-"` + Bootstrap bool `json:"bootstrap,omitempty"` + DataDir string `json:"data_dir,omitempty"` + Region string `json:"region,omitempty"` + DisableCheckpoint bool `json:"disable_update_check"` + LogLevel string `json:"log_level,omitempty"` + Ports *PortsConfig `json:"ports,omitempty"` + Server *ServerConfig `json:"server,omitempty"` + Client *ClientConfig `json:"client,omitempty"` + Stdout, Stderr io.Writer `json:"-"` +} + +// Ports is used to configure the network ports we use. +type PortsConfig struct { + HTTP int `json:"http,omitempty"` + RPC int `json:"rpc,omitempty"` + Serf int `json:"serf,omitempty"` +} + +// ServerConfig is used to configure the nomad server. +type ServerConfig struct { + Enabled bool `json:"enabled"` + Bootstrap bool `json:"bootstrap"` +} + +// ClientConfig is used to configure the client +type ClientConfig struct { + Enabled bool `json:"enabled"` } // ServerConfigCallback is a function interface which can be @@ -51,7 +71,18 @@ func defaultServerConfig() *TestServerConfig { DisableCheckpoint: true, Bootstrap: true, LogLevel: "DEBUG", - HTTPAddr: fmt.Sprintf("127.0.0.1:%d", 20000+idx), + Ports: &PortsConfig{ + HTTP: 20000 + idx, + RPC: 21000 + idx, + Serf: 22000 + idx, + }, + Server: &ServerConfig{ + Enabled: true, + Bootstrap: true, + }, + Client: &ClientConfig{ + Enabled: false, + }, } } @@ -62,6 +93,7 @@ type TestServer struct { t *testing.T HTTPAddr string + SerfAddr string HttpClient *http.Client } @@ -91,6 +123,7 @@ func NewTestServer(t *testing.T, cb ServerConfigCallback) *TestServer { } configContent, err := json.Marshal(nomadConfig) + println(string(configContent)) if err != nil { t.Fatalf("err: %s", err) } @@ -111,7 +144,7 @@ func NewTestServer(t *testing.T, cb ServerConfigCallback) *TestServer { } // Start the server - cmd := exec.Command("nomad", "agent", "-dev", "-config", configFile.Name()) + cmd := exec.Command("nomad", "agent", "-config", configFile.Name()) cmd.Stdout = stdout cmd.Stderr = stderr if err := cmd.Start(); err != nil { @@ -126,7 +159,8 @@ func NewTestServer(t *testing.T, cb ServerConfigCallback) *TestServer { PID: cmd.Process.Pid, t: t, - HTTPAddr: nomadConfig.HTTPAddr, + HTTPAddr: fmt.Sprintf("127.0.0.1:%d", nomadConfig.Ports.HTTP), + SerfAddr: fmt.Sprintf("127.0.0.1:%d", nomadConfig.Ports.Serf), HttpClient: client, }