mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-25 04:17:15 +00:00
fix(nodes): report dev builds as dev+<commit> so updated nodes aren't flagged stale
A node's status reported config.GetVersion() (3.4.0) even on a dev build, so the master compared it against its own dev latestVersion (dev+<sha>) and every node showed 'update available'. Nodes on a dev build now report dev+<short commit>, matching the master's format, so a node on the current dev commit compares as up to date.
This commit is contained in:
@@ -68,6 +68,22 @@ func IsDevBuild() bool {
|
|||||||
return GetBuildCommit() != ""
|
return GetBuildCommit() != ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetReportedVersion returns the version a panel advertises to a managing master
|
||||||
|
// node: the plain version for stable builds, or "dev+<short commit>" for dev
|
||||||
|
// builds. The dev form mirrors the master's getPanelUpdateInfo latestVersion so
|
||||||
|
// a node on the current dev commit compares as up to date instead of always
|
||||||
|
// showing "update available".
|
||||||
|
func GetReportedVersion() string {
|
||||||
|
if !IsDevBuild() {
|
||||||
|
return GetVersion()
|
||||||
|
}
|
||||||
|
commit := GetBuildCommit()
|
||||||
|
if len(commit) > 8 {
|
||||||
|
commit = commit[:8]
|
||||||
|
}
|
||||||
|
return "dev+" + commit
|
||||||
|
}
|
||||||
|
|
||||||
// GetLogLevel returns the current logging level based on environment variables or defaults to Info.
|
// GetLogLevel returns the current logging level based on environment variables or defaults to Info.
|
||||||
func GetLogLevel() LogLevel {
|
func GetLogLevel() LogLevel {
|
||||||
if IsDebug() {
|
if IsDebug() {
|
||||||
|
|||||||
@@ -5,6 +5,26 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestGetReportedVersion(t *testing.T) {
|
||||||
|
orig := buildCommit
|
||||||
|
t.Cleanup(func() { buildCommit = orig })
|
||||||
|
|
||||||
|
buildCommit = ""
|
||||||
|
if got := GetReportedVersion(); got != GetVersion() {
|
||||||
|
t.Fatalf("stable build: GetReportedVersion = %q, want %q", got, GetVersion())
|
||||||
|
}
|
||||||
|
|
||||||
|
buildCommit = "1d1128cf"
|
||||||
|
if got := GetReportedVersion(); got != "dev+1d1128cf" {
|
||||||
|
t.Fatalf("dev build: GetReportedVersion = %q, want %q", got, "dev+1d1128cf")
|
||||||
|
}
|
||||||
|
|
||||||
|
buildCommit = "1d1128cf945c4615efa05cf41ba7fa766e2ee428"
|
||||||
|
if got := GetReportedVersion(); got != "dev+1d1128cf" {
|
||||||
|
t.Fatalf("dev build (full sha): GetReportedVersion = %q, want %q", got, "dev+1d1128cf")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetPortOverride(t *testing.T) {
|
func TestGetPortOverride(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -604,7 +604,7 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status {
|
|||||||
status.Xray.ErrorMsg = s.xrayService.GetXrayResult()
|
status.Xray.ErrorMsg = s.xrayService.GetXrayResult()
|
||||||
}
|
}
|
||||||
status.Xray.Version = s.xrayService.GetXrayVersion()
|
status.Xray.Version = s.xrayService.GetXrayVersion()
|
||||||
status.PanelVersion = config.GetVersion()
|
status.PanelVersion = config.GetReportedVersion()
|
||||||
if guid, err := s.settingService.GetPanelGuid(); err == nil {
|
if guid, err := s.settingService.GetPanelGuid(); err == nil {
|
||||||
status.PanelGuid = guid
|
status.PanelGuid = guid
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user