Skip to content

Commit 19949ac

Browse files
author
Enda Phelan
committed
fix: display API error reason
1 parent 8056bc8 commit 19949ac

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

.vscode/launch.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@
5151
"kafka",
5252
"list"
5353
]
54+
},
55+
{
56+
"name": "Describe Kafka",
57+
"type": "go",
58+
"request": "launch",
59+
"mode": "auto",
60+
"program": "${workspaceFolder}/cmd/rhoas",
61+
"env": {},
62+
"args": [
63+
"kafka",
64+
"describe"
65+
]
5466
}
5567
]
5668
}

cmd/rhoas/main.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package main
22

33
import (
4+
"errors"
45
"fmt"
56
"os"
67

8+
"github.com/bf2fc6cc711aee1a0c2a/cli/pkg/api/managedservices"
9+
710
"github.com/bf2fc6cc711aee1a0c2a/cli/pkg/cmd/root"
811
"github.com/bf2fc6cc711aee1a0c2a/cli/pkg/config"
912
"github.com/bf2fc6cc711aee1a0c2a/cli/pkg/version"
@@ -26,9 +29,26 @@ func main() {
2629
generateDocumentation(rootCmd)
2730
}
2831

29-
if err := rootCmd.Execute(); err != nil {
30-
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
32+
err := rootCmd.Execute()
33+
if err == nil {
34+
return
3135
}
36+
37+
// Attempt to unwrap the descriptive API error message
38+
var apiError managedservices.GenericOpenAPIError
39+
if ok := errors.As(err, &apiError); ok {
40+
errModel := apiError.Model()
41+
42+
e, ok := errModel.(*managedservices.Error)
43+
44+
if ok {
45+
fmt.Fprintf(os.Stderr, "Error: %v\n", e.Reason)
46+
os.Exit(1)
47+
}
48+
}
49+
50+
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
51+
os.Exit(1)
3252
}
3353

3454
func initConfig() {

0 commit comments

Comments
 (0)