Skip to content

Commit bc6af83

Browse files
author
Kyrie Chen
committed
Fixes flaky tests
1 parent d2483d2 commit bc6af83

35 files changed

+471
-355
lines changed

apis/v1alpha1/ack-generate-metadata.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
ack_generate_info:
2-
build_date: "2023-01-10T21:58:28Z"
3-
build_hash: 1b20baf45a0b73a11b296050322a384c705fa897
4-
go_version: go1.17.5
5-
version: v0.22.0
2+
build_date: "2023-02-01T22:07:34Z"
3+
build_hash: c6651c200ba136e5c7f50ad8be751fae060a38e6
4+
go_version: go1.19
5+
version: v0.22.0-1-gc6651c2
66
api_directory_checksum: ee32acc4d4a0ba7e2823dd20fdbe2c4ef1d9e0f4
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.44.93

apis/v1alpha1/subnet_group.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/v1alpha1/types.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

helm/crds/memorydb.services.k8s.aws_subnetgroups.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ spec:
3434
type: object
3535
spec:
3636
description: "SubnetGroupSpec defines the desired state of SubnetGroup.
37-
\n Represents the output of one of the following operations: \n * CreateSubnetGroup
38-
\n * UpdateSubnetGroup \n A subnet group is a collection of subnets
37+
\n Represents the output of one of the following operations: \n - CreateSubnetGroup
38+
\n - UpdateSubnetGroup \n A subnet group is a collection of subnets
3939
(typically private) that you can designate for your clusters running
4040
in an Amazon Virtual Private Cloud (VPC) environment."
4141
properties:

pkg/resource/acl/hooks.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ func (rm *resourceManager) validateACLNeedsUpdate(
4141
return nil
4242
}
4343

