fix: write cron in pre-delete phase
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
SUBCOMMANDS = subcommands/list subcommands/report subcommands/run subcommands/set
|
SUBCOMMANDS = subcommands/list subcommands/report subcommands/run subcommands/set
|
||||||
TRIGGERS = triggers/cron-get-property triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-delete triggers/scheduler-stop
|
TRIGGERS = triggers/cron-get-property triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/pre-delete triggers/post-delete triggers/scheduler-stop
|
||||||
BUILD = commands subcommands triggers
|
BUILD = commands subcommands triggers
|
||||||
PLUGIN_NAME = cron
|
PLUGIN_NAME = cron
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,9 @@ func main() {
|
|||||||
case "post-delete":
|
case "post-delete":
|
||||||
appName := flag.Arg(0)
|
appName := flag.Arg(0)
|
||||||
err = cron.TriggerPostDelete(appName)
|
err = cron.TriggerPostDelete(appName)
|
||||||
|
case "pre-delete":
|
||||||
|
appName := flag.Arg(0)
|
||||||
|
err = cron.TriggerPreDelete(appName)
|
||||||
case "report":
|
case "report":
|
||||||
appName := flag.Arg(0)
|
appName := flag.Arg(0)
|
||||||
err = cron.ReportSingleApp(appName, "", "")
|
err = cron.ReportSingleApp(appName, "", "")
|
||||||
|
|||||||
@@ -55,9 +55,24 @@ func TriggerPostAppRenameSetup(oldAppName string, newAppName string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TriggerPreDelete stops cron for a given app
|
||||||
|
func TriggerPreDelete(appName string) error {
|
||||||
|
scheduler := common.GetAppScheduler(appName)
|
||||||
|
_, err := common.CallPlugnTrigger(common.PlugnTriggerInput{
|
||||||
|
Trigger: "scheduler-cron-write",
|
||||||
|
Args: []string{scheduler, appName},
|
||||||
|
StreamStdio: true,
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// TriggerPostDelete destroys the cron property for a given app container
|
// TriggerPostDelete destroys the cron property for a given app container
|
||||||
func TriggerPostDelete(appName string) error {
|
func TriggerPostDelete(appName string) error {
|
||||||
return common.PropertyDestroy("cron", appName)
|
if err := common.PropertyDestroy("cron", appName); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// TriggerSchedulerStop stops the scheduler for a given app container
|
// TriggerSchedulerStop stops the scheduler for a given app container
|
||||||
|
|||||||
@@ -14,9 +14,6 @@ trigger-scheduler-docker-local-post-delete() {
|
|||||||
|
|
||||||
# remove all application containers
|
# remove all application containers
|
||||||
"$DOCKER_BIN" container ls --filter "label=com.dokku.app-name=${APP}" -q | xargs -n1 -I {} "$DOCKER_BIN" container rm --force {} &>/dev/null || true
|
"$DOCKER_BIN" container ls --filter "label=com.dokku.app-name=${APP}" -q | xargs -n1 -I {} "$DOCKER_BIN" container rm --force {} &>/dev/null || true
|
||||||
|
|
||||||
local DOKKU_SCHEDULER="$(get_app_scheduler "$APP")"
|
|
||||||
plugn trigger scheduler-cron-write "$DOKKU_SCHEDULER" "$APP"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
trigger-scheduler-docker-local-post-delete "$@"
|
trigger-scheduler-docker-local-post-delete "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user