MCPcopy
hub / github.com/pingcap/tidb / encodeBackupMetaCommand

Function encodeBackupMetaCommand

br/cmd/br/debug.go:348–402  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

346}
347
348func encodeBackupMetaCommand() *cobra.Command {
349 encodeBackupMetaCmd := &cobra.Command{
350 Use: "encode",
351 Short: "encode backupmeta json file to backupmeta",
352 Args: cobra.NoArgs,
353 RunE: func(cmd *cobra.Command, args []string) error {
354 ctx, cancel := context.WithCancel(GetDefaultContext())
355 defer cancel()
356
357 var cfg task.Config
358 if err := cfg.ParseFromFlags(cmd.Flags()); err != nil {
359 return errors.Trace(err)
360 }
361 _, s, err := task.GetStorage(ctx, cfg.Storage, &cfg)
362 if err != nil {
363 return errors.Trace(err)
364 }
365
366 metaData, err := s.ReadFile(ctx, metautil.MetaJSONFile)
367 if err != nil {
368 return errors.Trace(err)
369 }
370
371 backupMetaJSON, err := utils.UnmarshalBackupMeta(metaData)
372 if err != nil {
373 return errors.Trace(err)
374 }
375 if backupMetaJSON.Version == metautil.MetaV2 {
376 return errors.Errorf("encoding backupmeta v2 is unimplemented")
377 }
378 backupMeta, err := proto.Marshal(backupMetaJSON)
379 if err != nil {
380 return errors.Trace(err)
381 }
382
383 fileName := metautil.MetaFile
384 if ok, _ := s.FileExists(ctx, fileName); ok {
385 // Do not overwrite origin meta file
386 fileName += "_from_json"
387 }
388
389 encryptedContent, iv, err := metautil.Encrypt(backupMeta, &cfg.CipherInfo)
390 if err != nil {
391 return errors.Trace(err)
392 }
393
394 err = s.WriteFile(ctx, fileName, append(iv, encryptedContent...))
395 if err != nil {
396 return errors.Trace(err)
397 }
398 return nil
399 },
400 }
401 return encodeBackupMetaCmd
402}
403
404func setPDConfigCommand() *cobra.Command {
405 pdConfigCmd := &cobra.Command{

Callers 1

NewDebugCommandFunction · 0.85

Calls 12

ParseFromFlagsMethod · 0.95
GetStorageFunction · 0.92
UnmarshalBackupMetaFunction · 0.92
EncryptFunction · 0.92
GetDefaultContextFunction · 0.85
WithCancelMethod · 0.80
FlagsMethod · 0.80
ReadFileMethod · 0.65
ErrorfMethod · 0.65
MarshalMethod · 0.65
FileExistsMethod · 0.65
WriteFileMethod · 0.65

Tested by

no test coverage detected