This is an automated email from the ASF dual-hosted git repository.
zhonghongsheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shardingsphere-on-cloud.git
The following commit(s) were added to refs/heads/main by this push:
new 3d87f11 feat: add threads parameter to openGauss restore subcommand
(#465)
3d87f11 is described below
commit 3d87f11c573c94bd9f02c206238b94dfdf3adaf7
Author: liyao <[email protected]>
AuthorDate: Thu Nov 16 12:56:09 2023 +0800
feat: add threads parameter to openGauss restore subcommand (#465)
* feat: add threads parameter to restore command
* feat: add threadsnum to agent server
* feat: add threadsNum to cli
* chore: update opengauss mock
---
pitr/agent/internal/handler/restore.go | 2 +-
pitr/agent/internal/handler/view/restore.go | 1 +
pitr/agent/internal/pkg/mocks/opengauss.go | 229 ++++++++++++++--------------
pitr/agent/internal/pkg/opengauss.go | 8 +-
pitr/cli/internal/cmd/restore.go | 3 +-
pitr/cli/internal/pkg/model/as_restore.go | 1 +
6 files changed, 123 insertions(+), 121 deletions(-)
diff --git a/pitr/agent/internal/handler/restore.go
b/pitr/agent/internal/handler/restore.go
index 609a343..722d985 100644
--- a/pitr/agent/internal/handler/restore.go
+++ b/pitr/agent/internal/handler/restore.go
@@ -78,7 +78,7 @@ func Restore(ctx *fiber.Ctx) (err error) {
}()
// restore data from backup
- if err = pkg.OG.Restore(in.DnBackupPath, in.Instance, in.DnBackupID);
err != nil {
+ if err = pkg.OG.Restore(in.DnBackupPath, in.Instance, in.DnBackupID,
in.DnThreadsNum); err != nil {
efmt := "pkg.OG.Restore
failure[path=%s,instance=%s,backupID=%s], err wrap: %w"
err = fmt.Errorf(efmt, in.DnBackupPath, in.Instance,
in.DnBackupID, err)
status = "restore failure"
diff --git a/pitr/agent/internal/handler/view/restore.go
b/pitr/agent/internal/handler/view/restore.go
index 60d4cdf..15f5f07 100644
--- a/pitr/agent/internal/handler/view/restore.go
+++ b/pitr/agent/internal/handler/view/restore.go
@@ -27,6 +27,7 @@ type RestoreIn struct {
Instance string `json:"instance"`
DnBackupPath string `json:"dn_backup_path"`
DnBackupID string `json:"dn_backup_id"`
+ DnThreadsNum uint8 `json:"dn_threads_num"`
}
//nolint:dupl
diff --git a/pitr/agent/internal/pkg/mocks/opengauss.go
b/pitr/agent/internal/pkg/mocks/opengauss.go
index 256ad75..290271e 100644
--- a/pitr/agent/internal/pkg/mocks/opengauss.go
+++ b/pitr/agent/internal/pkg/mocks/opengauss.go
@@ -1,111 +1,111 @@
// Code generated by MockGen. DO NOT EDIT.
-// Source: opengauss.go
+// Source: internal/pkg/opengauss.go
// Package mock_pkg is a generated GoMock package.
package mock_pkg
import (
- reflect "reflect"
-
model
"github.com/apache/shardingsphere-on-cloud/pitr/agent/internal/pkg/model"
gomock "github.com/golang/mock/gomock"
+ reflect "reflect"
)
-// MockIOpenGauss is a mock of IOpenGauss interface.
+// MockIOpenGauss is a mock of IOpenGauss interface
type MockIOpenGauss struct {
ctrl *gomock.Controller
recorder *MockIOpenGaussMockRecorder
}
-// MockIOpenGaussMockRecorder is the mock recorder for MockIOpenGauss.
+// MockIOpenGaussMockRecorder is the mock recorder for MockIOpenGauss
type MockIOpenGaussMockRecorder struct {
mock *MockIOpenGauss
}
-// NewMockIOpenGauss creates a new mock instance.
+// NewMockIOpenGauss creates a new mock instance
func NewMockIOpenGauss(ctrl *gomock.Controller) *MockIOpenGauss {
mock := &MockIOpenGauss{ctrl: ctrl}
mock.recorder = &MockIOpenGaussMockRecorder{mock}
return mock
}
-// EXPECT returns an object that allows the caller to indicate expected use.
+// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockIOpenGauss) EXPECT() *MockIOpenGaussMockRecorder {
return m.recorder
}
-// AddInstance mocks base method.
-func (m *MockIOpenGauss) AddInstance(backupPath, instance string) error {
+// AsyncBackup mocks base method
+func (m *MockIOpenGauss) AsyncBackup(backupPath, instanceName, backupMode
string, threadsNum uint8, dbPort uint16) (string, error) {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "AddInstance", backupPath, instance)
- ret0, _ := ret[0].(error)
- return ret0
+ ret := m.ctrl.Call(m, "AsyncBackup", backupPath, instanceName,
backupMode, threadsNum, dbPort)
+ ret0, _ := ret[0].(string)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
}
-// AddInstance indicates an expected call of AddInstance.
-func (mr *MockIOpenGaussMockRecorder) AddInstance(backupPath, instance
interface{}) *gomock.Call {
+// AsyncBackup indicates an expected call of AsyncBackup
+func (mr *MockIOpenGaussMockRecorder) AsyncBackup(backupPath, instanceName,
backupMode, threadsNum, dbPort interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddInstance",
reflect.TypeOf((*MockIOpenGauss)(nil).AddInstance), backupPath, instance)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AsyncBackup",
reflect.TypeOf((*MockIOpenGauss)(nil).AsyncBackup), backupPath, instanceName,
backupMode, threadsNum, dbPort)
}
-// AsyncBackup mocks base method.
-func (m *MockIOpenGauss) AsyncBackup(backupPath, instanceName, backupMode
string, threadsNum uint8, dbPort uint16) (string, error) {
+// ShowBackup mocks base method
+func (m *MockIOpenGauss) ShowBackup(backupPath, instanceName, backupID string)
(*model.Backup, error) {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "AsyncBackup", backupPath, instanceName,
backupMode, threadsNum, dbPort)
- ret0, _ := ret[0].(string)
+ ret := m.ctrl.Call(m, "ShowBackup", backupPath, instanceName, backupID)
+ ret0, _ := ret[0].(*model.Backup)
ret1, _ := ret[1].(error)
return ret0, ret1
}
-// AsyncBackup indicates an expected call of AsyncBackup.
-func (mr *MockIOpenGaussMockRecorder) AsyncBackup(backupPath, instanceName,
backupMode, threadsNum, dbPort interface{}) *gomock.Call {
+// ShowBackup indicates an expected call of ShowBackup
+func (mr *MockIOpenGaussMockRecorder) ShowBackup(backupPath, instanceName,
backupID interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AsyncBackup",
reflect.TypeOf((*MockIOpenGauss)(nil).AsyncBackup), backupPath, instanceName,
backupMode, threadsNum, dbPort)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ShowBackup",
reflect.TypeOf((*MockIOpenGauss)(nil).ShowBackup), backupPath, instanceName,
backupID)
}
-// Auth mocks base method.
-func (m *MockIOpenGauss) Auth(user, password, dbName string, dbPort uint16)
error {
+// Init mocks base method
+func (m *MockIOpenGauss) Init(backupPath string) error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "Auth", user, password, dbName, dbPort)
+ ret := m.ctrl.Call(m, "Init", backupPath)
ret0, _ := ret[0].(error)
return ret0
}
-// Auth indicates an expected call of Auth.
-func (mr *MockIOpenGaussMockRecorder) Auth(user, password, dbName, dbPort
interface{}) *gomock.Call {
+// Init indicates an expected call of Init
+func (mr *MockIOpenGaussMockRecorder) Init(backupPath interface{})
*gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Auth",
reflect.TypeOf((*MockIOpenGauss)(nil).Auth), user, password, dbName, dbPort)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init",
reflect.TypeOf((*MockIOpenGauss)(nil).Init), backupPath)
}
-// CheckSchema mocks base method.
-func (m *MockIOpenGauss) CheckSchema(user, password, dbName string, dbPort
uint16, schema string) error {
+// AddInstance mocks base method
+func (m *MockIOpenGauss) AddInstance(backupPath, instance string) error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "CheckSchema", user, password, dbName, dbPort,
schema)
+ ret := m.ctrl.Call(m, "AddInstance", backupPath, instance)
ret0, _ := ret[0].(error)
return ret0
}
-// CheckSchema indicates an expected call of CheckSchema.
-func (mr *MockIOpenGaussMockRecorder) CheckSchema(user, password, dbName,
dbPort, schema interface{}) *gomock.Call {
+// AddInstance indicates an expected call of AddInstance
+func (mr *MockIOpenGaussMockRecorder) AddInstance(backupPath, instance
interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckSchema",
reflect.TypeOf((*MockIOpenGauss)(nil).CheckSchema), user, password, dbName,
dbPort, schema)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddInstance",
reflect.TypeOf((*MockIOpenGauss)(nil).AddInstance), backupPath, instance)
}
-// CleanPgDataTemp mocks base method.
-func (m *MockIOpenGauss) CleanPgDataTemp() error {
+// DelInstance mocks base method
+func (m *MockIOpenGauss) DelInstance(backupPath, instance string) error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "CleanPgDataTemp")
+ ret := m.ctrl.Call(m, "DelInstance", backupPath, instance)
ret0, _ := ret[0].(error)
return ret0
}
-// CleanPgDataTemp indicates an expected call of CleanPgDataTemp.
-func (mr *MockIOpenGaussMockRecorder) CleanPgDataTemp() *gomock.Call {
+// DelInstance indicates an expected call of DelInstance
+func (mr *MockIOpenGaussMockRecorder) DelInstance(backupPath, instance
interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock,
"CleanPgDataTemp", reflect.TypeOf((*MockIOpenGauss)(nil).CleanPgDataTemp))
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DelInstance",
reflect.TypeOf((*MockIOpenGauss)(nil).DelInstance), backupPath, instance)
}
-// DelBackup mocks base method.
+// DelBackup mocks base method
func (m *MockIOpenGauss) DelBackup(backupPath, instance, backupID string)
error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DelBackup", backupPath, instance, backupID)
@@ -113,151 +113,150 @@ func (m *MockIOpenGauss) DelBackup(backupPath,
instance, backupID string) error
return ret0
}
-// DelBackup indicates an expected call of DelBackup.
+// DelBackup indicates an expected call of DelBackup
func (mr *MockIOpenGaussMockRecorder) DelBackup(backupPath, instance, backupID
interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DelBackup",
reflect.TypeOf((*MockIOpenGauss)(nil).DelBackup), backupPath, instance,
backupID)
}
-// DelInstance mocks base method.
-func (m *MockIOpenGauss) DelInstance(backupPath, instance string) error {
+// Start mocks base method
+func (m *MockIOpenGauss) Start() error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "DelInstance", backupPath, instance)
+ ret := m.ctrl.Call(m, "Start")
ret0, _ := ret[0].(error)
return ret0
}
-// DelInstance indicates an expected call of DelInstance.
-func (mr *MockIOpenGaussMockRecorder) DelInstance(backupPath, instance
interface{}) *gomock.Call {
+// Start indicates an expected call of Start
+func (mr *MockIOpenGaussMockRecorder) Start() *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DelInstance",
reflect.TypeOf((*MockIOpenGauss)(nil).DelInstance), backupPath, instance)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start",
reflect.TypeOf((*MockIOpenGauss)(nil).Start))
}
-// Init mocks base method.
-func (m *MockIOpenGauss) Init(backupPath string) error {
+// Stop mocks base method
+func (m *MockIOpenGauss) Stop() error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "Init", backupPath)
+ ret := m.ctrl.Call(m, "Stop")
ret0, _ := ret[0].(error)
return ret0
}
-// Init indicates an expected call of Init.
-func (mr *MockIOpenGaussMockRecorder) Init(backupPath interface{})
*gomock.Call {
+// Stop indicates an expected call of Stop
+func (mr *MockIOpenGaussMockRecorder) Stop() *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init",
reflect.TypeOf((*MockIOpenGauss)(nil).Init), backupPath)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop",
reflect.TypeOf((*MockIOpenGauss)(nil).Stop))
}
-// MvPgDataToTemp mocks base method.
-func (m *MockIOpenGauss) MvPgDataToTemp() error {
+// Status mocks base method
+func (m *MockIOpenGauss) Status() (string, error) {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "MvPgDataToTemp")
- ret0, _ := ret[0].(error)
- return ret0
+ ret := m.ctrl.Call(m, "Status")
+ ret0, _ := ret[0].(string)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
}
-// MvPgDataToTemp indicates an expected call of MvPgDataToTemp.
-func (mr *MockIOpenGaussMockRecorder) MvPgDataToTemp() *gomock.Call {
+// Status indicates an expected call of Status
+func (mr *MockIOpenGaussMockRecorder) Status() *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MvPgDataToTemp",
reflect.TypeOf((*MockIOpenGauss)(nil).MvPgDataToTemp))
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Status",
reflect.TypeOf((*MockIOpenGauss)(nil).Status))
}
-// MvTempToPgData mocks base method.
-func (m *MockIOpenGauss) MvTempToPgData() error {
+// Restore mocks base method
+func (m *MockIOpenGauss) Restore(backupPath, instance, backupID string,
threadsNum uint8) error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "MvTempToPgData")
+ ret := m.ctrl.Call(m, "Restore", backupPath, instance, backupID,
threadsNum)
ret0, _ := ret[0].(error)
return ret0
}
-// MvTempToPgData indicates an expected call of MvTempToPgData.
-func (mr *MockIOpenGaussMockRecorder) MvTempToPgData() *gomock.Call {
+// Restore indicates an expected call of Restore
+func (mr *MockIOpenGaussMockRecorder) Restore(backupPath, instance, backupID,
threadsNum interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MvTempToPgData",
reflect.TypeOf((*MockIOpenGauss)(nil).MvTempToPgData))
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Restore",
reflect.TypeOf((*MockIOpenGauss)(nil).Restore), backupPath, instance, backupID,
threadsNum)
}
-// Restore mocks base method.
-func (m *MockIOpenGauss) Restore(backupPath, instance, backupID string) error {
+// ShowBackupList mocks base method
+func (m *MockIOpenGauss) ShowBackupList(backupPath, instanceName string)
([]*model.Backup, error) {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "Restore", backupPath, instance, backupID)
- ret0, _ := ret[0].(error)
- return ret0
+ ret := m.ctrl.Call(m, "ShowBackupList", backupPath, instanceName)
+ ret0, _ := ret[0].([]*model.Backup)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
}
-// Restore indicates an expected call of Restore.
-func (mr *MockIOpenGaussMockRecorder) Restore(backupPath, instance, backupID
interface{}) *gomock.Call {
+// ShowBackupList indicates an expected call of ShowBackupList
+func (mr *MockIOpenGaussMockRecorder) ShowBackupList(backupPath, instanceName
interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Restore",
reflect.TypeOf((*MockIOpenGauss)(nil).Restore), backupPath, instance, backupID)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ShowBackupList",
reflect.TypeOf((*MockIOpenGauss)(nil).ShowBackupList), backupPath, instanceName)
}
-// ShowBackup mocks base method.
-func (m *MockIOpenGauss) ShowBackup(backupPath, instanceName, backupID string)
(*model.Backup, error) {
+// Auth mocks base method
+func (m *MockIOpenGauss) Auth(user, password, dbName string, dbPort uint16)
error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "ShowBackup", backupPath, instanceName, backupID)
- ret0, _ := ret[0].(*model.Backup)
- ret1, _ := ret[1].(error)
- return ret0, ret1
+ ret := m.ctrl.Call(m, "Auth", user, password, dbName, dbPort)
+ ret0, _ := ret[0].(error)
+ return ret0
}
-// ShowBackup indicates an expected call of ShowBackup.
-func (mr *MockIOpenGaussMockRecorder) ShowBackup(backupPath, instanceName,
backupID interface{}) *gomock.Call {
+// Auth indicates an expected call of Auth
+func (mr *MockIOpenGaussMockRecorder) Auth(user, password, dbName, dbPort
interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ShowBackup",
reflect.TypeOf((*MockIOpenGauss)(nil).ShowBackup), backupPath, instanceName,
backupID)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Auth",
reflect.TypeOf((*MockIOpenGauss)(nil).Auth), user, password, dbName, dbPort)
}
-// ShowBackupList mocks base method.
-func (m *MockIOpenGauss) ShowBackupList(backupPath, instanceName string)
([]*model.Backup, error) {
+// CheckSchema mocks base method
+func (m *MockIOpenGauss) CheckSchema(user, password, dbName string, dbPort
uint16, schema string) error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "ShowBackupList", backupPath, instanceName)
- ret0, _ := ret[0].([]*model.Backup)
- ret1, _ := ret[1].(error)
- return ret0, ret1
+ ret := m.ctrl.Call(m, "CheckSchema", user, password, dbName, dbPort,
schema)
+ ret0, _ := ret[0].(error)
+ return ret0
}
-// ShowBackupList indicates an expected call of ShowBackupList.
-func (mr *MockIOpenGaussMockRecorder) ShowBackupList(backupPath, instanceName
interface{}) *gomock.Call {
+// CheckSchema indicates an expected call of CheckSchema
+func (mr *MockIOpenGaussMockRecorder) CheckSchema(user, password, dbName,
dbPort, schema interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ShowBackupList",
reflect.TypeOf((*MockIOpenGauss)(nil).ShowBackupList), backupPath, instanceName)
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckSchema",
reflect.TypeOf((*MockIOpenGauss)(nil).CheckSchema), user, password, dbName,
dbPort, schema)
}
-// Start mocks base method.
-func (m *MockIOpenGauss) Start() error {
+// MvTempToPgData mocks base method
+func (m *MockIOpenGauss) MvTempToPgData() error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "Start")
+ ret := m.ctrl.Call(m, "MvTempToPgData")
ret0, _ := ret[0].(error)
return ret0
}
-// Start indicates an expected call of Start.
-func (mr *MockIOpenGaussMockRecorder) Start() *gomock.Call {
+// MvTempToPgData indicates an expected call of MvTempToPgData
+func (mr *MockIOpenGaussMockRecorder) MvTempToPgData() *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start",
reflect.TypeOf((*MockIOpenGauss)(nil).Start))
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MvTempToPgData",
reflect.TypeOf((*MockIOpenGauss)(nil).MvTempToPgData))
}
-// Status mocks base method.
-func (m *MockIOpenGauss) Status() (string, error) {
+// MvPgDataToTemp mocks base method
+func (m *MockIOpenGauss) MvPgDataToTemp() error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "Status")
- ret0, _ := ret[0].(string)
- ret1, _ := ret[1].(error)
- return ret0, ret1
+ ret := m.ctrl.Call(m, "MvPgDataToTemp")
+ ret0, _ := ret[0].(error)
+ return ret0
}
-// Status indicates an expected call of Status.
-func (mr *MockIOpenGaussMockRecorder) Status() *gomock.Call {
+// MvPgDataToTemp indicates an expected call of MvPgDataToTemp
+func (mr *MockIOpenGaussMockRecorder) MvPgDataToTemp() *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Status",
reflect.TypeOf((*MockIOpenGauss)(nil).Status))
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MvPgDataToTemp",
reflect.TypeOf((*MockIOpenGauss)(nil).MvPgDataToTemp))
}
-// Stop mocks base method.
-func (m *MockIOpenGauss) Stop() error {
+// CleanPgDataTemp mocks base method
+func (m *MockIOpenGauss) CleanPgDataTemp() error {
m.ctrl.T.Helper()
- ret := m.ctrl.Call(m, "Stop")
+ ret := m.ctrl.Call(m, "CleanPgDataTemp")
ret0, _ := ret[0].(error)
return ret0
}
-// Stop indicates an expected call of Stop.
-func (mr *MockIOpenGaussMockRecorder) Stop() *gomock.Call {
+// CleanPgDataTemp indicates an expected call of CleanPgDataTemp
+func (mr *MockIOpenGaussMockRecorder) CleanPgDataTemp() *gomock.Call {
mr.mock.ctrl.T.Helper()
- return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop",
reflect.TypeOf((*MockIOpenGauss)(nil).Stop))
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock,
"CleanPgDataTemp", reflect.TypeOf((*MockIOpenGauss)(nil).CleanPgDataTemp))
}
diff --git a/pitr/agent/internal/pkg/opengauss.go
b/pitr/agent/internal/pkg/opengauss.go
index ad3220d..b1b8b13 100644
--- a/pitr/agent/internal/pkg/opengauss.go
+++ b/pitr/agent/internal/pkg/opengauss.go
@@ -50,7 +50,7 @@ type (
Start() error
Stop() error
Status() (string, error)
- Restore(backupPath, instance, backupID string) error
+ Restore(backupPath, instance, backupID string, threadsNum
uint8) error
ShowBackupList(backupPath, instanceName string)
([]*model.Backup, error)
Auth(user, password, dbName string, dbPort uint16) error
CheckSchema(user, password, dbName string, dbPort uint16,
schema string) error
@@ -78,7 +78,7 @@ const (
_backupFmt = "gs_probackup backup --backup-path=%s --instance=%s
--backup-mode=%s --pgdata=%s --threads=%d --pgport %d 2>&1"
_showFmt = "gs_probackup show --instance=%s --backup-path=%s
--backup-id=%s --format=json 2>&1"
_delBackupFmt = "gs_probackup delete --backup-path=%s --instance=%s
--backup-id=%s 2>&1"
- _restoreFmt = "gs_probackup restore --backup-path=%s --instance=%s
--backup-id=%s --pgdata=%s 2>&1"
+ _restoreFmt = "gs_probackup restore --backup-path=%s --instance=%s
--backup-id=%s --pgdata=%s --threads=%d 2>&1"
_initFmt = "gs_probackup init --backup-path=%s 2>&1"
_rmDirFmt = "rm -r %s"
@@ -277,8 +277,8 @@ func (og *openGauss) Status() (string, error) {
}
// Restore TODO:Dependent environments require integration testing
-func (og *openGauss) Restore(backupPath, instance, backupID string) error {
- cmd := fmt.Sprintf(_restoreFmt, backupPath, instance, backupID,
og.pgData)
+func (og *openGauss) Restore(backupPath, instance, backupID string, threadsNum
uint8) error {
+ cmd := fmt.Sprintf(_restoreFmt, backupPath, instance, backupID,
og.pgData, threadsNum)
outputs, err := cmds.AsyncExec(og.shell, cmd)
for output := range outputs {
og.log.
diff --git a/pitr/cli/internal/cmd/restore.go b/pitr/cli/internal/cmd/restore.go
index 791a043..3289f3d 100644
--- a/pitr/cli/internal/cmd/restore.go
+++ b/pitr/cli/internal/cmd/restore.go
@@ -68,7 +68,6 @@ var RestoreCmd = &cobra.Command{
//nolint:dupl
func init() {
RootCmd.AddCommand(RestoreCmd)
-
RestoreCmd.Flags().StringVarP(&Host, "host", "H", "", "ss-proxy
hostname or ip")
_ = RestoreCmd.MarkFlagRequired("host")
RestoreCmd.Flags().Uint16VarP(&Port, "port", "P", 0, "ss-proxy port")
@@ -82,6 +81,7 @@ func init() {
RestoreCmd.Flags().Uint16VarP(&AgentPort, "agent-port", "a", 443,
"agent server port")
_ = RestoreCmd.MarkFlagRequired("agent-port")
+ RestoreCmd.Flags().Uint8VarP(&ThreadsNum, "dn-threads-num", "j", 1,
"openGauss data restore threads nums")
RestoreCmd.Flags().StringVarP(&CSN, "csn", "", "", "commit sequence
number")
RestoreCmd.Flags().StringVarP(&RecordID, "id", "", "", "backup record
id")
}
@@ -247,6 +247,7 @@ func doRestore(as pkg.IAgentServer, sn *model.StorageNode,
backupID string, resu
Instance: defaultInstance,
DnBackupPath: BackupPath,
DnBackupID: backupID,
+ DnThreadsNum: ThreadsNum,
}
pw.AppendTracker(tracker)
diff --git a/pitr/cli/internal/pkg/model/as_restore.go
b/pitr/cli/internal/pkg/model/as_restore.go
index bc399db..83f49a1 100644
--- a/pitr/cli/internal/pkg/model/as_restore.go
+++ b/pitr/cli/internal/pkg/model/as_restore.go
@@ -26,6 +26,7 @@ type (
Instance string `json:"instance"`
DnBackupPath string `json:"dn_backup_path"`
DnBackupID string `json:"dn_backup_id"`
+ DnThreadsNum uint8 `json:"dn_threads_num"`
}
RestoreResp struct {