Skip to content

Commit ef4364c

Browse files
committed
save connection status when resetting file manager service
1 parent a9a14cc commit ef4364c

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

internal/file/file_manager_service.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ type (
5454
UpdateCurrentFilesOnDisk(updateFiles map[string]*mpi.File)
5555
DetermineFileActions(currentFiles, modifiedFiles map[string]*mpi.File) (map[string]*mpi.File,
5656
map[string][]byte, error)
57+
IsConnected() bool
5758
SetIsConnected(isConnected bool)
5859
}
5960
)
@@ -271,6 +272,10 @@ func (fms *FileManagerService) UpdateFile(
271272
return err
272273
}
273274

275+
func (fms *FileManagerService) IsConnected() bool {
276+
return fms.isConnected.Load()
277+
}
278+
274279
func (fms *FileManagerService) SetIsConnected(isConnected bool) {
275280
fms.isConnected.Store(isConnected)
276281
}

internal/file/file_plugin.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,17 @@ func (fp *FilePlugin) Subscriptions() []string {
9797
func (fp *FilePlugin) handleConnectionReset(ctx context.Context, msg *bus.Message) {
9898
slog.DebugContext(ctx, "File plugin received connection reset message")
9999
if newConnection, ok := msg.Data.(grpc.GrpcConnectionInterface); ok {
100+
var reconnect bool
100101
err := fp.conn.Close(ctx)
101102
if err != nil {
102103
slog.ErrorContext(ctx, "File plugin: unable to close connection", "error", err)
103104
}
104105
fp.conn = newConnection
106+
107+
reconnect = fp.fileManagerService.IsConnected()
105108
fp.fileManagerService = NewFileManagerService(fp.conn.FileServiceClient(), fp.config)
109+
fp.fileManagerService.SetIsConnected(reconnect)
110+
106111
slog.DebugContext(ctx, "File plugin: client reset successfully")
107112
}
108113
}

internal/file/filefakes/fake_file_manager_service_interface.go

Lines changed: 65 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)