mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-11 21:27:31 +00:00
version, cmd/tailscale: add version.Meta, tailscale version --json
Add `tailscale version --json` JSON output mode. This will be used later for a double-opt-in (per node consent like Tailscale SSH + control config) to let admins do remote upgrades via `tailscale update` via a c2n call, which would then need to verify the cmd/tailscale found on disk for running tailscale update corresponds to the running tailscaled, refusing if anything looks amiss. Plus JSON output modes are just nice to have, rather than parsing unstable/fragile/obscure text formats. Updates #6995 Updates #6907 Change-Id: I7821ab7fbea4612f4b9b7bdc1be1ad1095aca71b Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:

committed by
Brad Fitzpatrick

parent
5ca22a0068
commit
ba5aa2c486
7
tailcfg/tailcfg_export_test.go
Normal file
7
tailcfg/tailcfg_export_test.go
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright (c) 2023 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.
|
||||
|
||||
package tailcfg
|
||||
|
||||
var ExportKeyMarshalText = keyMarshalText
|
@@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package tailcfg
|
||||
package tailcfg_test
|
||||
|
||||
import (
|
||||
"encoding"
|
||||
@@ -16,6 +16,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
. "tailscale.com/tailcfg"
|
||||
"tailscale.com/tstest"
|
||||
"tailscale.com/types/key"
|
||||
"tailscale.com/util/must"
|
||||
@@ -660,7 +661,7 @@ func BenchmarkKeyMarshalText(b *testing.B) {
|
||||
b.ReportAllocs()
|
||||
var k [32]byte
|
||||
for i := 0; i < b.N; i++ {
|
||||
sinkBytes = keyMarshalText("prefix", k)
|
||||
sinkBytes = ExportKeyMarshalText("prefix", k)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -670,7 +671,7 @@ func TestAppendKeyAllocs(t *testing.T) {
|
||||
}
|
||||
var k [32]byte
|
||||
err := tstest.MinAllocsPerRun(t, 1, func() {
|
||||
sinkBytes = keyMarshalText("prefix", k)
|
||||
sinkBytes = ExportKeyMarshalText("prefix", k)
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
Reference in New Issue
Block a user