cilium

Форк
0
70 строк · 1.7 Кб
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright Authors of Cilium
3

4
package cmd
5

6
import (
7
	"os"
8
	"text/tabwriter"
9

10
	"github.com/spf13/cobra"
11

12
	"github.com/cilium/cilium/api/v1/health/models"
13
	"github.com/cilium/cilium/pkg/command"
14
	clientPkg "github.com/cilium/cilium/pkg/health/client"
15
)
16

17
var (
18
	probe    bool
19
	succinct bool
20
	verbose  bool
21
)
22

23
// statusGetCmd represents the status command
24
var statusGetCmd = &cobra.Command{
25
	Use:     "status",
26
	Aliases: []string{"connectivity"},
27
	Short:   "Display cilium connectivity to other nodes",
28
	Run: func(cmd *cobra.Command, args []string) {
29
		var sr *models.HealthStatusResponse
30

31
		if client == nil {
32
			Fatalf("Invalid combination of arguments")
33
		}
34

35
		if probe {
36
			result, err := client.Connectivity.PutStatusProbe(nil)
37
			if err != nil {
38
				Fatalf("Cannot get status/probe: %s\n", err)
39
			}
40
			sr = result.Payload
41
		} else {
42
			result, err := client.Connectivity.GetStatus(nil)
43
			if err != nil {
44
				Fatalf("Cannot get status: %s\n", err)
45
			}
46
			sr = result.Payload
47
		}
48

49
		if command.OutputOption() {
50
			if err := command.PrintOutput(sr); err != nil {
51
				os.Exit(1)
52
			}
53
		} else {
54
			w := tabwriter.NewWriter(os.Stdout, 2, 0, 3, ' ', 0)
55
			clientPkg.FormatHealthStatusResponse(w, sr, true, succinct, verbose, 0)
56
			w.Flush()
57
		}
58
	},
59
}
60

61
func init() {
62
	rootCmd.AddCommand(statusGetCmd)
63
	statusGetCmd.Flags().BoolVarP(&probe, "probe", "", false,
64
		"Synchronously probe connectivity status")
65
	statusGetCmd.Flags().BoolVarP(&succinct, "succinct", "", false,
66
		"Print the result succinctly (one node per line)")
67
	statusGetCmd.Flags().BoolVarP(&verbose, "verbose", "", false,
68
		"Print more information in results")
69
	command.AddOutputOption(statusGetCmd)
70
}
71

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.