mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 19:15:34 +00:00
hostinfo: determine QNAP QTS version
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
This commit is contained in:
parent
d17849461c
commit
4dd799ec43
@ -48,7 +48,17 @@ func linuxDeviceModel() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getQnapQtsVersion(versionInfo string) string {
|
||||||
|
for _, field := range strings.Fields(versionInfo) {
|
||||||
|
if suffix := strings.TrimPrefix(field, "QTSFW_"); suffix != field {
|
||||||
|
return "QTS " + suffix
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func osVersionLinux() string {
|
func osVersionLinux() string {
|
||||||
|
// TODO(bradfitz,dgentry): cache this, or make caller(s) cache it.
|
||||||
dist := distro.Get()
|
dist := distro.Get()
|
||||||
propFile := "/etc/os-release"
|
propFile := "/etc/os-release"
|
||||||
switch dist {
|
switch dist {
|
||||||
@ -59,6 +69,9 @@ func osVersionLinux() string {
|
|||||||
case distro.WDMyCloud:
|
case distro.WDMyCloud:
|
||||||
slurp, _ := ioutil.ReadFile("/etc/version")
|
slurp, _ := ioutil.ReadFile("/etc/version")
|
||||||
return fmt.Sprintf("%s", string(bytes.TrimSpace(slurp)))
|
return fmt.Sprintf("%s", string(bytes.TrimSpace(slurp)))
|
||||||
|
case distro.QNAP:
|
||||||
|
slurp, _ := ioutil.ReadFile("/etc/version_info")
|
||||||
|
return getQnapQtsVersion(string(slurp))
|
||||||
}
|
}
|
||||||
|
|
||||||
m := map[string]string{}
|
m := map[string]string{}
|
||||||
|
38
hostinfo/hostinfo_linux_test.go
Normal file
38
hostinfo/hostinfo_linux_test.go
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build linux && !android
|
||||||
|
// +build linux,!android
|
||||||
|
|
||||||
|
package hostinfo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestQnap(t *testing.T) {
|
||||||
|
version_info := `commit 2910d3a594b068024ed01a64a0fe4168cb001a12
|
||||||
|
Date: 2022-05-30 16:08:45 +0800
|
||||||
|
================================================
|
||||||
|
* QTSFW_5.0.0
|
||||||
|
remotes/origin/QTSFW_5.0.0`
|
||||||
|
|
||||||
|
got := getQnapQtsVersion(version_info)
|
||||||
|
want := "QTS 5.0.0"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("got %q; want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = getQnapQtsVersion("")
|
||||||
|
want = ""
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("got %q; want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = getQnapQtsVersion("just a bunch of junk")
|
||||||
|
want = ""
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("got %q; want %q", got, want)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user