Add update versions debug data
This commit is contained in:
@@ -146,6 +146,7 @@ func debugInfo(ar *api.Request) (data []byte, err error) {
|
|||||||
compat.AddToDebugInfo(di)
|
compat.AddToDebugInfo(di)
|
||||||
di.AddLastReportedModuleError()
|
di.AddLastReportedModuleError()
|
||||||
di.AddLastUnexpectedLogs()
|
di.AddLastUnexpectedLogs()
|
||||||
|
updates.AddToDebugInfo(di)
|
||||||
di.AddGoroutineStack()
|
di.AddGoroutineStack()
|
||||||
|
|
||||||
// Return data.
|
// Return data.
|
||||||
|
|||||||
@@ -2,12 +2,16 @@ package updates
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"sort"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/safing/portbase/database/record"
|
"github.com/safing/portbase/database/record"
|
||||||
"github.com/safing/portbase/info"
|
"github.com/safing/portbase/info"
|
||||||
"github.com/safing/portbase/log"
|
"github.com/safing/portbase/log"
|
||||||
"github.com/safing/portbase/updater"
|
"github.com/safing/portbase/updater"
|
||||||
|
"github.com/safing/portbase/utils/debug"
|
||||||
"github.com/safing/portmaster/updates/helper"
|
"github.com/safing/portmaster/updates/helper"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -131,3 +135,46 @@ func export(_ context.Context, _ interface{}) error {
|
|||||||
}
|
}
|
||||||
return GetSimpleVersions().save()
|
return GetSimpleVersions().save()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AddToDebugInfo adds the update system status to the given debug.Info.
|
||||||
|
func AddToDebugInfo(di *debug.Info) {
|
||||||
|
// Get resources from registry.
|
||||||
|
resources := registry.Export()
|
||||||
|
platformPrefix := helper.PlatformIdentifier("")
|
||||||
|
|
||||||
|
// Collect data for debug info.
|
||||||
|
var active, selected []string
|
||||||
|
var activeCnt, totalCnt int
|
||||||
|
for id, r := range resources {
|
||||||
|
// Ignore resources for other platforms.
|
||||||
|
if !strings.HasPrefix(id, "all/") && !strings.HasPrefix(id, platformPrefix) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
totalCnt++
|
||||||
|
if r.ActiveVersion != nil {
|
||||||
|
activeCnt++
|
||||||
|
active = append(active, fmt.Sprintf("%s: %s", id, r.ActiveVersion.VersionNumber))
|
||||||
|
}
|
||||||
|
if r.SelectedVersion != nil {
|
||||||
|
selected = append(selected, fmt.Sprintf("%s: %s", id, r.SelectedVersion.VersionNumber))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sort.Strings(active)
|
||||||
|
sort.Strings(selected)
|
||||||
|
|
||||||
|
// Compile to one list.
|
||||||
|
lines := make([]string, 0, len(active)+len(selected)+3)
|
||||||
|
lines = append(lines, "Active:")
|
||||||
|
lines = append(lines, active...)
|
||||||
|
lines = append(lines, "")
|
||||||
|
lines = append(lines, "Selected:")
|
||||||
|
lines = append(lines, selected...)
|
||||||
|
|
||||||
|
// Add section.
|
||||||
|
di.AddSection(
|
||||||
|
fmt.Sprintf("Updates: %s (%d/%d)", initialReleaseChannel, activeCnt, totalCnt),
|
||||||
|
debug.UseCodeSection|debug.AddContentLineBreaks,
|
||||||
|
lines...,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user