Skip to content

Commit 44d1276

Browse files
committed
wire context
1 parent 0ebf565 commit 44d1276

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+651
-990
lines changed

test/e2e/alert_config_test.go

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package e2e_test
1616

1717
import (
18+
"context"
1819
"os"
1920
"time"
2021

@@ -53,18 +54,15 @@ var _ = Describe("Alert configuration tests", Label("alert-config", "alert-confi
5354
})
5455

5556
DescribeTable("Namespaced operators working only with its own namespace with different configuration",
56-
func(test *model.TestDataProvider, alertConfigurations []akov2.AlertConfiguration) {
57-
testData = test
58-
actions.ProjectCreationFlow(test)
59-
alertConfigFlow(test, alertConfigurations)
57+
func(ctx SpecContext, test func(ctx context.Context) *model.TestDataProvider, alertConfigurations []akov2.AlertConfiguration) {
58+
testData = test(ctx)
59+
actions.ProjectCreationFlow(testData)
60+
alertConfigFlow(testData, alertConfigurations)
6061
},
6162
Entry("Test[alert-configs-1]: Project with 2 identical alert configs", Label("focus-alert-configs-1"),
62-
model.DataProvider(
63-
"alert-configs-1",
64-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
65-
40000,
66-
[]func(*model.TestDataProvider){},
67-
).WithProject(data.DefaultProject()),
63+
func(ctx context.Context) *model.TestDataProvider {
64+
return model.DataProvider(ctx, "alert-configs-1", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 40000, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject())
65+
},
6866
[]akov2.AlertConfiguration{
6967
{
7068
EventTypeName: "REPLICATION_OPLOG_WINDOW_RUNNING_OUT",
@@ -112,12 +110,9 @@ var _ = Describe("Alert configuration tests", Label("alert-config", "alert-confi
112110
},
113111
),
114112
Entry("Test[alert-configs-2]: Project with 2 different alert configs", Label("focus-alert-configs-2"),
115-
model.DataProvider(
116-
"alert-configs-2",
117-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
118-
40000,
119-
[]func(*model.TestDataProvider){},
120-
).WithProject(data.DefaultProject()),
113+
func(ctx context.Context) *model.TestDataProvider {
114+
return model.DataProvider(ctx, "alert-configs-2", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 40000, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject())
115+
},
121116
[]akov2.AlertConfiguration{
122117
{
123118
EventTypeName: "JOINED_GROUP",
@@ -159,12 +154,9 @@ var _ = Describe("Alert configuration tests", Label("alert-config", "alert-confi
159154
},
160155
),
161156
Entry("Test[alert-configs-3]: Project with an alert config containing a matcher", Label("focus-alert-configs-3"),
162-
model.DataProvider(
163-
"alert-configs-3",
164-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
165-
40000,
166-
[]func(*model.TestDataProvider){},
167-
).WithProject(data.DefaultProject()),
157+
func(ctx context.Context) *model.TestDataProvider {
158+
return model.DataProvider(ctx, "alert-configs-3", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 40000, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject())
159+
},
168160
[]akov2.AlertConfiguration{
169161
{
170162
EventTypeName: "REPLICATION_OPLOG_WINDOW_RUNNING_OUT",
@@ -336,13 +328,8 @@ var _ = Describe("Alert configuration with secrets test", Label("alert-config",
336328
actions.AfterEachFinalCleanup([]model.TestDataProvider{*testData})
337329
})
338330

339-
It("Should be able to create AtlasProject with Alert Config and secrets", func() {
340-
testData = model.DataProvider(
341-
"alert-configs-1",
342-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
343-
40000,
344-
[]func(*model.TestDataProvider){},
345-
).WithProject(data.DefaultProject())
331+
It("Should be able to create AtlasProject with Alert Config and secrets", func(ctx SpecContext) {
332+
testData = model.DataProvider(ctx, "alert-configs-1", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 40000, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject())
346333

347334
By("Creating an AtlasProject", func() {
348335
actions.ProjectCreationFlow(testData)

test/e2e/annotations_test.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package e2e_test
1616

1717
import (
18+
"context"
1819
. "github.com/onsi/ginkgo/v2"
1920
. "github.com/onsi/gomega"
2021

@@ -41,23 +42,20 @@ var _ = Describe("Annotations base test.", Label("deployment-annotations-ns"), f
4142
})
4243

4344
DescribeTable("Namespaced operators working only with its own namespace with different configuration",
44-
func(test *model.TestDataProvider) {
45-
testData = test
46-
mainCycle(test)
45+
func(ctx SpecContext, test func(context.Context) *model.TestDataProvider) {
46+
testData = test(ctx)
47+
mainCycle(testData)
4748
},
4849
// TODO: fix test for deletion protection on, as it would fail to re-take the cluster after deletion
4950
Entry("Simple configuration with keep resource policy annotation on deployment", Label("focus-ns-crd"),
50-
model.DataProvider(
51-
"operator-ns-crd",
52-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
53-
30000,
54-
[]func(*model.TestDataProvider){
51+
func(ctx context.Context) *model.TestDataProvider {
52+
return model.DataProvider(ctx, "operator-ns-crd", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 30000, []func(*model.TestDataProvider){
5553
actions.DeleteDeploymentCRWithKeepAnnotation,
5654
actions.RedeployDeployment,
5755
actions.RemoveKeepAnnotation,
58-
},
59-
).WithInitialDeployments(data.CreateDeploymentWithKeepPolicy("atlascluster-annotation")).
60-
WithProject(data.DefaultProject()),
56+
}).WithInitialDeployments(data.CreateDeploymentWithKeepPolicy("atlascluster-annotation")).
57+
WithProject(data.DefaultProject())
58+
},
6159
),
6260
)
6361
})

test/e2e/atlas_gov_test.go

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -54,22 +54,17 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
5454
clusterName := fmt.Sprintf("%s-cluster", projectName)
5555
ctx := context.Background()
5656

57-
BeforeEach(func() {
57+
BeforeEach(func(ctx SpecContext) {
5858
By("Setting up cloud environment", func() {
5959
checkUpAWSEnvironment()
6060

61-
aws, err := cloud.NewAWSAction(GinkgoT())
61+
aws, err := cloud.NewAWSAction(ctx, GinkgoT())
6262
Expect(err).ToNot(HaveOccurred())
6363
awsHelper = aws
6464
})
6565

6666
By("Setting up test environment", func() {
67-
testData = model.DataProvider(
68-
"atlas-gov",
69-
model.NewEmptyAtlasKeyType().CreateAsGlobalLevelKey(),
70-
30005,
71-
[]func(*model.TestDataProvider){},
72-
)
67+
testData = model.DataProvider(ctx, "atlas-gov", model.NewEmptyAtlasKeyType().CreateAsGlobalLevelKey(), 30005, []func(*model.TestDataProvider){})
7368

7469
actions.CreateNamespaceAndSecrets(testData)
7570
})
@@ -96,7 +91,7 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
9691
})
9792
})
9893

99-
It("Manage all supported Atlas for Government features", Label("focus-atlas-gov-supported"), func() {
94+
It("Manage all supported Atlas for Government features", Label("focus-atlas-gov-supported"), func(ctx SpecContext) {
10095
By("Preparing API Key for integrations", func() {
10196
secret := &corev1.Secret{
10297
ObjectMeta: metav1.ObjectMeta{
@@ -239,7 +234,7 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
239234
})
240235

241236
By("Configuring Cloud Provider Access", func() {
242-
assumedRoleArn, err := cloudaccess.CreateAWSIAMRole(projectName)
237+
assumedRoleArn, err := cloudaccess.CreateAWSIAMRole(ctx, projectName)
243238
Expect(err).ToNot(HaveOccurred())
244239

245240
Expect(testData.K8SClient.Get(ctx, client.ObjectKeyFromObject(testData.Project), testData.Project)).To(Succeed())
@@ -258,11 +253,7 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
258253
}).WithTimeout(time.Minute * 5).WithPolling(time.Second * 20).Should(Succeed())
259254

260255
Expect(
261-
cloudaccess.AddAtlasStatementToAWSIAMRole(
262-
testData.Project.Status.CloudProviderIntegrations[0].AtlasAWSAccountArn,
263-
testData.Project.Status.CloudProviderIntegrations[0].AtlasAssumedRoleExternalID,
264-
projectName,
265-
),
256+
cloudaccess.AddAtlasStatementToAWSIAMRole(ctx, testData.Project.Status.CloudProviderIntegrations[0].AtlasAWSAccountArn, testData.Project.Status.CloudProviderIntegrations[0].AtlasAssumedRoleExternalID, projectName),
266257
).To(Succeed())
267258

268259
Eventually(func(g Gomega) {
@@ -272,10 +263,10 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
272263
})
273264

274265
By("Configuring Networking Peering", func() {
275-
awsAccountID, err := awsHelper.GetAccountID()
266+
awsAccountID, err := awsHelper.GetAccountID(ctx)
276267
Expect(err).ToNot(HaveOccurred())
277268

278-
AwsVpcID, err := awsHelper.InitNetwork(projectName, "10.0.0.0/24", "us-west-1", map[string]string{"subnet-1": "10.0.0.0/24"}, false)
269+
AwsVpcID, err := awsHelper.InitNetwork(ctx, projectName, "10.0.0.0/24", "us-west-1", map[string]string{"subnet-1": "10.0.0.0/24"}, false)
279270
Expect(err).ToNot(HaveOccurred())
280271

281272
Expect(testData.K8SClient.Get(ctx, client.ObjectKeyFromObject(testData.Project), testData.Project)).To(Succeed())
@@ -297,7 +288,7 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
297288
g.Expect(testData.Project.Status.NetworkPeers[0].StatusName).Should(Equal("PENDING_ACCEPTANCE"))
298289
}).WithTimeout(time.Minute * 15).WithPolling(time.Second * 20).Should(Succeed())
299290

300-
Expect(awsHelper.AcceptVpcPeeringConnection(testData.Project.Status.NetworkPeers[0].ConnectionID, "us-west-1")).To(Succeed())
291+
Expect(awsHelper.AcceptVpcPeeringConnection(ctx, testData.Project.Status.NetworkPeers[0].ConnectionID, "us-west-1")).To(Succeed())
301292

302293
Eventually(func(g Gomega) {
303294
g.Expect(testData.K8SClient.Get(ctx, client.ObjectKeyFromObject(testData.Project), testData.Project)).To(Succeed())
@@ -311,7 +302,7 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
311302
awsRoleARN := testData.Project.Status.CloudProviderIntegrations[0].IamAssumedRoleArn
312303
atlasRoleID := testData.Project.Status.CloudProviderIntegrations[0].RoleID
313304

314-
customerMasterKeyID, err := awsHelper.CreateKMS(fmt.Sprintf("%s-kms", projectName), "us-west-1", atlasAccountARN, awsRoleARN)
305+
customerMasterKeyID, err := awsHelper.CreateKMS(ctx, fmt.Sprintf("%s-kms", projectName), "us-west-1", atlasAccountARN, awsRoleARN)
315306
Expect(err).ToNot(HaveOccurred())
316307

317308
secret := &corev1.Secret{
@@ -376,6 +367,7 @@ var _ = Describe("Atlas for Government", Label("atlas-gov"), func() {
376367
}).WithTimeout(time.Minute * 15).WithPolling(time.Second * 20).Should(Succeed())
377368

378369
peID, err := awsHelper.CreatePrivateEndpoint(
370+
ctx,
379371
testData.Project.Status.PrivateEndpoints[0].ServiceName,
380372
fmt.Sprintf("pe-%s-gov", testData.Project.Status.PrivateEndpoints[0].ID),
381373
"us-west-1",

test/e2e/atlasorgsettings_test.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,8 @@ var _ = Describe("AtlasOrgSettings", Label("atlas-org-settings"), func() {
5151
})
5252
})
5353

54-
It("Should create AtlasOrgSettings with strict configuration and verify its status", func() {
55-
testData = model.DataProvider(
56-
"atlas-org-settings",
57-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
58-
40000,
59-
[]func(*model.TestDataProvider){},
60-
).WithProject(data.DefaultProject())
54+
It("Should create AtlasOrgSettings with strict configuration and verify its status", func(ctx SpecContext) {
55+
testData = model.DataProvider(ctx, "atlas-org-settings", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 40000, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject())
6156

6257
actions.ProjectCreationFlow(testData)
6358

test/e2e/auditing_test.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package e2e_test
1616

1717
import (
18+
"context"
1819
. "github.com/onsi/ginkgo/v2"
1920
. "github.com/onsi/gomega"
2021

@@ -44,18 +45,15 @@ var _ = Describe("UserLogin", Label("auditing"), func() {
4445
})
4546

4647
DescribeTable("Namespaced operators working only with its own namespace with different configuration",
47-
func(test *model.TestDataProvider, auditing akov2.Auditing) {
48-
testData = test
49-
actions.ProjectCreationFlow(test)
50-
auditingFlow(test, &auditing)
48+
func(ctx SpecContext, test func(ctx2 context.Context) *model.TestDataProvider, auditing akov2.Auditing) {
49+
testData = test(ctx)
50+
actions.ProjectCreationFlow(testData)
51+
auditingFlow(testData, &auditing)
5152
},
5253
Entry("Test[auditing]: User has project to which Auditing was added", Label("focus-auditing"),
53-
model.DataProvider(
54-
"auditing",
55-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
56-
40000,
57-
[]func(*model.TestDataProvider){},
58-
).WithProject(data.DefaultProject()),
54+
func(ctx context.Context) *model.TestDataProvider {
55+
return model.DataProvider(ctx, "auditing", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 40000, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject())
56+
},
5957
akov2.Auditing{
6058
AuditAuthorizationSuccess: false,
6159
AuditFilter: exampleFilter(),

test/e2e/backup_compliance_test.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,9 @@ var _ = Describe("Backup Compliance Configuration", Label("backup-compliance"),
3939
var testData *model.TestDataProvider
4040
var backupCompliancePolicy *akov2.AtlasBackupCompliancePolicy
4141

42-
BeforeEach(func() {
42+
BeforeEach(func(ctx SpecContext) {
4343
By("Setting up cloud environment", func() {
44-
testData = model.DataProvider(
45-
"atlas-bcp",
46-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
47-
30005,
48-
[]func(*model.TestDataProvider){},
49-
).
44+
testData = model.DataProvider(ctx, "atlas-bcp", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 30005, []func(*model.TestDataProvider){}).
5045
WithProject(data.DefaultProject()).
5146
WithInitialDeployments(data.CreateAdvancedDeployment("bcp-test-deployment").
5247
WithBackupScheduleRef(common.ResourceRefNamespaced{}))

test/e2e/backup_config_test.go

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package e2e_test
1616

1717
import (
18+
"context"
1819
"fmt"
1920
"time"
2021

@@ -65,29 +66,26 @@ var _ = Describe("Deployment Backup Configuration", Label("backup-config"), func
6566
})
6667

6768
DescribeTable("Configure backup for a deployment",
68-
func(test *model.TestDataProvider) {
69-
testData = test
69+
func(ctx SpecContext, test func(context.Context) *model.TestDataProvider) {
70+
testData = test(ctx)
7071

7172
bucket := fmt.Sprintf("%s-%s", bucketName, testData.Resources.TestID)
7273
bucketPolicy := fmt.Sprintf("%s-%s", atlasBucketPolicyName, testData.Resources.TestID)
7374
role := fmt.Sprintf("%s-%s", atlasIAMRoleName, testData.Resources.TestID)
7475

75-
actions.CreateProjectWithCloudProviderAccess(testData, role)
76-
setupAWSResource(testData.AWSResourcesGenerator, bucket, bucketPolicy, role)
76+
actions.CreateProjectWithCloudProviderAccess(ctx, testData, role)
77+
setupAWSResource(ctx, testData.AWSResourcesGenerator, bucket, bucketPolicy, role)
7778
deploy.CreateInitialDeployments(testData)
7879

79-
backupConfigFlow(test, bucket)
80+
backupConfigFlow(testData, bucket)
8081
},
8182
Entry(
8283
"Enable backup for a deployment",
83-
model.DataProvider(
84-
"deployment-backup-enabled",
85-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
86-
30001,
87-
[]func(*model.TestDataProvider){},
88-
).
89-
WithProject(data.DefaultProject()).
90-
WithInitialDeployments(data.CreateAdvancedDeployment("backup-deployment")),
84+
func(ctx context.Context) *model.TestDataProvider {
85+
return model.DataProvider(ctx, "deployment-backup-enabled", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 30001, []func(*model.TestDataProvider){}).
86+
WithProject(data.DefaultProject()).
87+
WithInitialDeployments(data.CreateAdvancedDeployment("backup-deployment"))
88+
},
9189
),
9290
)
9391
})
@@ -222,24 +220,24 @@ func backupConfigFlow(data *model.TestDataProvider, bucket string) {
222220
})
223221
}
224222

225-
func setupAWSResource(gen *helper.AwsResourcesGenerator, bucket, bucketPolicy, role string) {
226-
Expect(gen.CreateBucket(bucket)).To(Succeed())
223+
func setupAWSResource(ctx context.Context, gen *helper.AwsResourcesGenerator, bucket, bucketPolicy, role string) {
224+
Expect(gen.CreateBucket(ctx, bucket)).To(Succeed())
227225
gen.Cleanup(func() {
228-
Expect(gen.EmptyBucket(bucket)).To(Succeed())
229-
Expect(gen.DeleteBucket(bucket)).To(Succeed())
226+
Expect(gen.EmptyBucket(ctx, bucket)).To(Succeed())
227+
Expect(gen.DeleteBucket(ctx, bucket)).To(Succeed())
230228
})
231229

232-
policyArn, err := gen.CreatePolicy(bucketPolicy, func() helper.IAMPolicy {
230+
policyArn, err := gen.CreatePolicy(ctx, bucketPolicy, func() helper.IAMPolicy {
233231
return helper.BucketExportPolicy(bucket)
234232
})
235233
Expect(err).Should(BeNil())
236234
Expect(policyArn).ShouldNot(BeEmpty())
237235
gen.Cleanup(func() {
238-
Expect(gen.DeletePolicy(policyArn)).To(Succeed())
236+
Expect(gen.DeletePolicy(ctx, policyArn)).To(Succeed())
239237
})
240238

241-
Expect(gen.AttachRolePolicy(role, policyArn)).To(Succeed())
239+
Expect(gen.AttachRolePolicy(ctx, role, policyArn)).To(Succeed())
242240
gen.Cleanup(func() {
243-
Expect(gen.DetachRolePolicy(role, policyArn)).To(Succeed())
241+
Expect(gen.DetachRolePolicy(ctx, role, policyArn)).To(Succeed())
244242
})
245243
}

test/e2e/bundle_test.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,9 @@ var _ = Describe("User can deploy operator from bundles", Label("focus-quatantin
5252
})
5353
})
5454

55-
It("User can install operator with OLM", func() {
55+
It("User can install operator with OLM", func(ctx SpecContext) {
5656
By("User creates configuration for a new Project and Deployment", func() {
57-
testData = model.DataProvider(
58-
"bundle-wide",
59-
model.NewEmptyAtlasKeyType().UseDefaultFullAccess(),
60-
30005,
61-
[]func(*model.TestDataProvider){},
62-
).WithProject(data.DefaultProject()).
57+
testData = model.DataProvider(ctx, "bundle-wide", model.NewEmptyAtlasKeyType().UseDefaultFullAccess(), 30005, []func(*model.TestDataProvider){}).WithProject(data.DefaultProject()).
6358
WithInitialDeployments(data.CreateBasicDeployment("basic-deployment")).
6459
WithUsers(data.BasicUser("user1", "user1",
6560
data.WithSecretRef("dbuser-secret-u1"),

0 commit comments

Comments
 (0)