From c452cda037a054767fbef01a4bfd08280bc44443 Mon Sep 17 00:00:00 2001 From: husharp Date: Tue, 19 Dec 2023 14:44:28 +0800 Subject: [PATCH] advance prepare Signed-off-by: husharp --- components/playground/instance/drainer.go | 5 ----- components/playground/instance/instance.go | 15 +++++++++------ components/playground/instance/pd.go | 5 ----- components/playground/instance/pump.go | 5 ----- components/playground/instance/ticdc.go | 5 ----- components/playground/instance/tidb.go | 5 ----- components/playground/instance/tiflash.go | 5 ----- components/playground/instance/tiflash_pre7.go | 5 ----- components/playground/instance/tikv.go | 5 ----- components/playground/instance/tikv_cdc.go | 5 ----- components/playground/instance/tiproxy.go | 5 ----- components/playground/playground.go | 8 +++++++- 12 files changed, 16 insertions(+), 57 deletions(-) diff --git a/components/playground/instance/drainer.go b/components/playground/instance/drainer.go index 5a102d9f35..d2714f13ee 100644 --- a/components/playground/instance/drainer.go +++ b/components/playground/instance/drainer.go @@ -19,7 +19,6 @@ import ( "path/filepath" "strings" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -84,10 +83,6 @@ func (d *Drainer) Start(ctx context.Context, version utils.Version) error { args = append(args, fmt.Sprintf("--config=%s", d.ConfigPath)) } - var err error - if d.BinPath, err = tiupexec.PrepareBinary("drainer", version, d.BinPath); err != nil { - return err - } d.Process = &process{cmd: PrepareCommand(ctx, d.BinPath, args, nil, d.Dir)} logIfErr(d.Process.SetOutputFile(d.LogFile())) diff --git a/components/playground/instance/instance.go b/components/playground/instance/instance.go index 151a836994..4adb323184 100644 --- a/components/playground/instance/instance.go +++ b/components/playground/instance/instance.go @@ -23,6 +23,7 @@ import ( "github.com/BurntSushi/toml" "github.com/pingcap/errors" "github.com/pingcap/tiup/pkg/cluster/spec" + tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -70,8 +71,8 @@ type Instance interface { // Wait Should only call this if the instance is started successfully. // The implementation should be safe to call Wait multi times. Wait() error - // BinPathCheck return the bin path to check component version. - BinPathCheck(utils.Version) string + // PrepareBinary use given binpath or download from tiup mirrors. + PrepareBinary(componentName string, version utils.Version) (string, error) } func (inst *instance) MetricAddr() (r MetricAddr) { @@ -81,11 +82,13 @@ func (inst *instance) MetricAddr() (r MetricAddr) { return } -func (inst *instance) BinPathCheck(version utils.Version) string { - if inst.BinPath != "" { - return inst.BinPath +func (inst *instance) PrepareBinary(componentName string, version utils.Version) (string, error) { + instanceBinPath, err := tiupexec.PrepareBinary(componentName, version, inst.BinPath) + if err != nil { + return "", err } - return version.String() + inst.BinPath = instanceBinPath + return instanceBinPath, nil } // CompVersion return the format to run specified version of a component. diff --git a/components/playground/instance/pd.go b/components/playground/instance/pd.go index 5d9a549cac..92a74f0280 100644 --- a/components/playground/instance/pd.go +++ b/components/playground/instance/pd.go @@ -20,7 +20,6 @@ import ( "strings" "github.com/pingcap/errors" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -166,10 +165,6 @@ func (inst *PDInstance) Start(ctx context.Context, version utils.Version) error } } - var err error - if inst.BinPath, err = tiupexec.PrepareBinary("pd", version, inst.BinPath); err != nil { - return err - } inst.Process = &process{cmd: PrepareCommand(ctx, inst.BinPath, args, nil, inst.Dir)} logIfErr(inst.Process.SetOutputFile(inst.LogFile())) diff --git a/components/playground/instance/pump.go b/components/playground/instance/pump.go index 0918fe3f97..58d4b11a42 100644 --- a/components/playground/instance/pump.go +++ b/components/playground/instance/pump.go @@ -21,7 +21,6 @@ import ( "strings" "time" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -103,10 +102,6 @@ func (p *Pump) Start(ctx context.Context, version utils.Version) error { args = append(args, fmt.Sprintf("--config=%s", p.ConfigPath)) } - var err error - if p.BinPath, err = tiupexec.PrepareBinary("pump", version, p.BinPath); err != nil { - return err - } p.Process = &process{cmd: PrepareCommand(ctx, p.BinPath, args, nil, p.Dir)} logIfErr(p.Process.SetOutputFile(p.LogFile())) diff --git a/components/playground/instance/ticdc.go b/components/playground/instance/ticdc.go index 5c987b2c5a..dbcda36825 100644 --- a/components/playground/instance/ticdc.go +++ b/components/playground/instance/ticdc.go @@ -19,7 +19,6 @@ import ( "path/filepath" "strings" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/tidbver" "github.com/pingcap/tiup/pkg/utils" ) @@ -76,10 +75,6 @@ func (c *TiCDC) Start(ctx context.Context, version utils.Version) error { } } - var err error - if c.BinPath, err = tiupexec.PrepareBinary("cdc", version, c.BinPath); err != nil { - return err - } c.Process = &process{cmd: PrepareCommand(ctx, c.BinPath, args, nil, c.Dir)} logIfErr(c.Process.SetOutputFile(c.LogFile())) diff --git a/components/playground/instance/tidb.go b/components/playground/instance/tidb.go index 93acc95e24..316d59da88 100644 --- a/components/playground/instance/tidb.go +++ b/components/playground/instance/tidb.go @@ -20,7 +20,6 @@ import ( "strconv" "strings" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -80,10 +79,6 @@ func (inst *TiDBInstance) Start(ctx context.Context, version utils.Version) erro args = append(args, "--enable-binlog=true") } - var err error - if inst.BinPath, err = tiupexec.PrepareBinary("tidb", version, inst.BinPath); err != nil { - return err - } inst.Process = &process{cmd: PrepareCommand(ctx, inst.BinPath, args, nil, inst.Dir)} logIfErr(inst.Process.SetOutputFile(inst.LogFile())) diff --git a/components/playground/instance/tiflash.go b/components/playground/instance/tiflash.go index cb73f2d722..2c90f3c447 100644 --- a/components/playground/instance/tiflash.go +++ b/components/playground/instance/tiflash.go @@ -20,7 +20,6 @@ import ( "path/filepath" "strings" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/tidbver" "github.com/pingcap/tiup/pkg/utils" ) @@ -150,10 +149,6 @@ func (inst *TiFlashInstance) Start(ctx context.Context, version utils.Version) e fmt.Sprintf("--flash.proxy.log-file=%s", filepath.Join(inst.Dir, "tiflash_tikv.log")), ) - var err error - if inst.BinPath, err = tiupexec.PrepareBinary("tiflash", version, inst.BinPath); err != nil { - return err - } inst.Process = &process{cmd: PrepareCommand(ctx, inst.BinPath, args, nil, inst.Dir)} logIfErr(inst.Process.SetOutputFile(inst.LogFile())) diff --git a/components/playground/instance/tiflash_pre7.go b/components/playground/instance/tiflash_pre7.go index 02f59747c4..0d57ddf412 100644 --- a/components/playground/instance/tiflash_pre7.go +++ b/components/playground/instance/tiflash_pre7.go @@ -26,7 +26,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tiup/pkg/cluster/api" "github.com/pingcap/tiup/pkg/cluster/spec" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -92,10 +91,6 @@ func (inst *TiFlashInstance) startOld(ctx context.Context, version utils.Version return err } - if inst.BinPath, err = tiupexec.PrepareBinary("tiflash", version, inst.BinPath); err != nil { - return err - } - dirPath := filepath.Dir(inst.BinPath) clusterManagerPath := getFlashClusterPath(dirPath) if err = inst.checkConfigOld(wd, clusterManagerPath, version, tidbStatusAddrs, endpoints); err != nil { diff --git a/components/playground/instance/tikv.go b/components/playground/instance/tikv.go index e767ec61a2..a60e733e52 100644 --- a/components/playground/instance/tikv.go +++ b/components/playground/instance/tikv.go @@ -19,7 +19,6 @@ import ( "path/filepath" "strings" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -77,10 +76,6 @@ func (inst *TiKVInstance) Start(ctx context.Context, version utils.Version) erro } envs := []string{"MALLOC_CONF=prof:true,prof_active:false"} - var err error - if inst.BinPath, err = tiupexec.PrepareBinary("tikv", version, inst.BinPath); err != nil { - return err - } inst.Process = &process{cmd: PrepareCommand(ctx, inst.BinPath, args, envs, inst.Dir)} logIfErr(inst.Process.SetOutputFile(inst.LogFile())) diff --git a/components/playground/instance/tikv_cdc.go b/components/playground/instance/tikv_cdc.go index 5441acf5af..d31858c550 100644 --- a/components/playground/instance/tikv_cdc.go +++ b/components/playground/instance/tikv_cdc.go @@ -19,7 +19,6 @@ import ( "path/filepath" "strings" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -65,10 +64,6 @@ func (c *TiKVCDC) Start(ctx context.Context, version utils.Version) error { args = append(args, fmt.Sprintf("--config=%s", c.ConfigPath)) } - var err error - if c.BinPath, err = tiupexec.PrepareBinary("tikv-cdc", version, c.BinPath); err != nil { - return err - } c.Process = &process{cmd: PrepareCommand(ctx, c.BinPath, args, nil, c.Dir)} logIfErr(c.Process.SetOutputFile(c.LogFile())) diff --git a/components/playground/instance/tiproxy.go b/components/playground/instance/tiproxy.go index 95b6b13cd8..09b479d76a 100644 --- a/components/playground/instance/tiproxy.go +++ b/components/playground/instance/tiproxy.go @@ -21,7 +21,6 @@ import ( "strings" "github.com/pelletier/go-toml" - tiupexec "github.com/pingcap/tiup/pkg/exec" "github.com/pingcap/tiup/pkg/utils" ) @@ -103,10 +102,6 @@ func (c *TiProxy) Start(ctx context.Context, version utils.Version) error { fmt.Sprintf("--config=%s", configPath), } - if c.BinPath, err = tiupexec.PrepareBinary("tiproxy", version, c.BinPath); err != nil { - return err - } - c.Process = &process{cmd: PrepareCommand(ctx, c.BinPath, args, nil, c.Dir)} logIfErr(c.Process.SetOutputFile(c.LogFile())) diff --git a/components/playground/playground.go b/components/playground/playground.go index 36ace0890b..bc1485eb42 100644 --- a/components/playground/playground.go +++ b/components/playground/playground.go @@ -445,7 +445,13 @@ func (p *Playground) startInstance(ctx context.Context, inst instance.Instance) if err != nil { return err } - fmt.Printf("Start %s instance:%s\n", inst.Component(), inst.BinPathCheck(version)) + + instanceBinPath, err := inst.PrepareBinary(inst.Component(), version) + if err != nil { + return err + } + fmt.Printf("Start %s instance:%s\n", inst.Component(), instanceBinPath) + err = inst.Start(ctx, version) if err != nil { return err