details and restore exit on missing backup (#2066)
## Description Ensures that the details and restore commands exit without attempting further processing if a backupID doesn't point to either a valid backup or backup details, and that the user is appropriately notified. ## Does this PR need a docs update or release note? - [x] ⛔ No ## Type of change - [x] 🧹 Tech Debt/Cleanup ## Issue(s) * #1877 ## Test Plan - [x] 💚 E2E
This commit is contained in:
parent
634780a189
commit
daaa258867
@ -508,11 +508,6 @@ func runDetailsExchangeCmd(
|
||||
sel := utils.IncludeExchangeRestoreDataSelectors(opts)
|
||||
utils.FilterExchangeRestoreInfoSelectors(sel, opts)
|
||||
|
||||
// if no selector flags were specified, get all data in the service.
|
||||
if len(sel.Scopes()) == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
}
|
||||
|
||||
return sel.Reduce(ctx, d), nil
|
||||
}
|
||||
|
||||
|
||||
@ -399,11 +399,6 @@ func runDetailsOneDriveCmd(
|
||||
sel := utils.IncludeOneDriveRestoreDataSelectors(opts)
|
||||
utils.FilterOneDriveRestoreInfoSelectors(sel, opts)
|
||||
|
||||
// if no selector flags were specified, get all data in the service.
|
||||
if len(sel.Scopes()) == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
}
|
||||
|
||||
return sel.Reduce(ctx, d), nil
|
||||
}
|
||||
|
||||
|
||||
@ -483,10 +483,5 @@ func runDetailsSharePointCmd(
|
||||
sel := utils.IncludeSharePointRestoreDataSelectors(opts)
|
||||
utils.FilterSharePointRestoreInfoSelectors(sel, opts)
|
||||
|
||||
// if no selector flags were specified, get all data in the service.
|
||||
if len(sel.Scopes()) == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
}
|
||||
|
||||
return sel.Reduce(ctx, d), nil
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ import (
|
||||
. "github.com/alcionai/corso/src/cli/print"
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/internal/common"
|
||||
"github.com/alcionai/corso/src/internal/kopia"
|
||||
"github.com/alcionai/corso/src/pkg/control"
|
||||
"github.com/alcionai/corso/src/pkg/repository"
|
||||
)
|
||||
@ -215,23 +216,22 @@ func restoreExchangeCmd(cmd *cobra.Command, args []string) error {
|
||||
|
||||
defer utils.CloseRepo(ctx, r)
|
||||
|
||||
dest := control.DefaultRestoreDestination(common.SimpleDateTime)
|
||||
|
||||
sel := utils.IncludeExchangeRestoreDataSelectors(opts)
|
||||
utils.FilterExchangeRestoreInfoSelectors(sel, opts)
|
||||
|
||||
// if no selector flags were specified, get all data in the service.
|
||||
if len(sel.Scopes()) == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
}
|
||||
|
||||
restoreDest := control.DefaultRestoreDestination(common.SimpleDateTime)
|
||||
|
||||
ro, err := r.NewRestore(ctx, backupID, sel.Selector, restoreDest)
|
||||
ro, err := r.NewRestore(ctx, backupID, sel.Selector, dest)
|
||||
if err != nil {
|
||||
return Only(ctx, errors.Wrap(err, "Failed to initialize Exchange restore"))
|
||||
}
|
||||
|
||||
ds, err := ro.Run(ctx)
|
||||
if err != nil {
|
||||
if errors.Is(err, kopia.ErrNotFound) {
|
||||
return Only(ctx, errors.Errorf("Backup or backup details missing for id %s", backupID))
|
||||
}
|
||||
|
||||
return Only(ctx, errors.Wrap(err, "Failed to run Exchange restore"))
|
||||
}
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import (
|
||||
. "github.com/alcionai/corso/src/cli/print"
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/internal/common"
|
||||
"github.com/alcionai/corso/src/internal/kopia"
|
||||
"github.com/alcionai/corso/src/pkg/control"
|
||||
"github.com/alcionai/corso/src/pkg/repository"
|
||||
)
|
||||
@ -152,23 +153,22 @@ func restoreOneDriveCmd(cmd *cobra.Command, args []string) error {
|
||||
|
||||
defer utils.CloseRepo(ctx, r)
|
||||
|
||||
dest := control.DefaultRestoreDestination(common.SimpleDateTimeOneDrive)
|
||||
|
||||
sel := utils.IncludeOneDriveRestoreDataSelectors(opts)
|
||||
utils.FilterOneDriveRestoreInfoSelectors(sel, opts)
|
||||
|
||||
// if no selector flags were specified, get all data in the service.
|
||||
if len(sel.Scopes()) == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
}
|
||||
|
||||
restoreDest := control.DefaultRestoreDestination(common.SimpleDateTimeOneDrive)
|
||||
|
||||
ro, err := r.NewRestore(ctx, backupID, sel.Selector, restoreDest)
|
||||
ro, err := r.NewRestore(ctx, backupID, sel.Selector, dest)
|
||||
if err != nil {
|
||||
return Only(ctx, errors.Wrap(err, "Failed to initialize OneDrive restore"))
|
||||
}
|
||||
|
||||
ds, err := ro.Run(ctx)
|
||||
if err != nil {
|
||||
if errors.Is(err, kopia.ErrNotFound) {
|
||||
return Only(ctx, errors.Errorf("Backup or backup details missing for id %s", backupID))
|
||||
}
|
||||
|
||||
return Only(ctx, errors.Wrap(err, "Failed to run OneDrive restore"))
|
||||
}
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import (
|
||||
. "github.com/alcionai/corso/src/cli/print"
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/internal/common"
|
||||
"github.com/alcionai/corso/src/internal/kopia"
|
||||
"github.com/alcionai/corso/src/pkg/control"
|
||||
"github.com/alcionai/corso/src/pkg/repository"
|
||||
)
|
||||
@ -153,23 +154,22 @@ func restoreSharePointCmd(cmd *cobra.Command, args []string) error {
|
||||
|
||||
defer utils.CloseRepo(ctx, r)
|
||||
|
||||
dest := control.DefaultRestoreDestination(common.SimpleDateTime)
|
||||
|
||||
sel := utils.IncludeSharePointRestoreDataSelectors(opts)
|
||||
utils.FilterSharePointRestoreInfoSelectors(sel, opts)
|
||||
|
||||
// if no selector flags were specified, get all data in the service.
|
||||
if len(sel.Scopes()) == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
}
|
||||
|
||||
restoreDest := control.DefaultRestoreDestination(common.SimpleDateTimeOneDrive)
|
||||
|
||||
ro, err := r.NewRestore(ctx, backupID, sel.Selector, restoreDest)
|
||||
ro, err := r.NewRestore(ctx, backupID, sel.Selector, dest)
|
||||
if err != nil {
|
||||
return Only(ctx, errors.Wrap(err, "Failed to initialize SharePoint restore"))
|
||||
}
|
||||
|
||||
ds, err := ro.Run(ctx)
|
||||
if err != nil {
|
||||
if errors.Is(err, kopia.ErrNotFound) {
|
||||
return Only(ctx, errors.Errorf("Backup or backup details missing for id %s", backupID))
|
||||
}
|
||||
|
||||
return Only(ctx, errors.Wrap(err, "Failed to run SharePoint restore"))
|
||||
}
|
||||
|
||||
|
||||
@ -138,7 +138,6 @@ func IncludeExchangeRestoreDataSelectors(opts ExchangeOpts) *selectors.ExchangeR
|
||||
// either scope the request to a set of users
|
||||
if lc+lcf+le+lef+lev+lec == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
|
||||
return sel
|
||||
}
|
||||
|
||||
|
||||
@ -84,7 +84,6 @@ func IncludeOneDriveRestoreDataSelectors(opts OneDriveOpts) *selectors.OneDriveR
|
||||
// is specified
|
||||
if lp+ln == 0 {
|
||||
sel.Include(sel.AllData())
|
||||
|
||||
return sel
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user