From f114785ebb987ace505861c555878be8e46a6cc8 Mon Sep 17 00:00:00 2001 From: Abin Simon Date: Fri, 18 Nov 2022 09:05:19 +0530 Subject: [PATCH] Add progressbar for connecting to repo and add elapsed time to progressbars (#1545) ## Description This will now show elapsed time along with the spinner. ``` Connecting to repository: 4s done Connecting to M365: 0s done Discovering items to backup: 2s done Discovered 1013 items to backup Backing up data:4m37s done Started At ID Status Selectors 2022-11-17T11:22:35Z cdbbf625-f925-4f59-9c42-12756108b752 Completed (0 errors) J...L@redacted.onmicrosoft.com ``` ## Type of change - [x] :sunflower: Feature - [ ] :bug: Bugfix - [ ] :world_map: Documentation - [ ] :robot: Test - [ ] :computer: CI/Deployment - [ ] :hamster: Trivial/Minor ## Issue(s) * # ## Test Plan - [ ] :muscle: Manual - [ ] :zap: Unit test - [ ] :green_heart: E2E --- src/internal/observe/observe.go | 1 + src/pkg/repository/repository.go | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/internal/observe/observe.go b/src/internal/observe/observe.go index 4fe47767d..374b205d5 100644 --- a/src/internal/observe/observe.go +++ b/src/internal/observe/observe.go @@ -156,6 +156,7 @@ func MessageWithCompletion(message string) (chan<- struct{}, func()) { mpb.SpinnerStyle(frames...).PositionLeft(), mpb.PrependDecorators( decor.Name(message), + decor.Elapsed(decor.ET_STYLE_GO, decor.WC{W: 4}), ), mpb.BarFillerOnComplete("done"), ) diff --git a/src/pkg/repository/repository.go b/src/pkg/repository/repository.go index 8541bdc60..190337ec8 100644 --- a/src/pkg/repository/repository.go +++ b/src/pkg/repository/repository.go @@ -10,6 +10,7 @@ import ( "github.com/alcionai/corso/src/internal/events" "github.com/alcionai/corso/src/internal/kopia" "github.com/alcionai/corso/src/internal/model" + "github.com/alcionai/corso/src/internal/observe" "github.com/alcionai/corso/src/internal/operations" "github.com/alcionai/corso/src/pkg/account" "github.com/alcionai/corso/src/pkg/backup" @@ -133,6 +134,10 @@ func Connect( s storage.Storage, opts control.Options, ) (Repository, error) { + complete, closer := observe.MessageWithCompletion("Connecting to repository:") + defer closer() + defer close(complete) + kopiaRef := kopia.NewConn(s) if err := kopiaRef.Connect(ctx); err != nil { return nil, err @@ -156,6 +161,8 @@ func Connect( return nil, err } + complete <- struct{}{} + // todo: ID and CreatedAt should get retrieved from a stored kopia config. return &repository{ Version: "v1",