@@ -29,6 +29,7 @@ const workRequestPollInterval = 5 * time.Second
29
29
// LoadBalancerInterface for consumed LB functionality.
30
30
type LoadBalancerInterface interface {
31
31
CreateLoadBalancer (ctx context.Context , details loadbalancer.CreateLoadBalancerDetails ) (string , error )
32
+
32
33
GetLoadBalancer (ctx context.Context , id string ) (* loadbalancer.LoadBalancer , error )
33
34
GetLoadBalancerByName (ctx context.Context , compartmentID , name string ) (* loadbalancer.LoadBalancer , error )
34
35
DeleteLoadBalancer (ctx context.Context , id string ) (string , error )
@@ -48,6 +49,10 @@ type LoadBalancerInterface interface {
48
49
}
49
50
50
51
func (c * client ) GetLoadBalancer (ctx context.Context , id string ) (* loadbalancer.LoadBalancer , error ) {
52
+ if ! c .rateLimiter .Reader .TryAccept () {
53
+ return nil , RateLimitError (false , "GetLoadBalancer" )
54
+ }
55
+
51
56
resp , err := c .loadbalancer .GetLoadBalancer (ctx , loadbalancer.GetLoadBalancerRequest {
52
57
LoadBalancerId : & id ,
53
58
})
@@ -63,6 +68,9 @@ func (c *client) GetLoadBalancer(ctx context.Context, id string) (*loadbalancer.
63
68
func (c * client ) GetLoadBalancerByName (ctx context.Context , compartmentID , name string ) (* loadbalancer.LoadBalancer , error ) {
64
69
var page * string
65
70
for {
71
+ if ! c .rateLimiter .Reader .TryAccept () {
72
+ return nil , RateLimitError (false , "GetLoadBalancerByName" )
73
+ }
66
74
resp , err := c .loadbalancer .ListLoadBalancers (ctx , loadbalancer.ListLoadBalancersRequest {
67
75
CompartmentId : & compartmentID ,
68
76
DisplayName : & name ,
@@ -87,6 +95,10 @@ func (c *client) GetLoadBalancerByName(ctx context.Context, compartmentID, name
87
95
}
88
96
89
97
func (c * client ) CreateLoadBalancer (ctx context.Context , details loadbalancer.CreateLoadBalancerDetails ) (string , error ) {
98
+ if ! c .rateLimiter .Writer .TryAccept () {
99
+ return "" , RateLimitError (true , "CreateLoadBalancer" )
100
+ }
101
+
90
102
resp , err := c .loadbalancer .CreateLoadBalancer (ctx , loadbalancer.CreateLoadBalancerRequest {
91
103
CreateLoadBalancerDetails : details ,
92
104
})
@@ -100,6 +112,10 @@ func (c *client) CreateLoadBalancer(ctx context.Context, details loadbalancer.Cr
100
112
}
101
113
102
114
func (c * client ) DeleteLoadBalancer (ctx context.Context , id string ) (string , error ) {
115
+ if ! c .rateLimiter .Writer .TryAccept () {
116
+ return "" , RateLimitError (true , "DeleteLoadBalancer" )
117
+ }
118
+
103
119
resp , err := c .loadbalancer .DeleteLoadBalancer (ctx , loadbalancer.DeleteLoadBalancerRequest {
104
120
LoadBalancerId : & id ,
105
121
})
@@ -113,6 +129,10 @@ func (c *client) DeleteLoadBalancer(ctx context.Context, id string) (string, err
113
129
}
114
130
115
131
func (c * client ) GetCertificateByName (ctx context.Context , lbID , name string ) (* loadbalancer.Certificate , error ) {
132
+ if ! c .rateLimiter .Reader .TryAccept () {
133
+ return nil , RateLimitError (false , "GetCertificateByName" )
134
+ }
135
+
116
136
resp , err := c .loadbalancer .ListCertificates (ctx , loadbalancer.ListCertificatesRequest {
117
137
LoadBalancerId : & lbID ,
118
138
})
@@ -131,6 +151,10 @@ func (c *client) GetCertificateByName(ctx context.Context, lbID, name string) (*
131
151
}
132
152
133
153
func (c * client ) CreateCertificate (ctx context.Context , lbID , certificate , key string ) (string , error ) {
154
+ if ! c .rateLimiter .Writer .TryAccept () {
155
+ return "" , RateLimitError (true , "CreateCertificate" )
156
+ }
157
+
134
158
// TODO(apryde): We currently don't have a mechanism for supplying
135
159
// CreateCertificateDetails.CaCertificate.
136
160
resp , err := c .loadbalancer .CreateCertificate (ctx , loadbalancer.CreateCertificateRequest {
@@ -150,6 +174,10 @@ func (c *client) CreateCertificate(ctx context.Context, lbID, certificate, key s
150
174
}
151
175
152
176
func (c * client ) GetWorkRequest (ctx context.Context , id string ) (* loadbalancer.WorkRequest , error ) {
177
+ if ! c .rateLimiter .Reader .TryAccept () {
178
+ return nil , RateLimitError (false , "GetWorkRequest" )
179
+ }
180
+
153
181
resp , err := c .loadbalancer .GetWorkRequest (ctx , loadbalancer.GetWorkRequestRequest {
154
182
WorkRequestId : & id ,
155
183
})
@@ -163,6 +191,10 @@ func (c *client) GetWorkRequest(ctx context.Context, id string) (*loadbalancer.W
163
191
}
164
192
165
193
func (c * client ) CreateBackendSet (ctx context.Context , lbID , name string , details loadbalancer.BackendSetDetails ) (string , error ) {
194
+ if ! c .rateLimiter .Writer .TryAccept () {
195
+ return "" , RateLimitError (true , "CreateBackendSet" )
196
+ }
197
+
166
198
resp , err := c .loadbalancer .CreateBackendSet (ctx , loadbalancer.CreateBackendSetRequest {
167
199
LoadBalancerId : & lbID ,
168
200
CreateBackendSetDetails : loadbalancer.CreateBackendSetDetails {
@@ -184,6 +216,10 @@ func (c *client) CreateBackendSet(ctx context.Context, lbID, name string, detail
184
216
}
185
217
186
218
func (c * client ) UpdateBackendSet (ctx context.Context , lbID , name string , details loadbalancer.BackendSetDetails ) (string , error ) {
219
+ if ! c .rateLimiter .Writer .TryAccept () {
220
+ return "" , RateLimitError (true , "UpdateBackendSet" )
221
+ }
222
+
187
223
resp , err := c .loadbalancer .UpdateBackendSet (ctx , loadbalancer.UpdateBackendSetRequest {
188
224
LoadBalancerId : & lbID ,
189
225
BackendSetName : & name ,
@@ -205,6 +241,10 @@ func (c *client) UpdateBackendSet(ctx context.Context, lbID, name string, detail
205
241
}
206
242
207
243
func (c * client ) DeleteBackendSet (ctx context.Context , lbID , name string ) (string , error ) {
244
+ if ! c .rateLimiter .Writer .TryAccept () {
245
+ return "" , RateLimitError (true , "DeleteBackendSet" )
246
+ }
247
+
208
248
resp , err := c .loadbalancer .DeleteBackendSet (ctx , loadbalancer.DeleteBackendSetRequest {
209
249
LoadBalancerId : & lbID ,
210
250
BackendSetName : & name ,
@@ -219,6 +259,10 @@ func (c *client) DeleteBackendSet(ctx context.Context, lbID, name string) (strin
219
259
}
220
260
221
261
func (c * client ) CreateListener (ctx context.Context , lbID , name string , details loadbalancer.ListenerDetails ) (string , error ) {
262
+ if ! c .rateLimiter .Writer .TryAccept () {
263
+ return "" , RateLimitError (true , "CreateListener" )
264
+ }
265
+
222
266
resp , err := c .loadbalancer .CreateListener (ctx , loadbalancer.CreateListenerRequest {
223
267
LoadBalancerId : & lbID ,
224
268
CreateListenerDetails : loadbalancer.CreateListenerDetails {
@@ -239,6 +283,10 @@ func (c *client) CreateListener(ctx context.Context, lbID, name string, details
239
283
}
240
284
241
285
func (c * client ) UpdateListener (ctx context.Context , lbID , name string , details loadbalancer.ListenerDetails ) (string , error ) {
286
+ if ! c .rateLimiter .Writer .TryAccept () {
287
+ return "" , RateLimitError (true , "UpdateListener" )
288
+ }
289
+
242
290
resp , err := c .loadbalancer .UpdateListener (ctx , loadbalancer.UpdateListenerRequest {
243
291
LoadBalancerId : & lbID ,
244
292
ListenerName : & name ,
@@ -273,14 +321,18 @@ func (c *client) AwaitWorkRequest(ctx context.Context, id string) (*loadbalancer
273
321
wr = twr
274
322
return true , nil
275
323
case loadbalancer .WorkRequestLifecycleStateFailed :
276
- return false , errors .Errorf ("WorkRequest %q failed: %s" , id , twr .Message )
324
+ return false , errors .Errorf ("WorkRequest %q failed: %s" , id , * twr .Message )
277
325
}
278
326
return false , nil
279
327
}, ctx .Done ())
280
328
return wr , err
281
329
}
282
330
283
331
func (c * client ) DeleteListener (ctx context.Context , lbID , name string ) (string , error ) {
332
+ if ! c .rateLimiter .Writer .TryAccept () {
333
+ return "" , RateLimitError (true , "DeleteListener" )
334
+ }
335
+
284
336
resp , err := c .loadbalancer .DeleteListener (ctx , loadbalancer.DeleteListenerRequest {
285
337
LoadBalancerId : & lbID ,
286
338
ListenerName : & name ,
0 commit comments