func PrintStatus()

in sharedlibraries/statushelper/statushelper.go [279:309]


func PrintStatus(ctx context.Context, status *spb.AgentStatus, compact bool) {
	// Center the agent name between the header dashes and limit the width to 80 characters.
	printColor(info, "--------------------------------------------------------------------------------\n")
	printColor(info, "|%s|\n", fmt.Sprintf("%*s", -78, fmt.Sprintf("%*s", (78+len(status.GetAgentName()+" Status"))/2, status.GetAgentName()+" Status")))
	printColor(info, "--------------------------------------------------------------------------------\n")
	printColor(info, "Agent Status:\n")
	versionColor := success
	if status.GetInstalledVersion() != status.GetAvailableVersion() {
		versionColor = failure
	}
	printColor(info, "    Installed Version: ")
	printColor(versionColor, "%s\n", status.GetInstalledVersion())
	printColor(info, "    Available Version: ")
	printColor(versionColor, "%s\n", status.GetAvailableVersion())

	printState(ctx, "    Systemd Service Enabled", status.GetSystemdServiceEnabled())
	printState(ctx, "    Systemd Service Running", status.GetSystemdServiceRunning())
	printState(ctx, "    Cloud API Full Scopes", status.GetCloudApiAccessFullScopesGranted())
	printColor(info, "    Configuration File: %s\n", status.GetConfigurationFilePath())
	printState(ctx, "    Configuration Valid", status.GetConfigurationValid())
	if status.GetConfigurationValid() != spb.State_SUCCESS_STATE {
		printColor(failure, "        %s\n", status.GetConfigurationErrorMessage())
	}

	for _, service := range status.GetServices() {
		printServiceStatus(ctx, service, compact)
	}
	printReferences(ctx, status.GetReferences())
	printColor(info, "\n\n")
	tabWriter.Flush()
}