Guest User

Untitled

a guest
May 26th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. func (br *backupService) UploadBackup(bucket, backupName string, metadata, backup, log io.Reader) error {
  2. // Uploading the log file is best-effort; if it fails, we log the error but it doesn't impact the
  3. // backup's status.
  4. logKey := getBackupLogKey(backupName, backupName)
  5. if err := br.seekAndPutObject(bucket, logKey, log); err != nil {
  6. br.logger.WithError(err).WithFields(logrus.Fields{
  7. "bucket": bucket,
  8. "key": logKey,
  9. }).Error("Error uploading log file")
  10. }
  11. br.logger.Info("Completed log file upload")
  12.  
  13. if metadata == nil {
  14. // If we don't have metadata, something failed, and there's no point in continuing. An object
  15. // storage bucket that is missing the metadata file can't be restored, nor can its logs be
  16. // viewed.
  17. br.logger.Debug("Metadata was nil, returning early")
  18. return nil
  19. }
  20.  
  21. // upload metadata file
  22. metadataKey := getMetadataKey(backupName)
  23. if err := br.seekAndPutObject(bucket, metadataKey, metadata); err != nil {
  24. // failure to upload metadata file is a hard-stop
  25. br.logger.Info("Failed to upload metadata file")
  26. return err
  27. }
  28. br.logger.Info("Completed metadata upload")
  29.  
  30. if backup != nil {
  31. // upload tar file
  32. if err := br.seekAndPutObject(bucket, getBackupContentsKey(backupName, backupName), backup); err != nil {
  33. // try to delete the metadata file since the data upload failed
  34. deleteErr := br.objectStore.DeleteObject(bucket, metadataKey)
  35. br.logger.Info("Failed to upload backup")
  36. return kerrors.NewAggregate([]error{err, deleteErr})
  37. }
  38. br.logger.Info("Completed backup upload")
  39. }
  40.  
  41. return nil
  42. }
Add Comment
Please, Sign In to add comment