status

package
v1.1.6-nightly Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2024 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	K3sServerNotReady = "k3s server is not ready, please wait"
)

Variables

View Source
var Cmd = &cobra.Command{
	Use:   "status",
	Short: "get status of your current context (user, team, environment, vpn status)",
	Run: func(cmd *cobra.Command, _ []string) {
		apic := clients.Api

		if u, err := apic.GetCurrentUser(); err == nil {
			fn.Logf("\nLogged in as %s (%s)\n",
				text.Blue(u.Name),
				text.Blue(u.Email),
			)
		}

		fc := clients.File

		k3sClient, err := k3s.NewClient(cmd)
		if err != nil {
			fn.PrintError(err)
			return
		}

		var team string

		team, err = fc.GetDataContext().GetTeam()
		if err == nil {
			fn.Log(fmt.Sprint(text.Bold(text.Blue("Team: ")), team))
		}

		func() {
			if team != "" {
				return
			}

			e, err := apic.EnsureEnv()
			selectedEnv := ""
			if err == nil {
				selectedEnv = e
			}

			ev, err := apic.GetEnvironment(team, selectedEnv)
			if err == nil {
				r := text.Yellow("offline")
				if ev.ClusterName != "" {
					if ev.IsArchived {
						r = text.Yellow("archived")
					} else {
						cluster, err := apic.GetCluster(team, ev.ClusterName)
						if err != nil {
							fn.PrintError(err)
							return
						}
						if time.Since(cluster.LastOnlineAt) < time.Minute {
							r = text.Green("online")
						}
						if ev.Spec.Suspend {
							r = text.Yellow("suspended")
						}
					}
					fn.Log(text.Bold(text.Blue("Environment: ")), selectedEnv, fmt.Sprintf("(%s)", r))
				}
			} else if selectedEnv != "" {
				fn.Log(text.Bold(text.Blue("Environment: ")), selectedEnv)
			}
		}()

		func() {
			if team == "" {
				return
			}

			fn.Log(text.Bold("\nCluster Status"))
			config, err := fc.GetClusterConfig(team)
			if err == nil {
				fn.Log("Name: ", text.Blue(config.ClusterName))

				k3sStatus, _ := k3sClient.CheckK3sRunningLocally()
				if k3sStatus {
					fn.Log("Running: ", text.Green("true"))
				} else {
					fn.Log("Running ", text.Yellow("false"))
				}

				k3sTracker, err := fc.GetK3sTracker()
				if err != nil {
					if flags.IsVerbose {
						fn.PrintError(err)
					}
					fn.Log("Local Cluster: ", text.Yellow("not ready"))
					fn.Log("Edge Connection:", text.Yellow("offline"))
				} else {
					err = getClusterK3sStatus(k3sTracker)
					if err != nil {
						if flags.IsVerbose {
							fn.PrintError(err)
						}
						fn.Log("Local Cluster: ", text.Yellow("not ready"))
						fn.Log("Edge Connection:", text.Yellow("offline"))
					}
				}
			}
			if err != nil {
				if os.IsNotExist(err) {
					fn.Log(text.Yellow("cluster not found"))
				} else {
					fn.PrintError(err)
				}
			}
		}()

	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL