func()

in internal/onetime/logusage/logusage.go [105:130]


func (l *LogUsage) logUsageHandler(cmd *cobra.Command, cloudProps *cpb.CloudProperties) error {
	onetime.SetValues(l.name, &l.lp, cmd, "logusage")
	if l.lp.CloudLoggingClient != nil {
		defer l.lp.CloudLoggingClient.Close()
	}
	log.SetupLoggingForOTE("google-cloud-workload-agent", cmd.Name(), l.lp)
	switch {
	case l.status == "":
		log.Print("A usage status value is required.")
		return fmt.Errorf("a usage status value is required")
	case l.status == string(usagemetrics.StatusUpdated) && l.agentVersion == "":
		log.Print("For status UPDATED, Agent Version is required.")
		return fmt.Errorf("for status UPDATED, Agent Version is required")
	case l.status == string(usagemetrics.StatusError) && l.usageError <= 0:
		log.Print("For status ERROR, an error code is required.")
		return fmt.Errorf("for status ERROR, an error code is required")
	case l.status == string(usagemetrics.StatusAction) && l.action <= 0:
		log.Print("For status ACTION, an action code is required.")
		return fmt.Errorf("for status ACTION, an action code is required")
	}

	if err := l.logUsageStatus(cloudProps); err != nil {
		log.Logger.Warnw("Could not log usage", "error", err)
	}
	return nil
}