mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
Support clustername change on reload, fixes #1492
Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
@@ -297,25 +297,28 @@ type clusterOption struct {
|
||||
}
|
||||
|
||||
// Apply the cluster change.
|
||||
func (c *clusterOption) Apply(server *Server) {
|
||||
func (c *clusterOption) Apply(s *Server) {
|
||||
// TODO: support enabling/disabling clustering.
|
||||
server.mu.Lock()
|
||||
s.mu.Lock()
|
||||
tlsRequired := c.newValue.TLSConfig != nil
|
||||
server.routeInfo.TLSRequired = tlsRequired
|
||||
server.routeInfo.TLSVerify = tlsRequired
|
||||
server.routeInfo.AuthRequired = c.newValue.Username != ""
|
||||
s.routeInfo.TLSRequired = tlsRequired
|
||||
s.routeInfo.TLSVerify = tlsRequired
|
||||
s.routeInfo.AuthRequired = c.newValue.Username != ""
|
||||
if c.newValue.NoAdvertise {
|
||||
server.routeInfo.ClientConnectURLs = nil
|
||||
server.routeInfo.WSConnectURLs = nil
|
||||
s.routeInfo.ClientConnectURLs = nil
|
||||
s.routeInfo.WSConnectURLs = nil
|
||||
} else {
|
||||
server.routeInfo.ClientConnectURLs = server.clientConnectURLs
|
||||
server.routeInfo.WSConnectURLs = server.websocket.connectURLs
|
||||
s.routeInfo.ClientConnectURLs = s.clientConnectURLs
|
||||
s.routeInfo.WSConnectURLs = s.websocket.connectURLs
|
||||
}
|
||||
server.setRouteInfoHostPortAndIP()
|
||||
server.mu.Unlock()
|
||||
server.Noticef("Reloaded: cluster")
|
||||
s.setRouteInfoHostPortAndIP()
|
||||
s.mu.Unlock()
|
||||
if c.newValue.Name != "" && c.newValue.Name != s.ClusterName() {
|
||||
s.setClusterName(c.newValue.Name)
|
||||
}
|
||||
s.Noticef("Reloaded: cluster")
|
||||
if tlsRequired && c.newValue.TLSConfig.InsecureSkipVerify {
|
||||
server.Warnf(clusterTLSInsecureWarning)
|
||||
s.Warnf(clusterTLSInsecureWarning)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1762,6 +1762,31 @@ func TestConfigReloadClusterNoAdvertise(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigReloadClusterName(t *testing.T) {
|
||||
s, _, conf := runReloadServerWithContent(t, []byte(`
|
||||
listen: "0.0.0.0:-1"
|
||||
cluster: {
|
||||
name: "abc"
|
||||
listen: "0.0.0.0:-1"
|
||||
}
|
||||
`))
|
||||
defer os.Remove(conf)
|
||||
defer s.Shutdown()
|
||||
|
||||
// Update config with a new cluster name.
|
||||
reloadUpdateConfig(t, s, conf, `
|
||||
listen: "0.0.0.0:-1"
|
||||
cluster: {
|
||||
name: "xyz"
|
||||
listen: "0.0.0.0:-1"
|
||||
}
|
||||
`)
|
||||
|
||||
if s.ClusterName() != "xyz" {
|
||||
t.Fatalf("Expected update clustername of \"xyz\", got %q", s.ClusterName())
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigReloadMaxSubsUnsupported(t *testing.T) {
|
||||
s, _, conf := runReloadServerWithContent(t, []byte(`max_subs: 1`))
|
||||
defer os.Remove(conf)
|
||||
|
||||
Reference in New Issue
Block a user