44+
// aclActive returns true when the status of the given ACL is set to `active`
45+
func (rm *resourceManager) aclActive(
46+
latest *resource,
47+
) bool {
48+
latestStatus := latest.ko.Status.Status
49+
return latestStatus != nil && *latestStatus == "active"
50+
}
51+
4452
// getTags gets tags from given ParameterGroup.
4553
func (rm *resourceManager) getTags(
4654
ctx context.Context,
@@ -114,17 +122,23 @@ func computeTagsDelta(
114122
latest []*svcapitypes.Tag,
115123
) (addedOrUpdated []*svcapitypes.Tag, removed []*string) {
116124
var visitedIndexes []string
125+
var hasSameKey bool
117126

118127
for _, latestElement := range latest {
128+
hasSameKey = false
119129
visitedIndexes = append(visitedIndexes, *latestElement.Key)
120130
for _, desiredElement := range desired {
121131
if equalStrings(latestElement.Key, desiredElement.Key) {
132+
hasSameKey = true
122133
if !equalStrings(latestElement.Value, desiredElement.Value) {
123134
addedOrUpdated = append(addedOrUpdated, desiredElement)
124135
}
125-
continue
136+
break
126137
}
127138
}
139+
if hasSameKey {
140+
continue
141+
}
128142
removed = append(removed, latestElement.Key)
129143
}
130144
for _, desiredElement := range desired {

pkg/resource/acl/sdk.go

Lines changed: 12 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/cluster/hooks.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,14 @@ func (rm *resourceManager) newMemoryDBClusterUploadPayload(
264264
return res
265265
}
266266

267+
// clusterActive returns true when the status of the given Cluster is set to `active`
268+
func (rm *resourceManager) clusterActive(
269+
latest *resource,
270+
) bool {
271+
latestStatus := latest.ko.Status.Status
272+
return latestStatus != nil && *latestStatus == "active"
273+
}
274+
267275
// getTags gets tags from given ParameterGroup.
268276
func (rm *resourceManager) getTags(
269277
ctx context.Context,
@@ -337,17 +345,23 @@ func computeTagsDelta(
337345
latest []*svcapitypes.Tag,
338346
) (addedOrUpdated []*svcapitypes.Tag, removed []*string) {
339347
var visitedIndexes []string
348+
var hasSameKey bool
340349

341350
for _, latestElement := range latest {
351+
hasSameKey = false
342352
visitedIndexes = append(visitedIndexes, *latestElement.Key)
343353
for _, desiredElement := range desired {
344354
if equalStrings(latestElement.Key, desiredElement.Key) {
355+
hasSameKey = true
345356
if !equalStrings(latestElement.Value, desiredElement.Value) {
346357
addedOrUpdated = append(addedOrUpdated, desiredElement)
347358
}
348-
continue
359+
break
349360
}
350361
}
362+
if hasSameKey {
363+
continue
364+
}
351365
removed = append(removed, latestElement.Key)
352366
}
353367
for _, desiredElement := range desired {

pkg/resource/cluster/sdk.go

Lines changed: 12 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/parameter_group/hooks.go

Lines changed: 44 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ package parameter_group
1515

1616
import (
1717
"context"
18+
ackutil "github.com/aws-controllers-k8s/runtime/pkg/util"
1819

1920
ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1"
2021
ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors"
@@ -173,13 +174,7 @@ func (rm *resourceManager) getTags(
173174
if err != nil {
174175
return nil, err
175176
}
176-
tags := make([]*svcapitypes.Tag, 0, len(resp.TagList))
177-
for _, tag := range resp.TagList {
178-
tags = append(tags, &svcapitypes.Tag{
179-
Key: tag.Key,
180-
Value: tag.Value,
181-
})
182-
}
177+
tags := resourceTagsFromSDKTags(resp.TagList)
183178
return tags, nil
184179
}
185180

@@ -235,34 +230,33 @@ func (rm *resourceManager) updateTags(
235230
func computeTagsDelta(
236231
desired []*svcapitypes.Tag,
237232
latest []*svcapitypes.Tag,
238-
) (added []*svcapitypes.Tag, removed []*string) {
239-
toDelete := []*string{}
240-
toAdd := []*svcapitypes.Tag{}
241-
242-
desiredTags := map[string]string{}
243-
key := ""
244-
value := ""
245-
for _, tag := range desired {
246-
if tag.Key != nil {
247-
key = *tag.Key
248-
value = ""
249-
if tag.Value != nil {
250-
value = *tag.Value
233+
) (addedOrUpdated []*svcapitypes.Tag, removed []*string) {
234+
var visitedIndexes []string
235+
var hasSameKey bool
236+
237+
for _, latestElement := range latest {
238+
hasSameKey = false
239+
visitedIndexes = append(visitedIndexes, *latestElement.Key)
240+
for _, desiredElement := range desired {
241+
if equalStrings(latestElement.Key, desiredElement.Key) {
242+
hasSameKey = true
243+
if !equalStrings(latestElement.Value, desiredElement.Value) {
244+
addedOrUpdated = append(addedOrUpdated, desiredElement)
245+
}
246+
break
251247
}
252-
desiredTags[key] = value
253248
}
249+
if hasSameKey {
250+
continue
251+
}
252+
removed = append(removed, latestElement.Key)
254253
}
255-
256-
for _, tag := range desired {
257-
toAdd = append(toAdd, tag)
258-
}
259-
for _, tag := range latest {
260-
_, ok := desiredTags[*tag.Key]
261-
if !ok {
262-
toDelete = append(toDelete, tag.Key)
254+
for _, desiredElement := range desired {
255+
if !ackutil.InStrings(*desiredElement.Key, visitedIndexes) {
256+
addedOrUpdated = append(addedOrUpdated, desiredElement)
263257
}
264258
}
265-
return toAdd, toDelete
259+
return addedOrUpdated, removed
266260
}
267261

268262
func sdkTagsFromResourceTags(
@@ -277,3 +271,23 @@ func sdkTagsFromResourceTags(
277271
}
278272
return tags
279273
}
274+
275+
func resourceTagsFromSDKTags(
276+
sdkTags []*svcsdk.Tag,
277+
) []*svcapitypes.Tag {
278+
tags := make([]*svcapitypes.Tag, len(sdkTags))
279+
for i := range sdkTags {
280+
tags[i] = &svcapitypes.Tag{
281+
Key: sdkTags[i].Key,
282+
Value: sdkTags[i].Value,
283+
}
284+
}
285+
return tags
286+
}
287+
288+
func equalStrings(a, b *string) bool {
289+
if a == nil {
290+
return b == nil || *b == ""
291+
}
292+
return (*a == "" && b == nil) || *a == *b
293+
}

0 commit comments

Comments
 (0)