Skip to content

Commit 2d476a5

Browse files
authored
Merge pull request #127 from chrroberts-pure/refactor-401-handling
[fatal bug] Fix if statements on error handling when encountering 401 on scrape.
2 parents f216883 + f1cd002 commit 2d476a5

23 files changed

+543
-721
lines changed

internal/rest-client/alerts.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,10 @@ func (fa *FAClient) GetAlerts(filter string) *AlertsList {
3636
if filter != "" {
3737
req = req.SetQueryParam("filter", filter)
3838
}
39-
res, err := req.Get(uri)
40-
if err != nil {
41-
fa.Error = err
42-
}
39+
res, _ := req.Get(uri)
4340
if res.StatusCode() == 401 {
4441
fa.RefreshSession()
45-
}
46-
res, err = req.Get(uri)
47-
if err != nil {
48-
fa.Error = err
42+
req.Get(uri)
4943
}
5044

5145
return result

internal/rest-client/arrays.go

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,20 @@ type Array struct {
1818
}
1919

2020
type ArrayShort struct {
21-
Id string `json:"id"`
22-
Name string `json:"name"`
23-
FrozenAt int `json:"frozen_at"`
24-
MediatorStatus string `json:"mediator_status"`
25-
PreElected bool `json:"pre_elected"`
26-
Progress float64 `json:"progress"`
27-
Status string `json:"status"`
21+
Id string `json:"id"`
22+
Name string `json:"name"`
23+
FrozenAt int `json:"frozen_at"`
24+
MediatorStatus string `json:"mediator_status"`
25+
PreElected bool `json:"pre_elected"`
26+
Progress float64 `json:"progress"`
27+
Status string `json:"status"`
2828
}
2929

3030
type ArrayTiny struct {
31-
Id string `json:"id"`
32-
Name string `json:"name"`
31+
Id string `json:"id"`
32+
Name string `json:"name"`
3333
}
3434

35-
3635
type Encryption struct {
3736
DataAtRest DataAtRest `json:"data_at_rest"`
3837
ModuleVersion string `json:"module_version"`
@@ -58,21 +57,14 @@ type ArraysList struct {
5857
func (fa *FAClient) GetArrays() *ArraysList {
5958
uri := "/arrays"
6059
result := new(ArraysList)
61-
res, err := fa.RestClient.R().
60+
res, _ := fa.RestClient.R().
6261
SetResult(&result).
6362
Get(uri)
64-
if err != nil {
65-
fa.Error = err
66-
}
6763
if res.StatusCode() == 401 {
6864
fa.RefreshSession()
65+
fa.RestClient.R().
66+
SetResult(&result).
67+
Get(uri)
6968
}
70-
res, err = fa.RestClient.R().
71-
SetResult(&result).
72-
Get(uri)
73-
if err != nil {
74-
fa.Error = err
75-
}
76-
7769
return result
7870
}
Lines changed: 43 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,59 @@
11
package client
22

3-
43
type ArrayPerformance struct {
5-
Name string `json:"name"`
6-
Id string `json:"id"`
7-
BytesPerMirroredWrite float64 `json:"bytes_per_mirrored_write"`
8-
BytesPerOp float64 `json:"bytes_per_op"`
9-
BytesPerRead float64 `json:"bytes_per_read"`
10-
BytesPerWrite float64 `json:"bytes_per_write"`
11-
MirroredWriteBytesPerSec float64 `json:"mirrored_write_bytes_per_sec"`
12-
MirroredWritesPerSec float64 `json:"mirrored_writes_per_sec"`
13-
QosRateLimitUsecPerMirroredWriteOp float64 `json:"qos_rate_limit_usec_per_mirrored_write_op"`
14-
QosRateLimitUsecPerReadOp float64 `json:"qos_rate_limit_usec_per_read_op"`
15-
QosRateLimitUsecPerWriteOp float64 `json:"qos_rate_limit_usec_per_write_op"`
16-
QueueUsecPerMirroredWriteOp float64 `json:"queue_usec_per_mirrored_write_op"`
17-
QueueUsecPerReadOp float64 `json:"queue_usec_per_read_op"`
18-
QueueUsecPerWriteOp float64 `json:"queue_usec_per_write_op"`
19-
ReadBytesPerSec float64 `json:"read_bytes_per_sec"`
20-
ReadsPerSec float64 `json:"reads_per_sec"`
21-
SanUsecPerMirroredWriteOp float64 `json:"san_usec_per_mirrored_write_op"`
22-
SanUsecPerReadOp float64 `json:"san_usec_per_read_op"`
23-
SanUsecPerWriteOp float64 `json:"san_usec_per_write_op"`
24-
ServiceUsecPerMirroredWriteOp float64 `json:"service_usec_per_mirrored_write_op"`
25-
ServiceUsecPerReadOp float64 `json:"service_usec_per_read_op"`
26-
ServiceUsecPerWriteOp float64 `json:"service_usec_per_write_op"`
27-
Time int `json:"time"`
28-
UsecPerMirroredWriteOp float64 `json:"usec_per_mirrored_write_op"`
29-
UsecPerReadOp float64 `json:"usec_per_read_op"`
30-
UsecPerWriteOp float64 `json:"usec_per_write_op"`
31-
WriteBytesPerSec float64 `json:"write_bytes_per_sec"`
32-
WritesPerSec float64 `json:"writes_per_sec"`
33-
ServiceUsecPerReadOpCacheReduction float64 `json:"service_usec_per_read_op_cache_reduction"`
34-
QueueDepth float64 `json:"queue_depth"`
35-
LocalQueueUsecPerOp float64 `json:"local_queue_usec_per_op"`
36-
UsecPerOtherOp float64 `json:"usec_per_other_op"`
37-
OthersPerSec float64 `json:"others_per_sec"`
4+
Name string `json:"name"`
5+
Id string `json:"id"`
6+
BytesPerMirroredWrite float64 `json:"bytes_per_mirrored_write"`
7+
BytesPerOp float64 `json:"bytes_per_op"`
8+
BytesPerRead float64 `json:"bytes_per_read"`
9+
BytesPerWrite float64 `json:"bytes_per_write"`
10+
MirroredWriteBytesPerSec float64 `json:"mirrored_write_bytes_per_sec"`
11+
MirroredWritesPerSec float64 `json:"mirrored_writes_per_sec"`
12+
QosRateLimitUsecPerMirroredWriteOp float64 `json:"qos_rate_limit_usec_per_mirrored_write_op"`
13+
QosRateLimitUsecPerReadOp float64 `json:"qos_rate_limit_usec_per_read_op"`
14+
QosRateLimitUsecPerWriteOp float64 `json:"qos_rate_limit_usec_per_write_op"`
15+
QueueUsecPerMirroredWriteOp float64 `json:"queue_usec_per_mirrored_write_op"`
16+
QueueUsecPerReadOp float64 `json:"queue_usec_per_read_op"`
17+
QueueUsecPerWriteOp float64 `json:"queue_usec_per_write_op"`
18+
ReadBytesPerSec float64 `json:"read_bytes_per_sec"`
19+
ReadsPerSec float64 `json:"reads_per_sec"`
20+
SanUsecPerMirroredWriteOp float64 `json:"san_usec_per_mirrored_write_op"`
21+
SanUsecPerReadOp float64 `json:"san_usec_per_read_op"`
22+
SanUsecPerWriteOp float64 `json:"san_usec_per_write_op"`
23+
ServiceUsecPerMirroredWriteOp float64 `json:"service_usec_per_mirrored_write_op"`
24+
ServiceUsecPerReadOp float64 `json:"service_usec_per_read_op"`
25+
ServiceUsecPerWriteOp float64 `json:"service_usec_per_write_op"`
26+
Time int `json:"time"`
27+
UsecPerMirroredWriteOp float64 `json:"usec_per_mirrored_write_op"`
28+
UsecPerReadOp float64 `json:"usec_per_read_op"`
29+
UsecPerWriteOp float64 `json:"usec_per_write_op"`
30+
WriteBytesPerSec float64 `json:"write_bytes_per_sec"`
31+
WritesPerSec float64 `json:"writes_per_sec"`
32+
ServiceUsecPerReadOpCacheReduction float64 `json:"service_usec_per_read_op_cache_reduction"`
33+
QueueDepth float64 `json:"queue_depth"`
34+
LocalQueueUsecPerOp float64 `json:"local_queue_usec_per_op"`
35+
UsecPerOtherOp float64 `json:"usec_per_other_op"`
36+
OthersPerSec float64 `json:"others_per_sec"`
3837
}
3938

4039
type ArraysPerformanceList struct {
41-
ContinuationToken string `json:"continuation_token"`
42-
TotalItemCount int `json:"total_item_count"`
43-
MoreItemsRemaining bool `json:"more_items_remaining"`
44-
Items []ArrayPerformance `json:"items"`
40+
ContinuationToken string `json:"continuation_token"`
41+
TotalItemCount int `json:"total_item_count"`
42+
MoreItemsRemaining bool `json:"more_items_remaining"`
43+
Items []ArrayPerformance `json:"items"`
4544
}
4645

4746
func (fa *FAClient) GetArraysPerformance() *ArraysPerformanceList {
4847
uri := "/arrays/performance"
4948
result := new(ArraysPerformanceList)
50-
res, err := fa.RestClient.R().
49+
res, _ := fa.RestClient.R().
5150
SetResult(&result).
5251
Get(uri)
53-
54-
if err != nil {
55-
fa.Error = err
52+
if res.StatusCode() == 401 {
53+
fa.RefreshSession()
54+
fa.RestClient.R().
55+
SetResult(&result).
56+
Get(uri)
5657
}
57-
if res.StatusCode() == 401 {
58-
fa.RefreshSession()
59-
}
60-
res, err = fa.RestClient.R().
61-
SetResult(&result).
62-
Get(uri)
63-
if err != nil {
64-
fa.Error = err
65-
}
66-
6758
return result
6859
}

internal/rest-client/connections.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,14 @@ type ConnectionsList struct {
3636
func (fa *FAClient) GetConnections() *ConnectionsList {
3737
uri := "/connections"
3838
result := new(ConnectionsList)
39-
res, err := fa.RestClient.R().
39+
res, _ := fa.RestClient.R().
4040
SetResult(&result).
4141
Get(uri)
42-
43-
if err != nil {
44-
fa.Error = err
45-
}
4642
if res.StatusCode() == 401 {
4743
fa.RefreshSession()
44+
fa.RestClient.R().
45+
SetResult(&result).
46+
Get(uri)
4847
}
49-
res, err = fa.RestClient.R().
50-
SetResult(&result).
51-
Get(uri)
52-
if err != nil {
53-
fa.Error = err
54-
}
55-
5648
return result
5749
}
Lines changed: 37 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,60 @@
11
package client
22

3-
43
type FileSystem struct {
5-
Id string `json:"id"`
6-
Name string `json:"name"`
4+
Id string `json:"id"`
5+
Name string `json:"name"`
76
}
87

98
type Member struct {
10-
Id string `json:"id"`
11-
Name string `json:"name"`
12-
ResourceType string `json:"resource_type"`
9+
Id string `json:"id"`
10+
Name string `json:"name"`
11+
ResourceType string `json:"resource_type"`
1312
}
1413

1514
type Policy struct {
16-
Id string `json:"id"`
17-
Name string `json:"name"`
18-
ResourceType string `json:"resource_type"`
15+
Id string `json:"id"`
16+
Name string `json:"name"`
17+
ResourceType string `json:"resource_type"`
1918
}
2019

2120
type LimitedBy struct {
22-
Member Member `json:"member"`
23-
Policy Policy `json:"policy"`
21+
Member Member `json:"member"`
22+
Policy Policy `json:"policy"`
2423
}
2524

2625
type Directory struct {
27-
Id string `json:"id"`
28-
Name string `json:"name"`
29-
Created int `json:"created"`
30-
Destroyed bool `json:"destroyed"`
31-
DirectoryName string `json:"directory_name"`
32-
FileSystem FileSystem `json:"file_system"`
33-
Path string `json:"path"`
34-
Space Space `json:"space"`
35-
TimeRemaining int `json:"time_remaining"`
36-
LimitedBy LimitedBy `json:"limited_by"`
26+
Id string `json:"id"`
27+
Name string `json:"name"`
28+
Created int `json:"created"`
29+
Destroyed bool `json:"destroyed"`
30+
DirectoryName string `json:"directory_name"`
31+
FileSystem FileSystem `json:"file_system"`
32+
Path string `json:"path"`
33+
Space Space `json:"space"`
34+
TimeRemaining int `json:"time_remaining"`
35+
LimitedBy LimitedBy `json:"limited_by"`
3736
}
3837

3938
type DirectoriesList struct {
40-
ContinuationToken string `json:"continuation_token"`
41-
TotalItemCount int `json:"total_item_count"`
42-
MoreItemsRemaining bool `json:"more_items_remaining"`
43-
Items []Directory `json:"items"`
44-
Total []Directory `json:"total"`
39+
ContinuationToken string `json:"continuation_token"`
40+
TotalItemCount int `json:"total_item_count"`
41+
MoreItemsRemaining bool `json:"more_items_remaining"`
42+
Items []Directory `json:"items"`
43+
Total []Directory `json:"total"`
4544
}
4645

4746
func (fa *FAClient) GetDirectories() *DirectoriesList {
4847
uri := "/directories"
49-
result := new(DirectoriesList)
50-
res, err := fa.RestClient.R().
51-
SetResult(&result).
52-
Get(uri)
53-
54-
if err != nil {
55-
fa.Error = err
56-
}
57-
if res.StatusCode() == 401 {
58-
fa.RefreshSession()
59-
}
60-
res, err = fa.RestClient.R().
61-
SetResult(&result).
62-
Get(uri)
63-
if err != nil {
64-
fa.Error = err
65-
}
66-
67-
return result
48+
result := new(DirectoriesList)
49+
res, _ := fa.RestClient.R().
50+
SetResult(&result).
51+
Get(uri)
52+
if res.StatusCode() == 401 {
53+
fa.RefreshSession()
54+
fa.RestClient.R().
55+
SetResult(&result).
56+
Get(uri)
57+
}
58+
59+
return result
6860
}

0 commit comments

Comments
 (0)