forked from wal-g/wal-g
/
segment_backup.go
40 lines (32 loc) · 904 Bytes
/
segment_backup.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package greenplum
import (
"github.com/T0n0T/wal-g/internal"
"github.com/T0n0T/wal-g/internal/databases/postgres"
"github.com/T0n0T/wal-g/pkg/storages/storage"
)
type SegBackup struct {
postgres.Backup
AoFilesMetadataDto *AOFilesMetadataDTO
}
func NewSegBackup(baseBackupFolder storage.Folder, name string) SegBackup {
return SegBackup{
Backup: postgres.NewBackup(baseBackupFolder, name),
}
}
func ToGpSegBackup(source postgres.Backup) (output SegBackup) {
return SegBackup{
Backup: source,
}
}
func (backup *SegBackup) LoadAoFilesMetadata() (*AOFilesMetadataDTO, error) {
if backup.AoFilesMetadataDto != nil {
return backup.AoFilesMetadataDto, nil
}
var meta AOFilesMetadataDTO
err := internal.FetchDto(backup.Folder, &meta, getAOFilesMetadataPath(backup.Name))
if err != nil {
return nil, err
}
backup.AoFilesMetadataDto = &meta
return backup.AoFilesMetadataDto, nil
}