mirror of
https://github.com/safing/portbase
synced 2025-09-01 10:09:50 +00:00
Simplify subsystems data structure
This commit is contained in:
parent
ff1610b731
commit
f074aa5770
3 changed files with 10 additions and 22 deletions
|
@ -61,7 +61,7 @@ func start() error {
|
|||
}
|
||||
for _, sub := range subsystems {
|
||||
// add main module
|
||||
sub.Dependencies = append(sub.Dependencies, statusFromModule(sub.module))
|
||||
sub.Modules = append(sub.Modules, statusFromModule(sub.module))
|
||||
// add dependencies
|
||||
sub.addDependencies(sub.module, seen)
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ func (sub *Subsystem) addDependencies(module *modules.Module, seen map[string]st
|
|||
_, ok := seen[module.Name]
|
||||
if !ok {
|
||||
// add dependency to modules
|
||||
sub.Dependencies = append(sub.Dependencies, statusFromModule(module))
|
||||
sub.Modules = append(sub.Modules, statusFromModule(module))
|
||||
// mark as seen
|
||||
seen[module.Name] = struct{}{}
|
||||
// add further dependencies
|
||||
|
|
|
@ -19,9 +19,8 @@ type Subsystem struct { //nolint:maligned // not worth the effort
|
|||
Description string
|
||||
module *modules.Module
|
||||
|
||||
Status *ModuleStatus
|
||||
Dependencies []*ModuleStatus
|
||||
FailureStatus uint8
|
||||
Modules []*ModuleStatus
|
||||
FailureStatus uint8 // summary: worst status
|
||||
|
||||
ToggleOptionKey string
|
||||
toggleOption *config.Option
|
||||
|
@ -103,10 +102,7 @@ func compareAndUpdateStatus(module *modules.Module, status *ModuleStatus) (chang
|
|||
func (sub *Subsystem) makeSummary() {
|
||||
// find worst failing module
|
||||
worstFailing := &ModuleStatus{}
|
||||
if sub.Status.FailureStatus > worstFailing.FailureStatus {
|
||||
worstFailing = sub.Status
|
||||
}
|
||||
for _, depStatus := range sub.Dependencies {
|
||||
for _, depStatus := range sub.Modules {
|
||||
if depStatus.FailureStatus > worstFailing.FailureStatus {
|
||||
worstFailing = depStatus
|
||||
}
|
||||
|
|
|
@ -40,13 +40,10 @@ func Register(id, name, description string, module *modules.Module, configKeySpa
|
|||
|
||||
// create new
|
||||
new := &Subsystem{
|
||||
ID: id,
|
||||
Name: name,
|
||||
Description: description,
|
||||
module: module,
|
||||
|
||||
Status: statusFromModule(module),
|
||||
|
||||
ID: id,
|
||||
Name: name,
|
||||
Description: description,
|
||||
module: module,
|
||||
toggleOption: option,
|
||||
ConfigKeySpace: configKeySpace,
|
||||
}
|
||||
|
@ -89,12 +86,7 @@ func handleModuleChanges(m *modules.Module) {
|
|||
var moduleStatus *ModuleStatus
|
||||
subsystemLoop:
|
||||
for _, subsystem := range subsystems {
|
||||
if m.Name == subsystem.Status.Name {
|
||||
moduleSubsystem = subsystem
|
||||
moduleStatus = subsystem.Status
|
||||
break subsystemLoop
|
||||
}
|
||||
for _, status := range subsystem.Dependencies {
|
||||
for _, status := range subsystem.Modules {
|
||||
if m.Name == status.Name {
|
||||
moduleSubsystem = subsystem
|
||||
moduleStatus = status
|
||||
|
|
Loading…
Add table
Reference in a new issue