Skip to content

Commit ec4eaa8

Browse files
htroisicopybaranaut
authored andcommitted
Add operator version to output of px get viziers command.
Summary: Depends on D12319. Pixie now stores the operator version in Cloud DB. This diff makes that information available in the output of the `px get viziers` CLI command. {F196108} Test Plan: Skaffold cloud + operator + vizier (to test recent related infra changes), then build the CLI locally to test changes. Reviewers: vihang, michelle Reviewed By: vihang, michelle Signed-off-by: Hannah Troisi <htroisi@pixielabs.ai> Differential Revision: https://phab.corp.pixielabs.ai/D12332 GitOrigin-RevId: 7b884ab8a563592d2053a12f8e4318b75f5d8936
1 parent dedd8da commit ec4eaa8

1 file changed

Lines changed: 22 additions & 17 deletions

File tree

src/pixie_cli/pkg/cmd/get.go

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ var GetViziersCmd = &cobra.Command{
114114

115115
w := components.CreateStreamWriter(format, os.Stdout)
116116
defer w.Finish()
117-
w.SetHeader("viziers", []string{"ClusterName", "ID", "K8s Version", "Vizier Version", "Last Heartbeat", "Status", "Status Message"})
117+
w.SetHeader("viziers", []string{"ClusterName", "ID", "K8s Version", "Operator Version", "Vizier Version", "Last Heartbeat", "Status", "Status Message"})
118118

119119
for _, vz := range vzs {
120120
var lastHeartbeat interface{}
@@ -126,26 +126,31 @@ var GetViziersCmd = &cobra.Command{
126126
time.Since(time.Unix(0, vz.LastHeartbeatNs)).Nanoseconds()))
127127
}
128128
}
129-
sb := strings.Builder{}
130-
131-
// Parse the version to pretty print it.
132-
if sv, err := semver.Parse(vz.VizierVersion); err == nil {
133-
sb.WriteString(fmt.Sprintf("%d.%d.%d", sv.Major, sv.Minor, sv.Patch))
134-
for idx, pre := range sv.Pre {
135-
if idx == 0 {
136-
sb.WriteString("-")
137-
} else {
138-
sb.WriteString(".")
139-
}
140-
sb.WriteString(pre.String())
141-
}
142-
}
143-
_ = w.Write([]interface{}{vz.ClusterName, utils.UUIDFromProtoOrNil(vz.ID), vz.ClusterVersion, sb.String(),
144-
lastHeartbeat, vz.Status, vz.StatusMessage})
129+
_ = w.Write([]interface{}{vz.ClusterName, utils.UUIDFromProtoOrNil(vz.ID), vz.ClusterVersion,
130+
prettyVersion(vz.OperatorVersion), prettyVersion(vz.VizierVersion), lastHeartbeat, vz.Status, vz.StatusMessage})
145131
}
146132
},
147133
}
148134

135+
// prettyVersion returns a pretty form of the version string.
136+
func prettyVersion(version string) string {
137+
sb := strings.Builder{}
138+
sv, err := semver.Parse(version)
139+
if err != nil {
140+
return ""
141+
}
142+
sb.WriteString(fmt.Sprintf("%d.%d.%d", sv.Major, sv.Minor, sv.Patch))
143+
for idx, pre := range sv.Pre {
144+
if idx == 0 {
145+
sb.WriteString("-")
146+
} else {
147+
sb.WriteString(".")
148+
}
149+
sb.WriteString(pre.String())
150+
}
151+
return sb.String()
152+
}
153+
149154
// GetClusterCmd is the "get cluster" command to get information about the current kubeconfig cluster.
150155
var GetClusterCmd = &cobra.Command{
151156
Use: "cluster",

0 commit comments

Comments
 (0)