package core

import (
	"github.com/juju/errors"
	"github.com/pingcap/schrodinger/pkg/types"
)

// SetFailpoint sets failpint
func (mgr *Manager) SetFailpoint(failpoint *types.Failpoint) error {
	return errors.Trace(mgr.storage.SetFailpoint(failpoint))
}

// GetFailpoint returns failpoint according to name
func (mgr *Manager) GetFailpoint(name string) (*types.Failpoint, error) {
	fp, ok := mgr.storage.GetFailpoint(name)
	if !ok {
		return nil, errors.NotFoundf("failpoint %s", name)
	}

	return fp, nil
}

// ListFailpoints returns all failpoints
func (mgr *Manager) ListFailpoints() []*types.Failpoint {
	return mgr.storage.ListFailpoints()
}
