Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion pkg/module_manager/module_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -474,11 +474,16 @@ func (mm *ModuleManager) GetEnabledModuleNames() []string {
return mm.moduleScheduler.GetEnabledModuleNames()
}

// IsModuleEnabled ...
// IsModuleEnabled returns current state of the module according to the scheduler
func (mm *ModuleManager) IsModuleEnabled(moduleName string) bool {
return mm.moduleScheduler.IsModuleEnabled(moduleName)
}

// GetUpdatedByExtender returns the name of the extender that determined the module's state
func (mm *ModuleManager) GetUpdatedByExtender(moduleName string) (string, error) {
return mm.moduleScheduler.GetUpdatedByExtender(moduleName)
}

func (mm *ModuleManager) AddExtender(ex extenders.Extender) error {
return mm.moduleScheduler.AddExtender(ex)
}
Expand Down
19 changes: 12 additions & 7 deletions pkg/module_manager/scheduler/scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,12 +351,19 @@ func moduleSortFunc(m1, m2 string) bool {
return m1 < m2
}

func (s *Scheduler) GetUpdatedByExtender(moduleName string) (string, error) {
vertex, err := s.dag.Vertex(moduleName)
if err != nil {
return "", err
}
return vertex.GetUpdatedBy(), err
}

func (s *Scheduler) IsModuleEnabled(moduleName string) bool {
vertex, err := s.dag.Vertex(moduleName)
if err != nil {
return false
}

return vertex.GetState()
}

Expand Down Expand Up @@ -482,18 +489,16 @@ outerCycle:
if e.ext.IsTerminator() {
// if disabled - terminate filtering
if !*moduleStatus {
// if so far is enabled OR there are ahead other extenders that could enable the module,
// mark the module as disabled by the terminator
if vBuf[moduleName].enabled || e.filterAhead {
vBuf[moduleName].enabled = *moduleStatus
vBuf[moduleName].updatedBy = string(e.ext.Name())
}
break
}

// if enabled and there are some other filtering extenders ahead - continue filtering
if e.filterAhead {
continue
}
break
// continue checking extenders
continue
}
vBuf[moduleName].enabled = *moduleStatus
vBuf[moduleName].updatedBy = string(e.ext.Name())
Expand Down