Add InitializeFSContext hook to plugins
This commit is contained in:
parent
e24fd90ae9
commit
7dc4594b32
@ -28,6 +28,10 @@ func NewPlugin() container.Plugin {
|
|||||||
|
|
||||||
type plugin struct{}
|
type plugin struct{}
|
||||||
|
|
||||||
|
func (p *plugin) InitializeFSContext(context *fs.Context) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
||||||
err := Register(factory, fsInfo, includedMetrics)
|
err := Register(factory, fsInfo, includedMetrics)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -28,6 +28,10 @@ func NewPlugin() container.Plugin {
|
|||||||
|
|
||||||
type plugin struct{}
|
type plugin struct{}
|
||||||
|
|
||||||
|
func (p *plugin) InitializeFSContext(context *fs.Context) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
||||||
err := Register(factory, fsInfo, includedMetrics)
|
err := Register(factory, fsInfo, includedMetrics)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -28,6 +28,10 @@ func NewPlugin() container.Plugin {
|
|||||||
|
|
||||||
type plugin struct{}
|
type plugin struct{}
|
||||||
|
|
||||||
|
func (p *plugin) InitializeFSContext(context *fs.Context) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
||||||
err := Register(factory, fsInfo, includedMetrics)
|
err := Register(factory, fsInfo, includedMetrics)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -78,6 +78,10 @@ var pluginsLock sync.Mutex
|
|||||||
var plugins = make(map[string]Plugin)
|
var plugins = make(map[string]Plugin)
|
||||||
|
|
||||||
type Plugin interface {
|
type Plugin interface {
|
||||||
|
// InitializeFSContext is invoked when populating an fs.Context object for a new manager.
|
||||||
|
// A returned error here is fatal.
|
||||||
|
InitializeFSContext(context *fs.Context) error
|
||||||
|
|
||||||
// Register is invoked when starting a manager. It can optionally return a container watcher.
|
// Register is invoked when starting a manager. It can optionally return a container watcher.
|
||||||
// A returned error is logged, but is not fatal.
|
// A returned error is logged, but is not fatal.
|
||||||
Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics MetricSet) (watcher.ContainerWatcher, error)
|
Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics MetricSet) (watcher.ContainerWatcher, error)
|
||||||
@ -94,6 +98,19 @@ func RegisterPlugin(name string, plugin Plugin) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func InitializeFSContext(context *fs.Context) error {
|
||||||
|
pluginsLock.Lock()
|
||||||
|
defer pluginsLock.Unlock()
|
||||||
|
for name, plugin := range plugins {
|
||||||
|
err := plugin.InitializeFSContext(context)
|
||||||
|
if err != nil {
|
||||||
|
klog.V(5).Infof("Initialization of the %s context failed: %v", name, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func InitializePlugins(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics MetricSet) []watcher.ContainerWatcher {
|
func InitializePlugins(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics MetricSet) []watcher.ContainerWatcher {
|
||||||
pluginsLock.Lock()
|
pluginsLock.Lock()
|
||||||
defer pluginsLock.Unlock()
|
defer pluginsLock.Unlock()
|
||||||
|
@ -28,6 +28,10 @@ func NewPlugin() container.Plugin {
|
|||||||
|
|
||||||
type plugin struct{}
|
type plugin struct{}
|
||||||
|
|
||||||
|
func (p *plugin) InitializeFSContext(context *fs.Context) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
||||||
err := Register(factory, fsInfo, includedMetrics)
|
err := Register(factory, fsInfo, includedMetrics)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -28,6 +28,10 @@ func NewPlugin() container.Plugin {
|
|||||||
|
|
||||||
type plugin struct{}
|
type plugin struct{}
|
||||||
|
|
||||||
|
func (p *plugin) InitializeFSContext(context *fs.Context) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
||||||
err := Register(factory, fsInfo, includedMetrics)
|
err := Register(factory, fsInfo, includedMetrics)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -28,6 +28,10 @@ func NewPlugin() container.Plugin {
|
|||||||
|
|
||||||
type plugin struct{}
|
type plugin struct{}
|
||||||
|
|
||||||
|
func (p *plugin) InitializeFSContext(context *fs.Context) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) {
|
||||||
err := Register(factory, fsInfo, includedMetrics)
|
err := Register(factory, fsInfo, includedMetrics)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -184,6 +184,11 @@ func New(memoryCache *memory.InMemoryCache, sysfs sysfs.SysFs, maxHousekeepingIn
|
|||||||
Root: crioInfo.StorageRoot,
|
Root: crioInfo.StorageRoot,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := container.InitializeFSContext(&context); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
fsInfo, err := fs.NewFsInfo(context)
|
fsInfo, err := fs.NewFsInfo(context)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user