mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-05 04:55:22 +00:00
store backup resource list metadata in object storage (#1709)
* move backedUpItems to pkg/backup.Request struct Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * construct resource itemKey field from gvk Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * store backup resource list metadata in object storage Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * remove debug log Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * fix formatting Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * add missing license blocks and split BackupInfo struct lines Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * add test for checking BackedUpItems matches tarball contents Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com> * add comment to explain test Signed-off-by: Adnan Abdulhussein <aadnan@vmware.com>
This commit is contained in:
committed by
Steve Kriss
parent
635dd27e1a
commit
07525bd593
@@ -570,7 +570,6 @@ func persistBackup(backup *pkgbackup.Request, backupContents, backupLog *os.File
|
||||
|
||||
volumeSnapshots := new(bytes.Buffer)
|
||||
gzw := gzip.NewWriter(volumeSnapshots)
|
||||
defer gzw.Close()
|
||||
|
||||
if err := json.NewEncoder(gzw).Encode(backup.VolumeSnapshots); err != nil {
|
||||
errs = append(errs, errors.Wrap(err, "error encoding list of volume snapshots"))
|
||||
@@ -581,7 +580,6 @@ func persistBackup(backup *pkgbackup.Request, backupContents, backupLog *os.File
|
||||
|
||||
podVolumeBackups := new(bytes.Buffer)
|
||||
gzw = gzip.NewWriter(podVolumeBackups)
|
||||
defer gzw.Close()
|
||||
|
||||
if err := json.NewEncoder(gzw).Encode(backup.PodVolumeBackups); err != nil {
|
||||
errs = append(errs, errors.Wrap(err, "error encoding pod volume backups"))
|
||||
@@ -590,20 +588,32 @@ func persistBackup(backup *pkgbackup.Request, backupContents, backupLog *os.File
|
||||
errs = append(errs, errors.Wrap(err, "error closing gzip writer"))
|
||||
}
|
||||
|
||||
backupResourceList := new(bytes.Buffer)
|
||||
gzw = gzip.NewWriter(backupResourceList)
|
||||
|
||||
if err := json.NewEncoder(gzw).Encode(backup.BackupResourceList()); err != nil {
|
||||
errs = append(errs, errors.Wrap(err, "error encoding backup resource list"))
|
||||
}
|
||||
if err := gzw.Close(); err != nil {
|
||||
errs = append(errs, errors.Wrap(err, "error closing gzip writer"))
|
||||
}
|
||||
|
||||
if len(errs) > 0 {
|
||||
// Don't upload the JSON files or backup tarball if encoding to json fails.
|
||||
backupJSON = nil
|
||||
backupContents = nil
|
||||
volumeSnapshots = nil
|
||||
backupResourceList = nil
|
||||
}
|
||||
|
||||
backupInfo := persistence.BackupInfo{
|
||||
Name: backup.Name,
|
||||
Metadata: backupJSON,
|
||||
Contents: backupContents,
|
||||
Log: backupLog,
|
||||
PodVolumeBackups: podVolumeBackups,
|
||||
VolumeSnapshots: volumeSnapshots,
|
||||
Name: backup.Name,
|
||||
Metadata: backupJSON,
|
||||
Contents: backupContents,
|
||||
Log: backupLog,
|
||||
PodVolumeBackups: podVolumeBackups,
|
||||
VolumeSnapshots: volumeSnapshots,
|
||||
BackupResourceList: backupResourceList,
|
||||
}
|
||||
if err := backupStore.PutBackup(backupInfo); err != nil {
|
||||
errs = append(errs, err)
|
||||
|
||||
Reference in New Issue
Block a user