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