package task

import (
	"fmt"

	"github.com/juju/errors"
	"github.com/pingcap/schrodinger/util"
)

// TasksController defines for managing task
type TasksController struct{}

// NewTasksController creates a controller for task
func NewTasksController() *TasksController {
	return &TasksController{}
}

// AdjustTidbGc adjust tidb gc
func (c *TasksController) AdjustTidbGc(tidbIP string) error {
	dbDSN := fmt.Sprintf("root:@tcp(%s:4000)/test", tidbIP)
	db, err := util.OpenDB(dbDSN, 2)
	if err != nil {
		return errors.Trace(err)
	}
	defer db.Close()

	sql := "update mysql.tidb set variable_value='720h' where variable_name='tikv_gc_life_time'"
	_, err = db.Exec(sql)
	return errors.Trace(err)
}
