@@ -252,15 +252,24 @@ func (p *Provisioner) ResetSession(session *resources.Session, snapshotID string
252252
253253 log .Dbg ("Snapshot ID to reset session: " , snapshot .ID )
254254
255+ newFSManager := fsm
256+
257+ if snapshot .Pool != session .Pool {
258+ newFSManager , err = p .pm .GetFSManager (snapshot .Pool )
259+ if err != nil {
260+ return nil , errors .Wrap (err , "failed to find filesystem manager for a new session" )
261+ }
262+
263+ session .Pool = snapshot .Pool
264+ session .SocketHost = newFSManager .Pool ().SocketCloneDir (name )
265+ }
266+
255267 defer func () {
256268 if err != nil {
257269 p .revertSession (name )
258270 }
259271 }()
260272
261- appConfig := p .getAppConfig (fsm .Pool (), name , session .Port )
262- appConfig .SetExtraConf (session .ExtraConfig )
263-
264273 if err := postgres .Stop (p .runner , fsm .Pool (), name ); err != nil {
265274 return nil , errors .Wrap (err , "failed to stop container" )
266275 }
@@ -269,10 +278,13 @@ func (p *Provisioner) ResetSession(session *resources.Session, snapshotID string
269278 return nil , errors .Wrap (err , "failed to destroy clone" )
270279 }
271280
272- if err := fsm .CreateClone (name , snapshot .ID ); err != nil {
281+ if err := newFSManager .CreateClone (name , snapshot .ID ); err != nil {
273282 return nil , errors .Wrap (err , "failed to create clone" )
274283 }
275284
285+ appConfig := p .getAppConfig (newFSManager .Pool (), name , session .Port )
286+ appConfig .SetExtraConf (session .ExtraConfig )
287+
276288 if err := postgres .Start (p .runner , appConfig ); err != nil {
277289 return nil , errors .Wrap (err , "failed to start container" )
278290 }
@@ -582,7 +594,7 @@ func (p *Provisioner) getAppConfig(pool *resources.Pool, name string, port uint)
582594 Host : pool .SocketCloneDir (name ),
583595 Port : port ,
584596 DB : p .dbCfg ,
585- Pool : pool , // TODO: check copying: it must be read-only struct.
597+ Pool : pool ,
586598 ContainerConf : p .config .ContainerConfig ,
587599 NetworkID : p .networkID ,
588600 }
0 commit comments