refactor: remove fs/persist.go, inline calls to session package
- Delete fs/persist.go (thin wrappers no longer needed) - handlers.go: call session.PersistSession() directly - newroot.go: inline restore logic with AgentLog creation
This commit is contained in:
parent
4ae1584887
commit
b1c74d3121
|
|
@ -426,7 +426,7 @@ func agentBindings(ctx HandlerCtx) ([]Binding, error) {
|
|||
},
|
||||
Rename: func(newName string) error {
|
||||
a.SetName(newName)
|
||||
persistSession(globalRootState, sess.Name())
|
||||
session.PersistSession(sess.Name())
|
||||
return nil
|
||||
},
|
||||
})
|
||||
|
|
@ -727,7 +727,7 @@ func writeAgentName(ctx HandlerCtx, data []byte) error {
|
|||
return nil
|
||||
}
|
||||
ctx.Agent.SetName(newName)
|
||||
persistSession(globalRootState, ctx.Session.Name())
|
||||
session.PersistSession(ctx.Session.Name())
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,14 @@ func NewRoot(cfg Config) *Tree {
|
|||
globalRootState = rs
|
||||
|
||||
// Restore persisted sessions from disk.
|
||||
restoreAllSessions(rs)
|
||||
for _, r := range session.RestoreAllSessions() {
|
||||
node := rs.GetOrCreateNode(r.Session)
|
||||
for _, ra := range r.Agents {
|
||||
al := NewAgentLog(ra.Remote)
|
||||
node.SetAgentLog(ra.ID, al)
|
||||
replayMessagesToLog(al, ra.Messages)
|
||||
}
|
||||
}
|
||||
|
||||
return tree
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"ollie/session"
|
||||
)
|
||||
|
||||
// persistSession saves a session to disk.
|
||||
func persistSession(rs *RootState, name string) {
|
||||
if err := session.PersistSession(name); err != nil {
|
||||
rs.Cfg.Log.Error("persist session %s: %v", name, err)
|
||||
}
|
||||
}
|
||||
|
||||
// saveAllSessions persists all active sessions.
|
||||
func saveAllSessions(rs *RootState) {
|
||||
session.SaveAllSessions()
|
||||
}
|
||||
|
||||
// restoreAllSessions restores persisted sessions and wraps them with SessionNodes.
|
||||
func restoreAllSessions(rs *RootState) {
|
||||
restored := session.RestoreAllSessions()
|
||||
for _, r := range restored {
|
||||
// Wrap in SessionNode
|
||||
node := rs.GetOrCreateNode(r.Session)
|
||||
|
||||
// Create AgentLog for each agent
|
||||
for _, ra := range r.Agents {
|
||||
al := NewAgentLog(ra.Remote)
|
||||
node.SetAgentLog(ra.ID, al)
|
||||
|
||||
// Replay messages to the AgentLog
|
||||
replayMessagesToLog(al, ra.Messages)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue