TUN-5697: Listen for UpdateConfiguration RPC in quic transport

This commit is contained in:
cthuang 2022-02-11 15:46:04 +00:00 committed by Chung Ting Huang
parent d78a5ba5da
commit e56c4532ce
3 changed files with 12 additions and 12 deletions

View File

@ -265,8 +265,8 @@ func (q *QUICConnection) UnregisterUdpSession(ctx context.Context, sessionID uui
} }
// UpdateConfiguration is the RPC method invoked by edge when there is a new configuration // UpdateConfiguration is the RPC method invoked by edge when there is a new configuration
func (q *QUICConnection) UpdateConfiguration(ctx context.Context, version int32, config []byte) (*tunnelpogs.UpdateConfigurationResponse, error) { func (q *QUICConnection) UpdateConfiguration(ctx context.Context, version int32, config []byte) *tunnelpogs.UpdateConfigurationResponse {
return nil, fmt.Errorf("TODO: TUN-5698") return q.orchestrator.UpdateConfig(version, config)
} }
// streamReadWriteAcker is a light wrapper over QUIC streams with a callback to send response back to // streamReadWriteAcker is a light wrapper over QUIC streams with a callback to send response back to

View File

@ -231,14 +231,18 @@ type mockConfigRPCServer struct {
config []byte config []byte
} }
func (s mockConfigRPCServer) UpdateConfiguration(_ context.Context, version int32, config []byte) (*tunnelpogs.UpdateConfigurationResponse, error) { func (s mockConfigRPCServer) UpdateConfiguration(_ context.Context, version int32, config []byte) *tunnelpogs.UpdateConfigurationResponse {
if s.version != version { if s.version != version {
return nil, fmt.Errorf("expect version %d, got %d", s.version, version) return &tunnelpogs.UpdateConfigurationResponse{
Err: fmt.Errorf("expect version %d, got %d", s.version, version),
}
} }
if !bytes.Equal(s.config, config) { if !bytes.Equal(s.config, config) {
return nil, fmt.Errorf("expect config %v, got %v", s.config, config) return &tunnelpogs.UpdateConfigurationResponse{
Err: fmt.Errorf("expect config %v, got %v", s.config, config),
}
} }
return &tunnelpogs.UpdateConfigurationResponse{LastAppliedVersion: version}, nil return &tunnelpogs.UpdateConfigurationResponse{LastAppliedVersion: version}
} }
type mockRPCStream struct { type mockRPCStream struct {

View File

@ -11,7 +11,7 @@ import (
) )
type ConfigurationManager interface { type ConfigurationManager interface {
UpdateConfiguration(ctx context.Context, version int32, config []byte) (*UpdateConfigurationResponse, error) UpdateConfiguration(ctx context.Context, version int32, config []byte) *UpdateConfigurationResponse
} }
type ConfigurationManager_PogsImpl struct { type ConfigurationManager_PogsImpl struct {
@ -31,16 +31,12 @@ func (i ConfigurationManager_PogsImpl) UpdateConfiguration(p tunnelrpc.Configura
return err return err
} }
updateResp, err := i.impl.UpdateConfiguration(p.Ctx, version, config)
if err != nil {
return err
}
result, err := p.Results.NewResult() result, err := p.Results.NewResult()
if err != nil { if err != nil {
return err return err
} }
updateResp := i.impl.UpdateConfiguration(p.Ctx, version, config)
return updateResp.Marshal(result) return updateResp.Marshal(result)
} }