From 142bc63f77dada5e4fc11ceb34fa71451c3852b5 Mon Sep 17 00:00:00 2001 From: Malte Bauch <malte.bauch@extern.h-da.de> Date: Tue, 19 Apr 2022 14:21:23 +0200 Subject: [PATCH] Add spinners for functions like `GetPnds`, `GetSchemaTree`, ... within CLI --- cli/cmd/utils.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/cli/cmd/utils.go b/cli/cmd/utils.go index cafe1c3c0..665c48a40 100644 --- a/cli/cmd/utils.go +++ b/cli/cmd/utils.go @@ -76,34 +76,44 @@ func getDevices() ([]prompt.Suggest, error) { } func getSchemaTreeForDeviceID(id string) (map[string]*yang.Entry, error) { + spinner, _ := pterm.DefaultSpinner.Start("Fetching schema tree for Device with ID: %s", id) dev, err := pndAdapter.GetDevice(id) if err != nil { + spinner.Fail(err) return nil, err } sid, err := uuid.Parse(dev[0].GetSbi().GetId()) if err != nil { + spinner.Fail(err) return nil, err } + spinner.Success() return pndAdapter.GetSbiSchemaTree(sid) } -func getPnds() []prompt.Suggest { +func getPnds() ([]prompt.Suggest, error) { + spinner, _ := pterm.DefaultSpinner.Start("Fetching PNDs from controller.") resp, err := api.GetIds(viper.GetString("controllerAPIEndpoint")) if err != nil { - return []prompt.Suggest{} + spinner.Fail(err) + return []prompt.Suggest{}, err } s := []prompt.Suggest{} for _, pnd := range resp { s = append(s, prompt.Suggest{Text: pnd.GetId(), Description: pnd.GetDescription()}) } - return completer.SortSuggestionByText(s) + spinner.Success() + return completer.SortSuggestionByText(s), nil } -func getChangesByType(cType pnd.ChangeState) []prompt.Suggest { +func getChangesByType(cType pnd.ChangeState) ([]prompt.Suggest, error) { + spinner, _ := pterm.DefaultSpinner.Start("Fetching changes for type: %t", cType.String()) + resp, err := api.GetChanges(pndAdapter.Endpoint(), pndAdapter.ID().String()) if err != nil { - return []prompt.Suggest{} + spinner.Fail(err) + return []prompt.Suggest{}, err } s := []prompt.Suggest{} @@ -112,7 +122,8 @@ func getChangesByType(cType pnd.ChangeState) []prompt.Suggest { s = append(s, prompt.Suggest{Text: change.GetId(), Description: change.State.String()}) } } - return completer.SortSuggestionByText(s) + spinner.Success() + return completer.SortSuggestionByText(s), nil } // sliceContains checks if a slice contains the given item -- GitLab