Skip to content
Snippets Groups Projects
Commit 142bc63f authored by Malte Bauch's avatar Malte Bauch
Browse files

Add spinners for functions like `GetPnds`, `GetSchemaTree`, ... within CLI

parent ecdde8d9
No related branches found
No related tags found
1 merge request!284Improve usability and better output formatting for gosndc
Pipeline #99372 failed
This commit is part of merge request !284. Comments created here will be created in the context of that merge request.
...@@ -76,34 +76,44 @@ func getDevices() ([]prompt.Suggest, error) { ...@@ -76,34 +76,44 @@ func getDevices() ([]prompt.Suggest, error) {
} }
func getSchemaTreeForDeviceID(id string) (map[string]*yang.Entry, 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) dev, err := pndAdapter.GetDevice(id)
if err != nil { if err != nil {
spinner.Fail(err)
return nil, err return nil, err
} }
sid, err := uuid.Parse(dev[0].GetSbi().GetId()) sid, err := uuid.Parse(dev[0].GetSbi().GetId())
if err != nil { if err != nil {
spinner.Fail(err)
return nil, err return nil, err
} }
spinner.Success()
return pndAdapter.GetSbiSchemaTree(sid) 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")) resp, err := api.GetIds(viper.GetString("controllerAPIEndpoint"))
if err != nil { if err != nil {
return []prompt.Suggest{} spinner.Fail(err)
return []prompt.Suggest{}, err
} }
s := []prompt.Suggest{} s := []prompt.Suggest{}
for _, pnd := range resp { for _, pnd := range resp {
s = append(s, prompt.Suggest{Text: pnd.GetId(), Description: pnd.GetDescription()}) 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()) resp, err := api.GetChanges(pndAdapter.Endpoint(), pndAdapter.ID().String())
if err != nil { if err != nil {
return []prompt.Suggest{} spinner.Fail(err)
return []prompt.Suggest{}, err
} }
s := []prompt.Suggest{} s := []prompt.Suggest{}
...@@ -112,7 +122,8 @@ func getChangesByType(cType pnd.ChangeState) []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()}) 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 // sliceContains checks if a slice contains the given item
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment