Skip to content

Commit c19a21f

Browse files
committed
Improved error handling in administration cli
1 parent 86f59c6 commit c19a21f

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

admin-tool/manager/cluster.go

+42
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ func CreateCluster(managerAddr []string, addresses []string) error {
3131
if res.StatusCode != 200 {
3232
var e common.Error
3333
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
34+
if _, ok := err.(*json.SyntaxError); ok {
35+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
36+
}
3437
return err
3538
}
3639
return fmt.Errorf(e.Message)
@@ -69,6 +72,9 @@ func DeleteCluster(managerAddr []string, clusterId string) error {
6972
if res.StatusCode != 200 {
7073
var e common.Error
7174
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
75+
if _, ok := err.(*json.SyntaxError); ok {
76+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
77+
}
7278
return err
7379
}
7480
return fmt.Errorf(e.Message)
@@ -100,6 +106,9 @@ func MoveCluster(managerAddr []string, clusterIds []string) error {
100106

101107
var e common.Error
102108
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
109+
if _, ok := err.(*json.SyntaxError); ok {
110+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
111+
}
103112
return err
104113
}
105114
return fmt.Errorf(e.Message)
@@ -129,6 +138,9 @@ func BalanceClusters(managerAddr []string, clusterIds []string) error {
129138

130139
var e common.Error
131140
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
141+
if _, ok := err.(*json.SyntaxError); ok {
142+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
143+
}
132144
return err
133145
}
134146
return fmt.Errorf(e.Message)
@@ -154,6 +166,9 @@ func AddNode(managerAddr []string, clusterId string, addresses []string) error {
154166
if res.StatusCode != 200 {
155167
var e common.Error
156168
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
169+
if _, ok := err.(*json.SyntaxError); ok {
170+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
171+
}
157172
return err
158173
}
159174
return fmt.Errorf(e.Message)
@@ -192,6 +207,9 @@ func RemoveNode(managerAddr []string, nodeId string) error {
192207
if res.StatusCode != 200 {
193208
var e common.Error
194209
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
210+
if _, ok := err.(*json.SyntaxError); ok {
211+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
212+
}
195213
return err
196214
}
197215
return fmt.Errorf(e.Message)
@@ -219,6 +237,9 @@ func Unfreeze(managerAddr []string, clusterIds []string) error {
219237
if res.StatusCode != 200 {
220238
var e common.Error
221239
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
240+
if _, ok := err.(*json.SyntaxError); ok {
241+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
242+
}
222243
return err
223244
}
224245
return fmt.Errorf(e.Message)
@@ -250,6 +271,9 @@ func CreateSnapshot(managerAddr []string, clusterId string) error {
250271

251272
var e common.Error
252273
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
274+
if _, ok := err.(*json.SyntaxError); ok {
275+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
276+
}
253277
return err
254278
}
255279
return fmt.Errorf(e.Message)
@@ -279,6 +303,9 @@ func DeleteSnapshot(managerAddr []string, clusterId string, snapshotIndex uint64
279303

280304
var e common.Error
281305
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
306+
if _, ok := err.(*json.SyntaxError); ok {
307+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
308+
}
282309
return err
283310
}
284311
return fmt.Errorf(e.Message)
@@ -308,6 +335,9 @@ func RestoreSnapshot(managerAddr []string, clusterId string, snapshotIndex uint6
308335

309336
var e common.Error
310337
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
338+
if _, ok := err.(*json.SyntaxError); ok {
339+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
340+
}
311341
return err
312342
}
313343
return fmt.Errorf(e.Message)
@@ -333,6 +363,9 @@ func SyncClusters(managerAddr []string, clusterId string, force bool) error {
333363
if res.StatusCode != 202 {
334364
var e common.Error
335365
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
366+
if _, ok := err.(*json.SyntaxError); ok {
367+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
368+
}
336369
return err
337370
}
338371
return fmt.Errorf(e.Message)
@@ -358,6 +391,9 @@ func RepairConsistency(managerAddr []string, repairModel string) error {
358391
if res.StatusCode != 202 {
359392
var e common.Error
360393
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
394+
if _, ok := err.(*json.SyntaxError); ok {
395+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
396+
}
361397
return err
362398
}
363399
return fmt.Errorf(e.Message)
@@ -383,6 +419,9 @@ func GetClusters(managerAddr []string, clusterId string) error {
383419
if res.StatusCode != 200 {
384420
var e common.Error
385421
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
422+
if _, ok := err.(*json.SyntaxError); ok {
423+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
424+
}
386425
return err
387426
}
388427
return fmt.Errorf(e.Message)
@@ -473,6 +512,9 @@ func GetReport(managerAddr []string) error {
473512
if res.StatusCode != 200 {
474513
var e common.Error
475514
if err := json.NewDecoder(res.Body).Decode(&e); err != nil {
515+
if _, ok := err.(*json.SyntaxError); ok {
516+
return fmt.Errorf("dfs manager returned with an unrecognisable status code: %d", res.StatusCode)
517+
}
476518
return err
477519
}
478520
return fmt.Errorf(e.Message)

0 commit comments

Comments
 (0)