github.com/weaviate/weaviate@v1.24.6/test/modules/backup-gcs/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 moduleshelper "github.com/weaviate/weaviate/test/helper/modules" 24 ) 25 26 const ( 27 envGCSEndpoint = "GCS_ENDPOINT" 28 envGCSStorageEmulatorHost = "STORAGE_EMULATOR_HOST" 29 envGCSCredentials = "GOOGLE_APPLICATION_CREDENTIALS" 30 envGCSProjectID = "GOOGLE_CLOUD_PROJECT" 31 envGCSBucket = "BACKUP_GCS_BUCKET" 32 envGCSUseAuth = "BACKUP_GCS_USE_AUTH" 33 34 gcsBackupJourneyClassName = "GcsBackup" 35 gcsBackupJourneyBackupIDSingleNode = "gcs-backup-single-node" 36 gcsBackupJourneyBackupIDCluster = "gcs-backup-cluster" 37 gcsBackupJourneyProjectID = "gcs-backup-journey" 38 gcsBackupJourneyBucketName = "backups" 39 ) 40 41 func Test_BackupJourney(t *testing.T) { 42 ctx, cancel := context.WithTimeout(context.Background(), 30*time.Minute) 43 defer cancel() 44 45 t.Run("single node", func(t *testing.T) { 46 t.Log("pre-instance env setup") 47 t.Setenv(envGCSCredentials, "") 48 t.Setenv(envGCSProjectID, gcsBackupJourneyProjectID) 49 t.Setenv(envGCSBucket, gcsBackupJourneyBucketName) 50 51 compose, err := docker.New(). 52 WithBackendGCS(gcsBackupJourneyBucketName). 53 WithText2VecContextionary(). 54 WithWeaviate(). 55 Start(ctx) 56 require.Nil(t, err) 57 defer func() { 58 if err := compose.Terminate(ctx); err != nil { 59 t.Fatalf("failed to terminate test containers: %s", err.Error()) 60 } 61 }() 62 63 t.Log("post-instance env setup") 64 t.Setenv(envGCSEndpoint, compose.GetGCS().URI()) 65 t.Setenv(envGCSStorageEmulatorHost, compose.GetGCS().URI()) 66 moduleshelper.CreateGCSBucket(ctx, t, gcsBackupJourneyProjectID, gcsBackupJourneyBucketName) 67 helper.SetupClient(compose.GetWeaviate().URI()) 68 69 t.Run("backup-gcs", func(t *testing.T) { 70 journey.BackupJourneyTests_SingleNode(t, compose.GetWeaviate().URI(), 71 "gcs", gcsBackupJourneyClassName, gcsBackupJourneyBackupIDSingleNode, nil) 72 }) 73 }) 74 75 t.Run("multiple node", func(t *testing.T) { 76 t.Log("pre-instance env setup") 77 t.Setenv(envGCSCredentials, "") 78 t.Setenv(envGCSProjectID, gcsBackupJourneyProjectID) 79 t.Setenv(envGCSBucket, gcsBackupJourneyBucketName) 80 81 compose, err := docker.New(). 82 WithBackendGCS(gcsBackupJourneyBucketName). 83 WithText2VecContextionary(). 84 WithWeaviateCluster(). 85 Start(ctx) 86 require.Nil(t, err) 87 defer func() { 88 if err := compose.Terminate(ctx); err != nil { 89 t.Fatalf("failed to terminate test containers: %s", err.Error()) 90 } 91 }() 92 93 t.Log("post-instance env setup") 94 t.Setenv(envGCSEndpoint, compose.GetGCS().URI()) 95 t.Setenv(envGCSStorageEmulatorHost, compose.GetGCS().URI()) 96 moduleshelper.CreateGCSBucket(ctx, t, gcsBackupJourneyProjectID, gcsBackupJourneyBucketName) 97 helper.SetupClient(compose.GetWeaviate().URI()) 98 99 t.Run("backup-gcs", func(t *testing.T) { 100 journey.BackupJourneyTests_Cluster(t, "gcs", gcsBackupJourneyClassName, 101 gcsBackupJourneyBackupIDCluster, nil, compose.GetWeaviate().URI(), compose.GetWeaviateNode2().URI()) 102 }) 103 }) 104 }