From 8ad7da066c907b7b548aea677996b906e1918c0b Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Fri, 12 Oct 2018 08:26:36 +0100 Subject: [PATCH] drive: when listing team drives, continue on failure This means that if the team drive listing returns a 500 error (which seems reasonably common) rclone will continue to the point where it asks for the team drive ID. https://forum.rclone.org/t/many-team-drives-causes-rclone-to-fail/7159 --- backend/drive/drive.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/drive/drive.go b/backend/drive/drive.go index 72f477190..f66685894 100644 --- a/backend/drive/drive.go +++ b/backend/drive/drive.go @@ -715,6 +715,7 @@ func configTeamDrive(opt *Options, m configmap.Mapper, name string) error { fmt.Printf("Fetching team drive list...\n") var driveIDs, driveNames []string listTeamDrives := svc.Teamdrives.List().PageSize(100) + listFailed := false for { var teamDrives *drive.TeamDriveList err = newPacer().Call(func() (bool, error) { @@ -722,7 +723,9 @@ func configTeamDrive(opt *Options, m configmap.Mapper, name string) error { return shouldRetry(err) }) if err != nil { - return errors.Wrap(err, "list team drives failed") + fmt.Printf("Listing team drives failed: %v\n", err) + listFailed = true + break } for _, drive := range teamDrives.TeamDrives { driveIDs = append(driveIDs, drive.Id) @@ -734,7 +737,7 @@ func configTeamDrive(opt *Options, m configmap.Mapper, name string) error { listTeamDrives.PageToken(teamDrives.NextPageToken) } var driveID string - if len(driveIDs) == 0 { + if !listFailed && len(driveIDs) == 0 { fmt.Printf("No team drives found in your account") } else { driveID = config.Choose("Enter a Team Drive ID", driveIDs, driveNames, true)