package pd_ctl

import (
	"fmt"
	"strings"
)

func (p *PDCtl) StoreExec(command ...string) ([]byte, error) {
	cmdString := []string{"store"}
	cmdString = append(cmdString, command...)
	return p.Exec(cmdString...)
}

func (p *PDCtl) ShowStores() ([]byte, error) {
	return p.StoreExec()
}

// Execute `pd-ctl scheduler add $name $storeID` command
func (p *PDCtl) AddStoreScheduler(name string, storeID uint64) error {
	command := fmt.Sprintf("add %s %d", name, storeID)
	_, err := p.SchedulerExec(strings.Split(command, " ")...)
	return err
}

// execute `pd-ctl region store $storeID`
func (p *PDCtl) GetRegionsByStore(storeID uint64) ([]byte, error) {
	command := fmt.Sprintf("store %d", storeID)
	return p.RegionExec(strings.Split(command, " ")...)
}

// execute `pd-ctl scheduler remove $name $storeID`
func (p *PDCtl) RemoveStoreScheduler(name string, storeID uint64) error {
	scheduler := fmt.Sprintf("%s-%d", name, storeID)
	return p.RemoveScheduler(scheduler)
}
