wal-g

Форк
0
/
backup_list.go 
65 строк · 2.1 Кб
1
package pg
2

3
import (
4
	"github.com/spf13/cobra"
5
	"github.com/wal-g/tracelog"
6
	"github.com/wal-g/wal-g/internal"
7
	"github.com/wal-g/wal-g/internal/databases/postgres"
8
	"github.com/wal-g/wal-g/internal/multistorage"
9
	"github.com/wal-g/wal-g/internal/multistorage/policies"
10
	"github.com/wal-g/wal-g/utility"
11
)
12

13
const (
14
	backupListShortDescription = "Prints full list of backups from which recovery is available"
15
	PrettyFlag                 = "pretty"
16
	JSONFlag                   = "json"
17
	DetailFlag                 = "detail"
18
)
19

20
var (
21
	// backupListCmd represents the backupList command
22
	backupListCmd = &cobra.Command{
23
		Use:   "backup-list",
24
		Short: backupListShortDescription,
25
		Args:  cobra.NoArgs,
26
		Run: func(cmd *cobra.Command, _ []string) {
27
			storage, err := postgres.ConfigureMultiStorage(false)
28
			tracelog.ErrorLogger.FatalOnError(err)
29

30
			rootFolder := multistorage.SetPolicies(storage.RootFolder(), policies.UniteAllStorages)
31
			if targetStorage == "" {
32
				rootFolder, err = multistorage.UseAllAliveStorages(rootFolder)
33
			} else {
34
				rootFolder, err = multistorage.UseSpecificStorage(targetStorage, rootFolder)
35
			}
36
			tracelog.ErrorLogger.FatalOnError(err)
37
			tracelog.InfoLogger.Printf("List backups from storages: %v", multistorage.UsedStorages(rootFolder))
38

39
			backupsFolder := rootFolder.GetSubFolder(utility.BaseBackupPath)
40
			if detail {
41
				postgres.HandleDetailedBackupList(backupsFolder, pretty, json)
42
			} else {
43
				internal.HandleDefaultBackupList(backupsFolder, pretty, json)
44
			}
45
		},
46
	}
47
	pretty = false
48
	json   = false
49
	detail = false
50
)
51

52
func init() {
53
	Cmd.AddCommand(backupListCmd)
54

55
	// TODO: Merge similar backup-list functionality
56
	// to avoid code duplication in command handlers
57
	backupListCmd.Flags().BoolVar(&pretty, PrettyFlag, false,
58
		"Prints more readable output in table format")
59
	backupListCmd.Flags().BoolVar(&json, JSONFlag, false,
60
		"Prints output in JSON format, multiline and indented if combined with --pretty flag")
61
	backupListCmd.Flags().BoolVar(&detail, DetailFlag, false,
62
		"Prints extra DB-specific backup details")
63
	backupListCmd.Flags().StringVar(&targetStorage, "target-storage", "",
64
		targetStorageDescription)
65
}
66

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.