From cac0dad6168ce3be0c8bbaafd1e2808f4d755dd6 Mon Sep 17 00:00:00 2001 From: powerfool Date: Tue, 24 Dec 2024 15:32:25 +0800 Subject: [PATCH] fix(backup): fixed api handlers for creating backup policy (#692) --- api/constants/backup.go | 8 ++++++++ internal/dashboard/business/oceanbase/obtenantbackup.go | 4 ++++ pkg/oceanbase-sdk/const/sql/backup.go | 4 ++-- pkg/oceanbase-sdk/const/sql/parameter.go | 4 ++-- pkg/oceanbase-sdk/model/parameter.go | 8 +++----- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/api/constants/backup.go b/api/constants/backup.go index 9a23bfaee..f41fcdca3 100644 --- a/api/constants/backup.go +++ b/api/constants/backup.go @@ -73,3 +73,11 @@ var DestPathPatternMapping = map[types.BackupDestType]*regexp.Regexp{ BackupDestTypeS3Compatible: regexp.MustCompile(`^s3://[^/]+/[^/].*\\?host=.+$`), BackupDestTypeNFS: regexp.MustCompile(`^\S+$`), } + +var DestPathPrefixMapping = map[types.BackupDestType]string{ + BackupDestTypeOSS: "oss://", + BackupDestTypeCOS: "cos://", + BackupDestTypeS3: "s3://", + BackupDestTypeS3Compatible: "s3://", + BackupDestTypeNFS: "file://", +} diff --git a/internal/dashboard/business/oceanbase/obtenantbackup.go b/internal/dashboard/business/oceanbase/obtenantbackup.go index e15923d7a..da1b706af 100644 --- a/internal/dashboard/business/oceanbase/obtenantbackup.go +++ b/internal/dashboard/business/oceanbase/obtenantbackup.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/rand" + "github.com/oceanbase/ob-operator/api/constants" apiconst "github.com/oceanbase/ob-operator/api/constants" apitypes "github.com/oceanbase/ob-operator/api/types" "github.com/oceanbase/ob-operator/api/v1alpha1" @@ -358,6 +359,9 @@ func CreateTenantBackupPolicy(ctx context.Context, nn types.NamespacedName, p *p ossSecretName := nn.Name + "-backup-" + strings.ToLower(strings.ReplaceAll(string(p.DestType), "_", "-")) + "-secret-" + rand.String(6) backupPolicy.Spec.LogArchive.Destination.OSSAccessSecret = ossSecretName backupPolicy.Spec.DataBackup.Destination.OSSAccessSecret = ossSecretName + + backupPolicy.Spec.LogArchive.Destination.Path = constants.DestPathPrefixMapping[apitypes.BackupDestType(p.DestType)] + p.ArchivePath + "?host=" + p.Host + backupPolicy.Spec.DataBackup.Destination.Path = constants.DestPathPrefixMapping[apitypes.BackupDestType(p.DestType)] + p.BakDataPath + "?host=" + p.Host secret := &corev1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: ossSecretName, diff --git a/pkg/oceanbase-sdk/const/sql/backup.go b/pkg/oceanbase-sdk/const/sql/backup.go index 616545448..421d3da49 100644 --- a/pkg/oceanbase-sdk/const/sql/backup.go +++ b/pkg/oceanbase-sdk/const/sql/backup.go @@ -18,8 +18,8 @@ const jobCommonFields = "job_id, executor_tenant_id, job_level, start_timestamp, const backupJobFields = jobCommonFields + ", backup_set_id, plus_archivelog, backup_type, encryption_mode, passwd" const backupTaskFields = "job_id, backup_set_id, start_timestamp, end_timestamp, status, result, comment, task_id, incarnation, start_scn, end_scn, user_ls_start_scn, encryption_mode, passwd, input_bytes, output_bytes, output_rate_bytes, extra_meta_bytes, tablet_count, finish_tablet_count, macro_block_count, finish_macro_block_count, file_count, meta_turn_id, data_turn_id, path" const cleanJobFields = jobCommonFields + ", type, parameter, task_count, success_task_count" -const logArchiveJobFields = "dest_id, round_id, dest_no, status, start_scn, start_scn_display, checkpoint_scn, checkpoint_scn_display, compatible, base_piece_id, used_piece_id, piece_switch_interval, input_bytes, input_bytes_display, output_bytes, output_bytes_display, compression_ratio, deleted_input_bytes, deleted_input_bytes_display, deleted_output_bytes, deleted_output_bytes_display, comment, path" -const logArchivePieceFileFields = "dest_id, round_id, piece_id, incarnation, dest_no, status, start_scn, start_scn_display, checkpoint_scn, checkpoint_scn_display, max_scn, end_scn, end_scn_display, compatible, unit_size, compression, input_bytes, input_bytes_display, output_bytes, output_bytes_display, compression_ratio, file_status, path" +const logArchiveJobFields = "dest_id, round_id, dest_no, status, start_scn, start_scn_display, checkpoint_scn, IFNULL(checkpoint_scn_display, '-') as checkpoint_scn_display, compatible, base_piece_id, used_piece_id, piece_switch_interval, input_bytes, input_bytes_display, output_bytes, output_bytes_display, compression_ratio, deleted_input_bytes, deleted_input_bytes_display, deleted_output_bytes, deleted_output_bytes_display, comment, path" +const logArchivePieceFileFields = "dest_id, round_id, piece_id, incarnation, dest_no, status, start_scn, start_scn_display, checkpoint_scn, IFNULL(checkpoint_scn_display, '-') as checkpoint_scn_display, max_scn, end_scn, end_scn_display, compatible, unit_size, compression, input_bytes, input_bytes_display, output_bytes, output_bytes_display, compression_ratio, file_status, path" const ( EnableArchiveLog = "ALTER SYSTEM ARCHIVELOG" diff --git a/pkg/oceanbase-sdk/const/sql/parameter.go b/pkg/oceanbase-sdk/const/sql/parameter.go index 9291592b7..6a0628390 100644 --- a/pkg/oceanbase-sdk/const/sql/parameter.go +++ b/pkg/oceanbase-sdk/const/sql/parameter.go @@ -20,7 +20,7 @@ const ( ) const ( - ListParametersWithTenantID = "select name, value, data_type, info, section, default_value, isdefault, edit_level, scope from GV$OB_PARAMETERS where tenant_id = ?" + ListParametersWithTenantID = "select name, value, data_type, info, section, edit_level, scope from GV$OB_PARAMETERS where tenant_id = ?" SelectCompatibleOfTenants = "select name, value, tenant_id from GV$OB_PARAMETERS where name = 'compatible'" - ListParametersGroupByName = "select name, value, data_type, info, section, default_value, isdefault, edit_level, scope, svr_ip, zone, svr_port, IFNULL(tenant_id, 0) as tenant_id from GV$OB_PARAMETERS group by name" + ListParametersGroupByName = "select name, value, data_type, info, section, edit_level, scope, svr_ip, zone, svr_port, IFNULL(tenant_id, 0) as tenant_id from GV$OB_PARAMETERS group by name" ) diff --git a/pkg/oceanbase-sdk/model/parameter.go b/pkg/oceanbase-sdk/model/parameter.go index 8209ac7d0..81859f65b 100644 --- a/pkg/oceanbase-sdk/model/parameter.go +++ b/pkg/oceanbase-sdk/model/parameter.go @@ -22,9 +22,7 @@ type Parameter struct { EditLevel string `json:"edit_level" db:"edit_level"` TenantID int64 `json:"tenant_id" db:"tenant_id"` - DataType string `json:"dataType" db:"data_type"` - Info string `json:"info"` - Section string `json:"section"` - DefaultValue string `json:"defaultValue" db:"default_value"` - IsDefault string `json:"isDefault" db:"isdefault"` + DataType string `json:"dataType" db:"data_type"` + Info string `json:"info"` + Section string `json:"section"` }