github.com/weaviate/weaviate@v1.24.6/test/modules/backup-s3/multi_tenant_backup_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package test 13 14 import ( 15 "context" 16 "fmt" 17 "testing" 18 "time" 19 20 "github.com/stretchr/testify/require" 21 "github.com/weaviate/weaviate/test/docker" 22 "github.com/weaviate/weaviate/test/helper" 23 "github.com/weaviate/weaviate/test/helper/journey" 24 ) 25 26 const numTenants = 50 27 28 func Test_MultiTenantBackupJourney(t *testing.T) { 29 tenantNames := make([]string, numTenants) 30 for i := range tenantNames { 31 tenantNames[i] = fmt.Sprintf("Tenant%d", i) 32 } 33 34 t.Run("single node", func(t *testing.T) { 35 ctx, cancel := context.WithTimeout(context.Background(), 30*time.Minute) 36 defer cancel() 37 38 t.Log("pre-instance env setup") 39 t.Setenv(envS3AccessKey, s3BackupJourneyAccessKey) 40 t.Setenv(envS3SecretKey, s3BackupJourneySecretKey) 41 t.Setenv(envS3Bucket, s3BackupJourneyBucketName) 42 43 compose, err := docker.New(). 44 WithBackendS3(s3BackupJourneyBucketName). 45 WithText2VecContextionary(). 46 WithWeaviate(). 47 Start(ctx) 48 require.Nil(t, err) 49 defer func() { 50 if err := compose.Terminate(ctx); err != nil { 51 t.Fatalf("failed to terminate test containers: %s", err.Error()) 52 } 53 }() 54 55 t.Run("post-instance env setup", func(t *testing.T) { 56 createBucket(ctx, t, compose.GetMinIO().URI(), s3BackupJourneyRegion, s3BackupJourneyBucketName) 57 helper.SetupClient(compose.GetWeaviate().URI()) 58 }) 59 60 t.Run("backup-s3", func(t *testing.T) { 61 journey.BackupJourneyTests_SingleNode(t, compose.GetWeaviate().URI(), 62 "s3", s3BackupJourneyClassName, s3BackupJourneyBackupIDSingleNode, tenantNames) 63 }) 64 }) 65 66 t.Run("multiple node", func(t *testing.T) { 67 ctx, cancel := context.WithTimeout(context.Background(), 30*time.Minute) 68 defer cancel() 69 70 t.Log("pre-instance env setup") 71 t.Setenv(envS3AccessKey, s3BackupJourneyAccessKey) 72 t.Setenv(envS3SecretKey, s3BackupJourneySecretKey) 73 t.Setenv(envS3Bucket, s3BackupJourneyBucketName) 74 75 compose, err := docker.New(). 76 WithBackendS3(s3BackupJourneyBucketName). 77 WithText2VecContextionary(). 78 WithWeaviateCluster(). 79 Start(ctx) 80 require.Nil(t, err) 81 defer func() { 82 if err := compose.Terminate(ctx); err != nil { 83 t.Fatalf("failed to terminate test containers: %s", err.Error()) 84 } 85 }() 86 87 t.Run("post-instance env setup", func(t *testing.T) { 88 createBucket(ctx, t, compose.GetMinIO().URI(), s3BackupJourneyRegion, s3BackupJourneyBucketName) 89 helper.SetupClient(compose.GetWeaviate().URI()) 90 }) 91 92 t.Run("backup-s3", func(t *testing.T) { 93 journey.BackupJourneyTests_Cluster(t, "s3", s3BackupJourneyClassName, 94 s3BackupJourneyBackupIDCluster, tenantNames, 95 compose.GetWeaviate().URI(), compose.GetWeaviateNode2().URI()) 96 }) 97 }) 98 }