avoid panics if can't get block store during deletion
Signed-off-by: Steve Kriss <steve@heptio.com>pull/948/head
parent
4a03370f1d
commit
268080ad09
|
@ -241,29 +241,30 @@ func (c *backupDeletionController) processRequest(req *v1.DeleteBackupRequest) e
|
||||||
backupStore, backupStoreErr := c.backupStoreForBackup(backup, pluginManager, log)
|
backupStore, backupStoreErr := c.backupStoreForBackup(backup, pluginManager, log)
|
||||||
if backupStoreErr != nil {
|
if backupStoreErr != nil {
|
||||||
errs = append(errs, backupStoreErr.Error())
|
errs = append(errs, backupStoreErr.Error())
|
||||||
// TODO need to not proceed since backupStore will be nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Removing PV snapshots")
|
if backupStore != nil {
|
||||||
if snapshots, err := backupStore.GetBackupVolumeSnapshots(backup.Name); err != nil {
|
log.Info("Removing PV snapshots")
|
||||||
errs = append(errs, errors.Wrap(err, "error getting backup's volume snapshots").Error())
|
if snapshots, err := backupStore.GetBackupVolumeSnapshots(backup.Name); err != nil {
|
||||||
} else {
|
errs = append(errs, errors.Wrap(err, "error getting backup's volume snapshots").Error())
|
||||||
blockStores := make(map[string]cloudprovider.BlockStore)
|
} else {
|
||||||
|
blockStores := make(map[string]cloudprovider.BlockStore)
|
||||||
|
|
||||||
for _, snapshot := range snapshots {
|
for _, snapshot := range snapshots {
|
||||||
log.WithField("providerSnapshotID", snapshot.Status.ProviderSnapshotID).Info("Removing snapshot associated with backup")
|
log.WithField("providerSnapshotID", snapshot.Status.ProviderSnapshotID).Info("Removing snapshot associated with backup")
|
||||||
|
|
||||||
blockStore, ok := blockStores[snapshot.Spec.Location]
|
blockStore, ok := blockStores[snapshot.Spec.Location]
|
||||||
if !ok {
|
if !ok {
|
||||||
if blockStore, err = blockStoreForSnapshotLocation(backup.Namespace, snapshot.Spec.Location, c.snapshotLocationLister, pluginManager); err != nil {
|
if blockStore, err = blockStoreForSnapshotLocation(backup.Namespace, snapshot.Spec.Location, c.snapshotLocationLister, pluginManager); err != nil {
|
||||||
errs = append(errs, err.Error())
|
errs = append(errs, err.Error())
|
||||||
continue
|
continue
|
||||||
|
}
|
||||||
|
blockStores[snapshot.Spec.Location] = blockStore
|
||||||
}
|
}
|
||||||
blockStores[snapshot.Spec.Location] = blockStore
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := blockStore.DeleteSnapshot(snapshot.Status.ProviderSnapshotID); err != nil {
|
if err := blockStore.DeleteSnapshot(snapshot.Status.ProviderSnapshotID); err != nil {
|
||||||
errs = append(errs, errors.Wrapf(err, "error deleting snapshot %s", snapshot.Status.ProviderSnapshotID).Error())
|
errs = append(errs, errors.Wrapf(err, "error deleting snapshot %s", snapshot.Status.ProviderSnapshotID).Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -275,9 +276,11 @@ func (c *backupDeletionController) processRequest(req *v1.DeleteBackupRequest) e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Removing backup from backup storage")
|
if backupStore != nil {
|
||||||
if err := backupStore.DeleteBackup(backup.Name); err != nil {
|
log.Info("Removing backup from backup storage")
|
||||||
errs = append(errs, err.Error())
|
if err := backupStore.DeleteBackup(backup.Name); err != nil {
|
||||||
|
errs = append(errs, err.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Removing restores")
|
log.Info("Removing restores")
|
||||||
|
|
Loading…
Reference in New Issue