Skip to content

Commit

Permalink
go/vt/mysqlctl: add postflight_mysqld_start and preflight_mysqld_shut…
Browse files Browse the repository at this point in the history
…down hooks (#17652)

Signed-off-by: Max Englander <[email protected]>
  • Loading branch information
maxenglander authored Jan 30, 2025
1 parent 92fe301 commit f7ea3a3
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions go/vt/mysqlctl/mysqld.go
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,15 @@ func (mysqld *Mysqld) startNoWait(cnf *Mycnf, mysqldArgs ...string) error {
return fmt.Errorf("mysqld_start hook failed: %v", hr.String())
}

// try the postflight mysqld start hook, if any
switch hr := hook.NewHook("postflight_mysqld_start", mysqldArgs).Execute(); hr.ExitStatus {
case hook.HOOK_SUCCESS, hook.HOOK_DOES_NOT_EXIST:
// hook exists and worked, or does not exist, we can keep going
default:
// hook failed, we report error
return fmt.Errorf("postflight_mysqld_start hook failed: %v", hr.String())
}

return nil
}

Expand Down Expand Up @@ -624,10 +633,21 @@ func (mysqld *Mysqld) Shutdown(ctx context.Context, cnf *Mycnf, waitForMysqld bo
return nil
}

// try the mysqld shutdown hook, if any
h := hook.NewSimpleHook("mysqld_shutdown")
// try the preflight mysqld shutdown hook, if any
h := hook.NewSimpleHook("preflight_mysqld_shutdown")
hr := h.ExecuteContext(ctx)
switch hr.ExitStatus {
case hook.HOOK_SUCCESS, hook.HOOK_DOES_NOT_EXIST:
// hook exists and worked, or else does not exist.
default:
// hook failed, we report error
return fmt.Errorf("preflight_mysqld_shutdown hook failed: %v", hr.String())
}

// try the mysqld shutdown hook, if any
h = hook.NewSimpleHook("mysqld_shutdown")
hr = h.ExecuteContext(ctx)
switch hr.ExitStatus {
case hook.HOOK_SUCCESS:
// hook exists and worked, we can keep going
case hook.HOOK_DOES_NOT_EXIST:
Expand Down

0 comments on commit f7ea3a3

Please sign in to comment.