github.com/weaviate/weaviate@v1.24.6/test/modules/backup-s3/backup_journey_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 "testing" 17 "time" 18 19 "github.com/stretchr/testify/require" 20 "github.com/weaviate/weaviate/test/docker" 21 "github.com/weaviate/weaviate/test/helper" 22 "github.com/weaviate/weaviate/test/helper/journey" 23 ) 24 25 const ( 26 envMinioEndpoint = "MINIO_ENDPOINT" 27 envAwsRegion = "AWS_REGION" 28 envS3AccessKey = "AWS_ACCESS_KEY_ID" 29 envS3SecretKey = "AWS_SECRET_KEY" 30 envS3Bucket = "BACKUP_S3_BUCKET" 31 envS3Endpoint = "BACKUP_S3_ENDPOINT" 32 envS3UseSSL = "BACKUP_S3_USE_SSL" 33 34 s3BackupJourneyClassName = "S3Backup" 35 s3BackupJourneyBackupIDSingleNode = "s3-backup-single-node" 36 s3BackupJourneyBackupIDCluster = "s3-backup-cluster" 37 s3BackupJourneyBucketName = "backups" 38 s3BackupJourneyRegion = "eu-west-1" 39 s3BackupJourneyAccessKey = "aws_access_key" 40 s3BackupJourneySecretKey = "aws_secret_key" 41 ) 42 43 func Test_BackupJourney(t *testing.T) { 44 t.Run("single node", func(t *testing.T) { 45 ctx, cancel := context.WithTimeout(context.Background(), 30*time.Minute) 46 defer cancel() 47 48 t.Log("pre-instance env setup") 49 t.Setenv(envS3AccessKey, s3BackupJourneyAccessKey) 50 t.Setenv(envS3SecretKey, s3BackupJourneySecretKey) 51 t.Setenv(envS3Bucket, s3BackupJourneyBucketName) 52 53 compose, err := docker.New(). 54 WithBackendS3(s3BackupJourneyBucketName). 55 WithText2VecContextionary(). 56 WithWeaviate(). 57 Start(ctx) 58 require.Nil(t, err) 59 defer func() { 60 if err := compose.Terminate(ctx); err != nil { 61 t.Fatalf("failed to terminate test containers: %s", err.Error()) 62 } 63 }() 64 65 t.Run("post-instance env setup", func(t *testing.T) { 66 createBucket(ctx, t, compose.GetMinIO().URI(), s3BackupJourneyRegion, s3BackupJourneyBucketName) 67 helper.SetupClient(compose.GetWeaviate().URI()) 68 }) 69 70 t.Run("backup-s3", func(t *testing.T) { 71 journey.BackupJourneyTests_SingleNode(t, compose.GetWeaviate().URI(), 72 "s3", s3BackupJourneyClassName, s3BackupJourneyBackupIDSingleNode, nil) 73 }) 74 }) 75 76 t.Run("multiple node", func(t *testing.T) { 77 ctx, cancel := context.WithTimeout(context.Background(), 30*time.Minute) 78 defer cancel() 79 80 t.Log("pre-instance env setup") 81 t.Setenv(envS3AccessKey, s3BackupJourneyAccessKey) 82 t.Setenv(envS3SecretKey, s3BackupJourneySecretKey) 83 t.Setenv(envS3Bucket, s3BackupJourneyBucketName) 84 85 compose, err := docker.New(). 86 WithBackendS3(s3BackupJourneyBucketName). 87 WithText2VecContextionary(). 88 WithWeaviateCluster(). 89 Start(ctx) 90 require.Nil(t, err) 91 defer func() { 92 if err := compose.Terminate(ctx); err != nil { 93 t.Fatalf("failed to terminate test containers: %s", err.Error()) 94 } 95 }() 96 97 t.Run("post-instance env setup", func(t *testing.T) { 98 createBucket(ctx, t, compose.GetMinIO().URI(), s3BackupJourneyRegion, s3BackupJourneyBucketName) 99 helper.SetupClient(compose.GetWeaviate().URI()) 100 }) 101 102 t.Run("backup-s3", func(t *testing.T) { 103 journey.BackupJourneyTests_Cluster(t, "s3", s3BackupJourneyClassName, 104 s3BackupJourneyBackupIDCluster, nil, 105 compose.GetWeaviate().URI(), compose.GetWeaviateNode2().URI()) 106 }) 107 }) 108 }