Architecture
Last updated
Was this helpful?
Was this helpful?
// The order below is the order followed before executing
// the final handler (criu.Dump).
middleware := types.Middleware[types.Dump]{
defaults.FillMissingDumpDefaults,
validation.ValidateDumpRequest,
pluginDumpStorage, // detects and plugs in the storage to use
pluginDumpMiddleware, // middleware from plugins
// By now we should have the PID
process.FillProcessStateForDump,
process.DetectIOUringForDump,
process.AddExternalFilesForDump,
network.DetectNetworkOptionsForDump,
gpu.Dump(s.gpus),
process.SaveProcessStateForDump,
criu.CheckOptsForDump,
}
dump := criu.Dump.With(middleware...) err = features.DumpMiddleware.IfAvailable(func(
name string,
pluginMiddleware types.Middleware[types.Dump],
) error {
middleware = append(middleware, pluginMiddleware...)
return nil
}, t)