refactor: rename cron entry to cron task

This naming better suits what it is we are fetching.
This commit is contained in:
Jose Diaz-Gonzalez
2025-11-07 22:30:54 -05:00
parent 5614a4c702
commit 3915d25d84
11 changed files with 53 additions and 53 deletions

View File

@@ -66,15 +66,15 @@ func (t TemplateCommand) CronCommand() string {
return fmt.Sprintf("dokku run --cron-id %s %s %s", t.ID, t.App, t.Command)
}
// FetchCronEntriesInput is the input for the FetchCronEntries function
type FetchCronEntriesInput struct {
// FetchCronTasksInput is the input for the FetchCronTasks function
type FetchCronTasksInput struct {
AppName string
AppJSON *appjson.AppJSON
WarnToFailure bool
}
// FetchCronEntries returns a list of cron commands for a given app
func FetchCronEntries(input FetchCronEntriesInput) ([]TemplateCommand, error) {
// FetchCronTasks returns a list of cron commands for a given app
func FetchCronTasks(input FetchCronTasksInput) ([]TemplateCommand, error) {
appName := input.AppName
commands := []TemplateCommand{}
isMaintenance := reportComputedMaintenance(appName) == "true"
@@ -129,10 +129,10 @@ func FetchCronEntries(input FetchCronEntriesInput) ([]TemplateCommand, error) {
return commands, nil
}
// FetchGlobalCronEntries returns a list of global cron commands
// FetchGlobalCronTasks returns a list of global cron commands
// This function should only be used for the cron:list --global command
// and not internally by the cron plugin
func FetchGlobalCronEntries() ([]TemplateCommand, error) {
func FetchGlobalCronTasks() ([]TemplateCommand, error) {
commands := []TemplateCommand{}
response, _ := common.CallPlugnTrigger(common.PlugnTriggerInput{
Trigger: "cron-entries",

View File

@@ -41,7 +41,7 @@ func reportMailto(_ string) string {
}
func reportTasks(appName string) string {
c, _ := FetchCronEntries(FetchCronEntriesInput{AppName: appName})
c, _ := FetchCronTasks(FetchCronTasksInput{AppName: appName})
return strconv.Itoa(len(c))
}

View File

@@ -22,10 +22,10 @@ func CommandList(appName string, format string) error {
return fmt.Errorf("Invalid format specified, supported formats: json, stdout")
}
var entries []TemplateCommand
var tasks []TemplateCommand
if appName == "--global" {
var err error
entries, err = FetchGlobalCronEntries()
tasks, err = FetchGlobalCronTasks()
if err != nil {
return err
}
@@ -34,7 +34,7 @@ func CommandList(appName string, format string) error {
if err := common.VerifyAppName(appName); err != nil {
return err
}
entries, err = FetchCronEntries(FetchCronEntriesInput{AppName: appName})
tasks, err = FetchCronTasks(FetchCronTasksInput{AppName: appName})
if err != nil {
return err
}
@@ -42,8 +42,8 @@ func CommandList(appName string, format string) error {
if format == "stdout" {
output := []string{"ID | Schedule | Maintenance | Command"}
for _, entry := range entries {
output = append(output, fmt.Sprintf("%s | %s | %t | %s", entry.ID, entry.Schedule, entry.Maintenance, entry.Command))
for _, task := range tasks {
output = append(output, fmt.Sprintf("%s | %s | %t | %s", task.ID, task.Schedule, task.Maintenance, task.Command))
}
result := columnize.SimpleFormat(output)
@@ -51,7 +51,7 @@ func CommandList(appName string, format string) error {
return nil
}
out, err := json.Marshal(entries)
out, err := json.Marshal(tasks)
if err != nil {
return err
}
@@ -88,7 +88,7 @@ func CommandRun(appName string, cronID string, detached bool) error {
return err
}
entries, err := FetchCronEntries(FetchCronEntriesInput{AppName: appName})
tasks, err := FetchCronTasks(FetchCronTasksInput{AppName: appName})
if err != nil {
return err
}
@@ -98,9 +98,9 @@ func CommandRun(appName string, cronID string, detached bool) error {
}
command := ""
for _, entry := range entries {
if entry.ID == cronID {
command = entry.Command
for _, task := range tasks {
if task.ID == cronID {
command = task.Command
}
}

View File

@@ -7,6 +7,6 @@ MAILTO={{ .Mailto }}
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
{{ range $entry := .Commands -}}
{{ $entry.Schedule }} {{ $entry.CronCommand }}
{{ range $task := .Commands -}}
{{ $task.Schedule }} {{ $task.CronCommand }}
{{ end -}}

View File

@@ -24,7 +24,7 @@ func TriggerCronGetProperty(appName string, key string) error {
return nil
}
// TriggerAppJSONIsValid validates the cron entries for a given app
// TriggerAppJSONIsValid validates the cron tasks for a given app
func TriggerAppJSONIsValid(appName string, appJSONPath string) error {
if !common.FileExists(appJSONPath) {
return nil
@@ -35,7 +35,7 @@ func TriggerAppJSONIsValid(appName string, appJSONPath string) error {
return err
}
_, err = FetchCronEntries(FetchCronEntriesInput{
_, err = FetchCronTasks(FetchCronTasksInput{
AppName: appName,
AppJSON: &appJSON,
WarnToFailure: true,

View File

@@ -38,7 +38,7 @@ func deleteCrontab() error {
return nil
}
func generateCronEntries() ([]cron.TemplateCommand, error) {
func generateCronTasks() ([]cron.TemplateCommand, error) {
apps, _ := common.UnfilteredDokkuApps()
g := new(errgroup.Group)
@@ -52,7 +52,7 @@ func generateCronEntries() ([]cron.TemplateCommand, error) {
return nil
}
c, err := cron.FetchCronEntries(cron.FetchCronEntriesInput{AppName: appName})
c, err := cron.FetchCronTasks(cron.FetchCronTasksInput{AppName: appName})
if err != nil {
results <- []cron.TemplateCommand{}
common.LogWarn(err.Error())
@@ -116,13 +116,13 @@ func generateCronEntries() ([]cron.TemplateCommand, error) {
return commands, nil
}
func writeCronEntries(scheduler string) error {
func writeCronTasks(scheduler string) error {
// allow empty scheduler, which means all apps (used by letsencrypt)
if scheduler != "docker-local" && scheduler != "" {
return nil
}
commands, err := generateCronEntries()
commands, err := generateCronTasks()
if err != nil {
return err
}
@@ -154,7 +154,7 @@ func writeCronEntries(scheduler string) error {
return err
}
tmpFile, err := os.CreateTemp(os.TempDir(), fmt.Sprintf("dokku-%s-%s", common.MustGetEnv("DOKKU_PID"), "WriteCronEntries"))
tmpFile, err := os.CreateTemp(os.TempDir(), fmt.Sprintf("dokku-%s-%s", common.MustGetEnv("DOKKU_PID"), "WriteCronTasks"))
if err != nil {
return fmt.Errorf("Cannot create temporary schedule file: %v", err)
}

View File

@@ -2,5 +2,5 @@ package schedulerdockerlocal
// TriggerSchedulerCronWrite force updates the cron file for all apps
func TriggerSchedulerCronWrite(scheduler string) error {
return writeCronEntries(scheduler)
return writeCronTasks(scheduler)
}

View File

@@ -312,15 +312,15 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
workingDir := common.GetWorkingDir(appName, image)
allCronEntries, err := cron.FetchCronEntries(cron.FetchCronEntriesInput{AppName: appName})
allCronTasks, err := cron.FetchCronTasks(cron.FetchCronTasksInput{AppName: appName})
if err != nil {
return fmt.Errorf("Error fetching cron entries: %w", err)
return fmt.Errorf("Error fetching cron tasks: %w", err)
}
// remove maintenance cron entries
cronEntries := []cron.TemplateCommand{}
for _, cronEntry := range allCronEntries {
if !cronEntry.Maintenance {
cronEntries = append(cronEntries, cronEntry)
// remove maintenance cron tasks
cronTasks := []cron.TemplateCommand{}
for _, cronTask := range allCronTasks {
if !cronTask.Maintenance {
cronTasks = append(cronTasks, cronTask)
}
}
@@ -605,13 +605,13 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
if err != nil {
return fmt.Errorf("Error listing cron jobs: %w", err)
}
for _, cronEntry := range cronEntries {
for _, cronTask := range cronTasks {
// todo: implement deployment annotations
// todo: implement pod annotations
// todo: implement volumes
suffix := ""
for _, cronJob := range cronJobs {
if cronJob.Labels["dokku.com/cron-id"] == cronEntry.ID {
if cronJob.Labels["dokku.com/cron-id"] == cronTask.ID {
var ok bool
suffix, ok = cronJob.Annotations["dokku.com/job-suffix"]
if !ok {
@@ -628,22 +628,22 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
suffix = strings.ToLower(fmt.Sprintf("%X", b))
}
words, err := shellquote.Split(cronEntry.Command)
words, err := shellquote.Split(cronTask.Command)
if err != nil {
return fmt.Errorf("Error parsing cron command: %w", err)
}
processResources, err := getProcessResources(appName, cronEntry.ID)
processResources, err := getProcessResources(appName, cronTask.ID)
if err != nil {
return fmt.Errorf("Error getting process resources: %w", err)
}
annotations, err := getAnnotations(appName, cronEntry.ID)
annotations, err := getAnnotations(appName, cronTask.ID)
if err != nil {
return fmt.Errorf("Error getting process annotations: %w", err)
}
labels, err := getLabels(appName, cronEntry.ID)
labels, err := getLabels(appName, cronTask.ID)
if err != nil {
return fmt.Errorf("Error getting process labels: %w", err)
}
@@ -652,8 +652,8 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
Args: words,
Annotations: annotations,
Cron: ProcessCron{
ID: cronEntry.ID,
Schedule: cronEntry.Schedule,
ID: cronTask.ID,
Schedule: cronTask.Schedule,
Suffix: suffix,
},
Labels: labels,
@@ -662,10 +662,10 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
Resources: processResources,
Volumes: processVolumes,
}
values.Processes[cronEntry.ID] = processValues
values.Processes[cronTask.ID] = processValues
}
if len(cronEntries) > 0 {
if len(cronTasks) > 0 {
b, err := templates.ReadFile("templates/chart/cron-job.yaml")
if err != nil {
return fmt.Errorf("Error reading cron job template: %w", err)
@@ -1443,14 +1443,14 @@ func TriggerSchedulerRunList(scheduler string, appName string, format string) er
return fmt.Errorf("Error getting cron jobs: %w", err)
}
type CronJobEntry struct {
type CronJobTask struct {
ID string `json:"id"`
AppName string `json:"app"`
Command string `json:"command"`
Schedule string `json:"schedule"`
}
data := []CronJobEntry{}
data := []CronJobTask{}
lines := []string{"ID | Schedule | Command"}
for _, cronJob := range cronJobs {
command := ""
@@ -1467,7 +1467,7 @@ func TriggerSchedulerRunList(scheduler string, appName string, format string) er
}
lines = append(lines, fmt.Sprintf("%s | %s | %s", cronID, cronJob.Spec.Schedule, command))
data = append(data, CronJobEntry{
data = append(data, CronJobTask{
ID: cronID,
AppName: appName,
Command: command,