Skip to content

Commit 1ba4a8e

Browse files
Clean up hook code (#33)
- Re-order code in alphabetical order of fields (Logging moved to after Encryption) - Fix const var casing - Ensure all requests are made with context - Change APICall verb from `UPDATED` to `UPDATE`
1 parent bb51fbd commit 1ba4a8e

File tree

1 file changed

+78
-78
lines changed

1 file changed

+78
-78
lines changed

pkg/resource/bucket/hook.go

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,14 @@ import (
2424
)
2525

2626
var (
27-
DEFAULT_ACCELERATION_CONFIGURATION_STATUS = "Suspended"
28-
DEFAULT_REQUEST_PAYER = "BucketOwner"
27+
DefaultAccelerationConfigurationStatus = "Suspended"
28+
DefaultRequestPayer = "BucketOwner"
2929
)
3030

3131
func (rm *resourceManager) createPutFields(
3232
ctx context.Context,
3333
r *resource,
3434
) error {
35-
if r.ko.Spec.Logging != nil {
36-
if err := rm.syncLogging(ctx, r); err != nil {
37-
return err
38-
}
39-
}
4035
if r.ko.Spec.Accelerate != nil {
4136
if err := rm.syncAccelerate(ctx, r); err != nil {
4237
return err
@@ -52,6 +47,11 @@ func (rm *resourceManager) createPutFields(
5247
return err
5348
}
5449
}
50+
if r.ko.Spec.Logging != nil {
51+
if err := rm.syncLogging(ctx, r); err != nil {
52+
return err
53+
}
54+
}
5555
if r.ko.Spec.OwnershipControls != nil {
5656
if err := rm.syncOwnershipControls(ctx, r); err != nil {
5757
return err
@@ -93,11 +93,6 @@ func (rm *resourceManager) customUpdateBucket(
9393

9494
rm.setStatusDefaults(ko)
9595

96-
if delta.DifferentAt("Spec.Logging") {
97-
if err := rm.syncLogging(ctx, desired); err != nil {
98-
return nil, err
99-
}
100-
}
10196
if delta.DifferentAt("Spec.Accelerate") {
10297
if err := rm.syncAccelerate(ctx, desired); err != nil {
10398
return nil, err
@@ -113,6 +108,11 @@ func (rm *resourceManager) customUpdateBucket(
113108
return nil, err
114109
}
115110
}
111+
if delta.DifferentAt("Spec.Logging") {
112+
if err := rm.syncLogging(ctx, desired); err != nil {
113+
return nil, err
114+
}
115+
}
116116
if delta.DifferentAt("Spec.OwnershipControls") {
117117
if err := rm.syncOwnershipControls(ctx, desired); err != nil {
118118
return nil, err
@@ -144,12 +144,6 @@ func (rm *resourceManager) addPutFieldsToSpec(
144144
r *resource,
145145
ko *svcapitypes.Bucket,
146146
) (err error) {
147-
getLoggingResponse, err := rm.sdkapi.GetBucketLoggingWithContext(ctx, rm.newGetBucketLoggingPayload(r))
148-
if err != nil {
149-
return err
150-
}
151-
ko.Spec.Logging = rm.setResourceLogging(r, getLoggingResponse)
152-
153147
getAccelerateResponse, err := rm.sdkapi.GetBucketAccelerateConfigurationWithContext(ctx, rm.newGetBucketAcceleratePayload(r))
154148
if err != nil {
155149
return err
@@ -178,6 +172,12 @@ func (rm *resourceManager) addPutFieldsToSpec(
178172
}
179173
ko.Spec.Encryption = rm.setResourceEncryption(r, getEncryptionResponse)
180174

175+
getLoggingResponse, err := rm.sdkapi.GetBucketLoggingWithContext(ctx, rm.newGetBucketLoggingPayload(r))
176+
if err != nil {
177+
return err
178+
}
179+
ko.Spec.Logging = rm.setResourceLogging(r, getLoggingResponse)
180+
181181
getOwnershipControlsResponse, err := rm.sdkapi.GetBucketOwnershipControlsWithContext(ctx, rm.newGetBucketOwnershipControlsPayload(r))
182182
if err != nil {
183183
if awsErr, ok := ackerr.AWSError(err); ok && awsErr.Code() == "OwnershipControlsNotFoundError" {
@@ -225,12 +225,9 @@ func customPreCompare(
225225
a *resource,
226226
b *resource,
227227
) {
228-
if a.ko.Spec.Logging == nil && b.ko.Spec.Logging != nil {
229-
a.ko.Spec.Logging = &svcapitypes.BucketLoggingStatus{}
230-
}
231228
if a.ko.Spec.Accelerate == nil && b.ko.Spec.Accelerate != nil {
232229
a.ko.Spec.Accelerate = &svcapitypes.AccelerateConfiguration{
233-
Status: &DEFAULT_ACCELERATION_CONFIGURATION_STATUS,
230+
Status: &DefaultAccelerationConfigurationStatus,
234231
}
235232
}
236233
if a.ko.Spec.CORS == nil && b.ko.Spec.CORS != nil {
@@ -239,12 +236,15 @@ func customPreCompare(
239236
if a.ko.Spec.Encryption == nil && b.ko.Spec.Encryption != nil {
240237
a.ko.Spec.Encryption = &svcapitypes.ServerSideEncryptionConfiguration{}
241238
}
239+
if a.ko.Spec.Logging == nil && b.ko.Spec.Logging != nil {
240+
a.ko.Spec.Logging = &svcapitypes.BucketLoggingStatus{}
241+
}
242242
if a.ko.Spec.OwnershipControls == nil && b.ko.Spec.OwnershipControls != nil {
243243
a.ko.Spec.OwnershipControls = &svcapitypes.OwnershipControls{}
244244
}
245245
if a.ko.Spec.RequestPayment == nil && b.ko.Spec.RequestPayment != nil {
246246
a.ko.Spec.RequestPayment = &svcapitypes.RequestPaymentConfiguration{
247-
Payer: &DEFAULT_REQUEST_PAYER,
247+
Payer: &DefaultRequestPayer,
248248
}
249249
}
250250
if a.ko.Spec.Tagging == nil && b.ko.Spec.Tagging != nil {
@@ -275,7 +275,7 @@ func (rm *resourceManager) newPutBucketAcceleratePayload(
275275
}
276276

277277
if res.AccelerateConfiguration.Status == nil {
278-
res.AccelerateConfiguration.SetStatus(DEFAULT_ACCELERATION_CONFIGURATION_STATUS)
278+
res.AccelerateConfiguration.SetStatus(DefaultAccelerationConfigurationStatus)
279279
}
280280

281281
return res
@@ -290,8 +290,8 @@ func (rm *resourceManager) syncAccelerate(
290290
defer exit(err)
291291
input := rm.newPutBucketAcceleratePayload(r)
292292

293-
_, err = rm.sdkapi.PutBucketAccelerateConfiguration(input)
294-
rm.metrics.RecordAPICall("UPDATED", "PutBucketAccelerate", err)
293+
_, err = rm.sdkapi.PutBucketAccelerateConfigurationWithContext(ctx, input)
294+
rm.metrics.RecordAPICall("UPDATE", "PutBucketAccelerate", err)
295295
if err != nil {
296296
return err
297297
}
@@ -329,8 +329,8 @@ func (rm *resourceManager) syncCORS(
329329
defer exit(err)
330330
input := rm.newPutBucketCORSPayload(r)
331331

332-
_, err = rm.sdkapi.PutBucketCors(input)
333-
rm.metrics.RecordAPICall("UPDATED", "PutBucketCors", err)
332+
_, err = rm.sdkapi.PutBucketCorsWithContext(ctx, input)
333+
rm.metrics.RecordAPICall("UPDATE", "PutBucketCors", err)
334334
if err != nil {
335335
return err
336336
}
@@ -368,8 +368,47 @@ func (rm *resourceManager) syncEncryption(
368368
defer exit(err)
369369
input := rm.newPutBucketEncryptionPayload(r)
370370

371-
_, err = rm.sdkapi.PutBucketEncryption(input)
372-
rm.metrics.RecordAPICall("UPDATED", "PutBucketEncryption", err)
371+
_, err = rm.sdkapi.PutBucketEncryptionWithContext(ctx, input)
372+
rm.metrics.RecordAPICall("UPDATE", "PutBucketEncryption", err)
373+
if err != nil {
374+
return err
375+
}
376+
377+
return nil
378+
}
379+
380+
func (rm *resourceManager) newGetBucketLoggingPayload(
381+
r *resource,
382+
) *svcsdk.GetBucketLoggingInput {
383+
res := &svcsdk.GetBucketLoggingInput{}
384+
res.SetBucket(*r.ko.Spec.Name)
385+
return res
386+
}
387+
388+
func (rm *resourceManager) newPutBucketLoggingPayload(
389+
r *resource,
390+
) *svcsdk.PutBucketLoggingInput {
391+
res := &svcsdk.PutBucketLoggingInput{}
392+
res.SetBucket(*r.ko.Spec.Name)
393+
if r.ko.Spec.Logging != nil {
394+
res.SetBucketLoggingStatus(rm.newBucketLoggingStatus(r))
395+
} else {
396+
res.SetBucketLoggingStatus(&svcsdk.BucketLoggingStatus{})
397+
}
398+
return res
399+
}
400+
401+
func (rm *resourceManager) syncLogging(
402+
ctx context.Context,
403+
r *resource,
404+
) (err error) {
405+
rlog := ackrtlog.FromContext(ctx)
406+
exit := rlog.Trace("rm.syncLogging")
407+
defer exit(err)
408+
input := rm.newPutBucketLoggingPayload(r)
409+
410+
_, err = rm.sdkapi.PutBucketLoggingWithContext(ctx, input)
411+
rm.metrics.RecordAPICall("UPDATE", "PutBucketLogging", err)
373412
if err != nil {
374413
return err
375414
}
@@ -407,8 +446,8 @@ func (rm *resourceManager) syncOwnershipControls(
407446
defer exit(err)
408447
input := rm.newPutBucketOwnershipControlsPayload(r)
409448

410-
_, err = rm.sdkapi.PutBucketOwnershipControls(input)
411-
rm.metrics.RecordAPICall("UPDATED", "PutBucketOwnershipControls", err)
449+
_, err = rm.sdkapi.PutBucketOwnershipControlsWithContext(ctx, input)
450+
rm.metrics.RecordAPICall("UPDATE", "PutBucketOwnershipControls", err)
412451
if err != nil {
413452
return err
414453
}
@@ -436,7 +475,7 @@ func (rm *resourceManager) newPutBucketRequestPaymentPayload(
436475
}
437476

438477
if res.RequestPaymentConfiguration.Payer == nil {
439-
res.RequestPaymentConfiguration.SetPayer(DEFAULT_REQUEST_PAYER)
478+
res.RequestPaymentConfiguration.SetPayer(DefaultRequestPayer)
440479
}
441480

442481
return res
@@ -451,8 +490,8 @@ func (rm *resourceManager) syncRequestPayment(
451490
defer exit(err)
452491
input := rm.newPutBucketRequestPaymentPayload(r)
453492

454-
_, err = rm.sdkapi.PutBucketRequestPayment(input)
455-
rm.metrics.RecordAPICall("UPDATED", "PutBucketRequestPayment", err)
493+
_, err = rm.sdkapi.PutBucketRequestPaymentWithContext(ctx, input)
494+
rm.metrics.RecordAPICall("UPDATE", "PutBucketRequestPayment", err)
456495
if err != nil {
457496
return err
458497
}
@@ -490,8 +529,8 @@ func (rm *resourceManager) syncTagging(
490529
defer exit(err)
491530
input := rm.newPutBucketTaggingPayload(r)
492531

493-
_, err = rm.sdkapi.PutBucketTagging(input)
494-
rm.metrics.RecordAPICall("UPDATED", "PutBucketTagging", err)
532+
_, err = rm.sdkapi.PutBucketTaggingWithContext(ctx, input)
533+
rm.metrics.RecordAPICall("UPDATE", "PutBucketTagging", err)
495534
if err != nil {
496535
return err
497536
}
@@ -529,47 +568,8 @@ func (rm *resourceManager) syncWebsite(
529568
defer exit(err)
530569
input := rm.newPutBucketWebsitePayload(r)
531570

532-
_, err = rm.sdkapi.PutBucketWebsite(input)
533-
rm.metrics.RecordAPICall("UPDATED", "PutBucketWebsite", err)
534-
if err != nil {
535-
return err
536-
}
537-
538-
return nil
539-
}
540-
541-
func (rm *resourceManager) newGetBucketLoggingPayload(
542-
r *resource,
543-
) *svcsdk.GetBucketLoggingInput {
544-
res := &svcsdk.GetBucketLoggingInput{}
545-
res.SetBucket(*r.ko.Spec.Name)
546-
return res
547-
}
548-
549-
func (rm *resourceManager) newPutBucketLoggingPayload(
550-
r *resource,
551-
) *svcsdk.PutBucketLoggingInput {
552-
res := &svcsdk.PutBucketLoggingInput{}
553-
res.SetBucket(*r.ko.Spec.Name)
554-
if r.ko.Spec.Logging != nil {
555-
res.SetBucketLoggingStatus(rm.newBucketLoggingStatus(r))
556-
} else {
557-
res.SetBucketLoggingStatus(&svcsdk.BucketLoggingStatus{})
558-
}
559-
return res
560-
}
561-
562-
func (rm *resourceManager) syncLogging(
563-
ctx context.Context,
564-
r *resource,
565-
) (err error) {
566-
rlog := ackrtlog.FromContext(ctx)
567-
exit := rlog.Trace("rm.syncLogging")
568-
defer exit(err)
569-
input := rm.newPutBucketLoggingPayload(r)
570-
571-
_, err = rm.sdkapi.PutBucketLogging(input)
572-
rm.metrics.RecordAPICall("UPDATED", "PutBucketLogging", err)
571+
_, err = rm.sdkapi.PutBucketWebsiteWithContext(ctx, input)
572+
rm.metrics.RecordAPICall("UPDATE", "PutBucketWebsite", err)
573573
if err != nil {
574574
return err
575575
}

0 commit comments

Comments
 (0)