From ea28581bbeb3f9d32c2b65d7dfcd9fb19a7d1bfe Mon Sep 17 00:00:00 2001 From: Gaius Date: Wed, 10 Jan 2024 12:36:45 +0800 Subject: [PATCH] feat: update scheduler and seed peer by ip and port (#3012) Signed-off-by: Gaius --- manager/config/config.go | 8 -------- manager/config/config_test.go | 16 ++-------------- manager/config/constants.go | 3 --- manager/config/testdata/manager.yaml | 1 - manager/rpcserver/manager_server_v2.go | 4 ++++ scheduler/config/config.go | 4 ++++ 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/manager/config/config.go b/manager/config/config.go index dd9fb7ebbbf..ff7480f7ffd 100644 --- a/manager/config/config.go +++ b/manager/config/config.go @@ -269,9 +269,6 @@ type GRPCConfig struct { // AdvertiseIP is advertise ip. AdvertiseIP net.IP `yaml:"advertiseIP" mapstructure:"advertiseIP"` - // AdvertisePort is advertise port. - AdvertisePort int `yaml:"advertisePort" mapstructure:"advertisePort"` - // ListenIP is listen ip, like: 0.0.0.0, 192.168.0.1. ListenIP net.IP `mapstructure:"listenIP" yaml:"listenIP"` @@ -392,7 +389,6 @@ func New() *Config { Server: ServerConfig{ Name: DefaultServerName, GRPC: GRPCConfig{ - AdvertisePort: DefaultGRPCAdvertisePort, PortRange: TCPListenPortRange{ Start: DefaultGRPCPort, End: DefaultGRPCPort, @@ -485,10 +481,6 @@ func (cfg *Config) Validate() error { return errors.New("grpc requires parameter advertiseIP") } - if cfg.Server.GRPC.AdvertisePort <= 0 { - return errors.New("grpc requires parameter advertisePort") - } - if cfg.Server.GRPC.ListenIP == nil { return errors.New("grpc requires parameter listenIP") } diff --git a/manager/config/config_test.go b/manager/config/config_test.go index 42db5df1bd9..7cbc21783d7 100644 --- a/manager/config/config_test.go +++ b/manager/config/config_test.go @@ -119,9 +119,8 @@ func TestConfig_Load(t *testing.T) { LogDir: "foo", PluginDir: "foo", GRPC: GRPCConfig{ - AdvertiseIP: net.IPv4zero, - AdvertisePort: 65003, - ListenIP: net.IPv4zero, + AdvertiseIP: net.IPv4zero, + ListenIP: net.IPv4zero, PortRange: TCPListenPortRange{ Start: 65003, End: 65003, @@ -286,17 +285,6 @@ func TestConfig_Validate(t *testing.T) { assert.EqualError(err, "grpc requires parameter advertiseIP") }, }, - { - name: "grpc requires parameter advertisePort", - config: New(), - mock: func(cfg *Config) { - cfg.Server.GRPC.AdvertisePort = 0 - }, - expect: func(t *testing.T, err error) { - assert := assert.New(t) - assert.EqualError(err, "grpc requires parameter advertisePort") - }, - }, { name: "grpc requires parameter listenIP", config: New(), diff --git a/manager/config/constants.go b/manager/config/constants.go index c73904e6097..7b636dc8dd0 100644 --- a/manager/config/constants.go +++ b/manager/config/constants.go @@ -41,9 +41,6 @@ const ( // DefaultGRPCPort is default port for grpc server. DefaultGRPCPort = 65003 - // DefaultGRPCPort is default port for grpc server. - DefaultGRPCAdvertisePort = 65003 - // DefaultRESTAddr is default address for rest server. DefaultRESTAddr = ":8080" ) diff --git a/manager/config/testdata/manager.yaml b/manager/config/testdata/manager.yaml index 2bfd1bc13cf..7a260b16854 100644 --- a/manager/config/testdata/manager.yaml +++ b/manager/config/testdata/manager.yaml @@ -6,7 +6,6 @@ server: pluginDir: foo grpc: advertiseIP: 0.0.0.0 - advertisePort: 65003 listenIP: 0.0.0.0 port: start: 65003 diff --git a/manager/rpcserver/manager_server_v2.go b/manager/rpcserver/manager_server_v2.go index 79fcf73964e..23bf688528a 100644 --- a/manager/rpcserver/manager_server_v2.go +++ b/manager/rpcserver/manager_server_v2.go @@ -238,6 +238,8 @@ func (s *managerServerV2) UpdateSeedPeer(ctx context.Context, req *managerv2.Upd seedPeer := models.SeedPeer{} if err := s.db.WithContext(ctx).First(&seedPeer, models.SeedPeer{ Hostname: req.Hostname, + IP: req.Ip, + Port: req.Port, SeedPeerClusterID: uint(req.SeedPeerClusterId), }).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { @@ -450,6 +452,8 @@ func (s *managerServerV2) UpdateScheduler(ctx context.Context, req *managerv2.Up scheduler := models.Scheduler{} if err := s.db.WithContext(ctx).First(&scheduler, models.Scheduler{ Hostname: req.Hostname, + IP: req.Ip, + Port: req.Port, SchedulerClusterID: uint(req.SchedulerClusterId), }).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { diff --git a/scheduler/config/config.go b/scheduler/config/config.go index a978d7db5ab..301b4c6bbe9 100644 --- a/scheduler/config/config.go +++ b/scheduler/config/config.go @@ -728,5 +728,9 @@ func (cfg *Config) Convert() error { } } + if cfg.Server.AdvertisePort == 0 { + cfg.Server.AdvertisePort = cfg.Server.Port + } + return nil }