Skip to content
Snippets Groups Projects

Improve usability and better output formatting for gosndc

Merged Malte Bauch requested to merge cli-refactoring-pterm into develop
1 file
+ 17
6
Compare changes
  • Side-by-side
  • Inline
+ 17
6
@@ -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
Loading