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) {
}
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment