mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 11:05:45 +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 ""
|
||||
}
|
||||
|
||||
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 {
|
||||
// TODO(bradfitz,dgentry): cache this, or make caller(s) cache it.
|
||||
dist := distro.Get()
|
||||
propFile := "/etc/os-release"
|
||||
switch dist {
|
||||
@ -59,6 +69,9 @@ func osVersionLinux() string {
|
||||
case distro.WDMyCloud:
|
||||
slurp, _ := ioutil.ReadFile("/etc/version")
|
||||
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{}
|
||||
|
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