Skip to content

Commit

Permalink
Merge pull request #1129 from AlexLast/master
Browse files Browse the repository at this point in the history
Make eventThreshold an optional field for s3 bucket replication
  • Loading branch information
chlunde committed Mar 8, 2022
2 parents ecf5c1d + 0ce1f68 commit ea57cdc
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 15 deletions.
4 changes: 2 additions & 2 deletions apis/s3/v1beta1/replicationConfiguration_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ type EncryptionConfiguration struct {
type Metrics struct {
// A container specifying the time threshold for emitting the s3:Replication:OperationMissedThreshold
// event.
// EventThreshold is a required field
EventThreshold ReplicationTimeValue `json:"eventThreshold"`
// +optional
EventThreshold *ReplicationTimeValue `json:"eventThreshold,omitempty"`

// Specifies whether the replication metrics are enabled.
//
Expand Down
8 changes: 6 additions & 2 deletions apis/s3/v1beta1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions package/crds/s3.aws.crossplane.io_buckets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1073,7 +1073,7 @@ spec:
eventThreshold:
description: A container specifying the time
threshold for emitting the s3:Replication:OperationMissedThreshold
event. EventThreshold is a required field
event.
properties:
minutes:
description: "Contains an integer specifying
Expand All @@ -1092,7 +1092,6 @@ spec:
- Disabled
type: string
required:
- eventThreshold
- status
type: object
replicationTime:
Expand Down
7 changes: 5 additions & 2 deletions pkg/controller/s3/bucket/replicationConfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ func createReplicationRulesFromExternal(external *types.ReplicationConfiguration
if rule.Destination.Metrics != nil {
config.Rules[i].Destination.Metrics = &v1beta1.Metrics{}
if rule.Destination.Metrics.EventThreshold != nil {
config.Rules[i].Destination.Metrics.EventThreshold = &v1beta1.ReplicationTimeValue{}
config.Rules[i].Destination.Metrics.EventThreshold.Minutes = rule.Destination.Metrics.EventThreshold.Minutes
}
config.Rules[i].Destination.Metrics.Status = string(rule.Destination.Metrics.Status)
Expand Down Expand Up @@ -256,8 +257,10 @@ func copyDestination(input *v1beta1.ReplicationRule, newRule *types.ReplicationR
}
if input.Destination.Metrics != nil {
newRule.Destination.Metrics = &types.Metrics{
EventThreshold: &types.ReplicationTimeValue{Minutes: input.Destination.Metrics.EventThreshold.Minutes},
Status: types.MetricsStatus(input.Destination.Metrics.Status),
Status: types.MetricsStatus(input.Destination.Metrics.Status),
}
if input.Destination.Metrics.EventThreshold != nil {
newRule.Destination.Metrics.EventThreshold = &types.ReplicationTimeValue{Minutes: input.Destination.Metrics.EventThreshold.Minutes}
}
}
if input.Destination.ReplicationTime != nil {
Expand Down
14 changes: 7 additions & 7 deletions pkg/controller/s3/bucket/replicationConfig_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func generateReplicationConfig() *v1beta1.ReplicationConfiguration {
Bucket: &bucketName,
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down Expand Up @@ -486,7 +486,7 @@ func TestIsUpToDate(t *testing.T) {
Bucket: &bucketName,
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down Expand Up @@ -557,7 +557,7 @@ func TestIsUpToDate(t *testing.T) {
Bucket: awsclient.String("bucket-1"),
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down Expand Up @@ -586,7 +586,7 @@ func TestIsUpToDate(t *testing.T) {
Bucket: awsclient.String("bucket-2"),
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down Expand Up @@ -686,7 +686,7 @@ func TestIsUpToDate(t *testing.T) {
Bucket: &bucketName,
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down Expand Up @@ -773,7 +773,7 @@ func TestIsUpToDate(t *testing.T) {
Bucket: &bucketName,
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down Expand Up @@ -836,7 +836,7 @@ func TestIsUpToDate(t *testing.T) {
Bucket: &bucketName,
EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID},
Metrics: &v1beta1.Metrics{
EventThreshold: v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)},
Status: enabled,
},
ReplicationTime: &v1beta1.ReplicationTime{
Expand Down

0 comments on commit ea57cdc

Please sign in to comment.