// ExecuteOptionalTabletInfoHook executes a hook and returns an error // only if the hook failed, not if the hook doesn't exist. func (wr *Wrangler) ExecuteOptionalTabletInfoHook(ctx context.Context, ti *topo.TabletInfo, hook *hk.Hook) (err error) { hr, err := wr.ExecuteTabletInfoHook(ctx, ti, hook) if err != nil { return err } if hr.ExitStatus == hk.HOOK_DOES_NOT_EXIST { log.Infof("Hook %v doesn't exist on tablet %v", hook.Name, ti.AliasString()) return nil } if hr.ExitStatus != hk.HOOK_SUCCESS { return fmt.Errorf("Hook %v failed(%v): %v", hook.Name, hr.ExitStatus, hr.Stderr) } return nil }