fix: continue including maintenance mode cron tasks in the cron:list subcommand

This commit is contained in:
Jose Diaz-Gonzalez
2025-03-09 05:03:43 -04:00
parent c0eb12f572
commit 0f4b5d4305
4 changed files with 24 additions and 14 deletions

View File

@@ -44,6 +44,9 @@ type TemplateCommand struct {
// LogFile is the log file to write to
LogFile string `json:"-"`
// Maintenance is whether the cron command is in maintenance mode
Maintenance bool `json:"maintenance"`
}
// CronCommand returns the command to run for a given cron command
@@ -61,9 +64,7 @@ func (t TemplateCommand) CronCommand() string {
// FetchCronEntries returns a list of cron commands for a given app
func FetchCronEntries(appName string) ([]TemplateCommand, error) {
commands := []TemplateCommand{}
if reportComputedMaintenance(appName) == "true" {
return commands, nil
}
isMaintenance := reportComputedMaintenance(appName) == "true"
appJSON, err := appjson.GetAppJSON(appName)
if err != nil {
@@ -82,10 +83,11 @@ func FetchCronEntries(appName string) ([]TemplateCommand, error) {
}
commands = append(commands, TemplateCommand{
App: appName,
Command: c.Command,
Schedule: c.Schedule,
ID: GenerateCommandID(appName, c),
App: appName,
Command: c.Command,
Schedule: c.Schedule,
ID: GenerateCommandID(appName, c),
Maintenance: isMaintenance,
})
}

View File

@@ -32,9 +32,9 @@ func CommandList(appName string, format string) error {
}
if format == "stdout" {
output := []string{"ID | Schedule | Command"}
output := []string{"ID | Schedule | Maintenance | Command"}
for _, entry := range entries {
output = append(output, fmt.Sprintf("%s | %s | %s", entry.ID, entry.Schedule, entry.Command))
output = append(output, fmt.Sprintf("%s | %s | %t | %s", entry.ID, entry.Schedule, entry.Maintenance, entry.Command))
}
result := columnize.SimpleFormat(output)

View File

@@ -83,9 +83,10 @@ func generateCronEntries() ([]cron.TemplateCommand, error) {
id := base36.EncodeToStringLc([]byte(strings.Join(parts, ";;;")))
command := cron.TemplateCommand{
ID: id,
Schedule: parts[0],
AltCommand: parts[1],
ID: id,
Schedule: parts[0],
AltCommand: parts[1],
Maintenance: false,
}
if len(parts) == 3 {
command.LogFile = parts[2]
@@ -106,7 +107,7 @@ func generateCronEntries() ([]cron.TemplateCommand, error) {
for result := range results {
c := result
if len(c) > 0 {
if len(c) > 0 && !c[0].Maintenance {
commands = append(commands, c...)
}
}

View File

@@ -266,10 +266,17 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
workingDir := common.GetWorkingDir(appName, image)
cronEntries, err := cron.FetchCronEntries(appName)
allCronEntries, err := cron.FetchCronEntries(appName)
if err != nil {
return fmt.Errorf("Error fetching cron entries: %w", err)
}
// remove maintenance cron entries
cronEntries := []cron.TemplateCommand{}
for _, cronEntry := range allCronEntries {
if !cronEntry.Maintenance {
cronEntries = append(cronEntries, cronEntry)
}
}
domains := []string{}
if _, ok := processes["web"]; ok {