func (a *actionRotateStartMember) CheckProgress(ctx context.Context) (bool, bool, error) {
	log := a.log
	m, found := a.actionCtx.GetMemberStatusByID(a.action.MemberID)
	if !found {
		log.Error().Msg("No such member")
		return true, false, nil
	}
	if ready, abort, err := getShutdownHelper(&a.action, a.actionCtx, a.log).CheckProgress(ctx); err != nil {
		return false, abort, err
	} else if !ready {
		return false, false, nil
	}
	if err := a.actionCtx.DeletePod(ctx, m.PodName); err != nil {
		if !k8sutil.IsNotFound(err) {
			log.Error().Err(err).Msg("Unable to delete pod")
			return false, false, nil
		}
	}
	return true, false, nil
}
CheckProgress checks the progress of the action.
Returns: ready, abort, error.
package reconcile
import (
	"context"
	"github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
	"github.com/arangodb/kube-arangodb/pkg/util/errors"
	api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
	"github.com/rs/zerolog"
)
func init() {
	registerAction(api.ActionTypeRotateStartMember, newRotateStartMemberAction)
}
func newRotateStartMemberAction(log zerolog.Logger, action api.Action, actionCtx ActionContext) Action {
	a := &actionRotateStartMember{}
	a.actionImpl = newActionImplDefRef(log, action, actionCtx, rotateMemberTimeout)
	return a
}
type actionRotateStartMember struct {
	actionImpl
}
func (a *actionRotateStartMember) Start(ctx context.Context) (bool, error) {
	log := a.log
	m, ok := a.actionCtx.GetMemberStatusByID(a.action.MemberID)
	if !ok {
		log.Error().Msg("No such member")
	}
	if ready, err := getShutdownHelper(&a.action, a.actionCtx, a.log).Start(ctx); err != nil {
		return false, err
	} else if ready {
		return true, nil
	}
	m.Phase = api.MemberPhaseRotateStart
	if err := a.actionCtx.UpdateMember(ctx, m); err != nil {
		return false, errors.WithStack(err)
	}
	return false, nil
}