mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-08 06:15:40 +00:00
@@ -83,9 +83,8 @@ type restoreController struct {
|
||||
newBackupStore func(*api.BackupStorageLocation, persistence.ObjectStoreGetter, logrus.FieldLogger) (persistence.BackupStore, error)
|
||||
}
|
||||
|
||||
type apiRestoreResult struct {
|
||||
warnings api.RestoreResult
|
||||
errors api.RestoreResult
|
||||
type restoreResult struct {
|
||||
warnings, errors api.RestoreResult
|
||||
}
|
||||
|
||||
func NewRestoreController(
|
||||
@@ -236,20 +235,20 @@ func (c *restoreController) processRestore(key string) error {
|
||||
log.Debug("Running restore")
|
||||
|
||||
// execution & upload of restore
|
||||
apiRestoreResults, restoreFailure := c.runRestore(
|
||||
restoreRes, restoreFailure := c.runRestore(
|
||||
restore,
|
||||
actions,
|
||||
info,
|
||||
pluginManager,
|
||||
)
|
||||
|
||||
restore.Status.Warnings = len(apiRestoreResults.warnings.Ark) + len(apiRestoreResults.warnings.Cluster)
|
||||
for _, w := range apiRestoreResults.warnings.Namespaces {
|
||||
restore.Status.Warnings = len(restoreRes.warnings.Ark) + len(restoreRes.warnings.Cluster)
|
||||
for _, w := range restoreRes.warnings.Namespaces {
|
||||
restore.Status.Warnings += len(w)
|
||||
}
|
||||
|
||||
restore.Status.Errors = len(apiRestoreResults.errors.Ark) + len(apiRestoreResults.errors.Cluster)
|
||||
for _, e := range apiRestoreResults.errors.Namespaces {
|
||||
restore.Status.Errors = len(restoreRes.errors.Ark) + len(restoreRes.errors.Cluster)
|
||||
for _, e := range restoreRes.errors.Namespaces {
|
||||
restore.Status.Errors += len(e)
|
||||
}
|
||||
|
||||
@@ -491,7 +490,7 @@ func (c *restoreController) runRestore(
|
||||
actions []restore.ItemAction,
|
||||
info backupInfo,
|
||||
pluginManager plugin.Manager,
|
||||
) (apiRestoreResult, error) {
|
||||
) (restoreResult, error) {
|
||||
var restoreWarnings, restoreErrors api.RestoreResult
|
||||
var restoreFailure error
|
||||
logFile, err := ioutil.TempFile("", "")
|
||||
@@ -506,7 +505,7 @@ func (c *restoreController) runRestore(
|
||||
WithError(errors.WithStack(err)).
|
||||
Error("Error creating log temp file")
|
||||
restoreErrors.Ark = append(restoreErrors.Ark, err.Error())
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
gzippedLogFile := gzip.NewWriter(logFile)
|
||||
// Assuming we successfully uploaded the log file, this will have already been closed below. It is safe to call
|
||||
@@ -529,7 +528,7 @@ func (c *restoreController) runRestore(
|
||||
log.WithError(err).Error("Error downloading backup")
|
||||
restoreErrors.Ark = append(restoreErrors.Ark, err.Error())
|
||||
restoreFailure = err
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
defer closeAndRemoveFile(backupFile, c.logger)
|
||||
|
||||
@@ -538,7 +537,7 @@ func (c *restoreController) runRestore(
|
||||
log.WithError(errors.WithStack(err)).Error("Error creating results temp file")
|
||||
restoreErrors.Ark = append(restoreErrors.Ark, err.Error())
|
||||
restoreFailure = err
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
defer closeAndRemoveFile(resultsFile, c.logger)
|
||||
|
||||
@@ -547,7 +546,7 @@ func (c *restoreController) runRestore(
|
||||
log.WithError(errors.WithStack(err)).Error("Error fetching volume snapshots")
|
||||
restoreErrors.Ark = append(restoreErrors.Ark, err.Error())
|
||||
restoreFailure = err
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
|
||||
// Any return statement above this line means a total restore failure
|
||||
@@ -563,7 +562,7 @@ func (c *restoreController) runRestore(
|
||||
// Reset the offset to 0 for reading
|
||||
if _, err = logFile.Seek(0, 0); err != nil {
|
||||
restoreErrors.Ark = append(restoreErrors.Ark, fmt.Sprintf("error resetting log file offset to 0: %v", err))
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
|
||||
if err := info.backupStore.PutRestoreLog(restore.Spec.BackupName, restore.Name, logFile); err != nil {
|
||||
@@ -579,19 +578,19 @@ func (c *restoreController) runRestore(
|
||||
|
||||
if err := json.NewEncoder(gzippedResultsFile).Encode(m); err != nil {
|
||||
log.WithError(errors.WithStack(err)).Error("Error encoding restore results")
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
gzippedResultsFile.Close()
|
||||
|
||||
if _, err = resultsFile.Seek(0, 0); err != nil {
|
||||
log.WithError(errors.WithStack(err)).Error("Error resetting results file offset to 0")
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
if err := info.backupStore.PutRestoreResults(restore.Spec.BackupName, restore.Name, resultsFile); err != nil {
|
||||
log.WithError(errors.WithStack(err)).Error("Error uploading results file to backup storage")
|
||||
}
|
||||
|
||||
return apiRestoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
return restoreResult{warnings: restoreWarnings, errors: restoreErrors}, restoreFailure
|
||||
}
|
||||
|
||||
func downloadToTempFile(
|
||||
|
||||
Reference in New Issue
Block a user