100 lines
2.6 KiB
Markdown
100 lines
2.6 KiB
Markdown
# Filer Group S3 Tests
|
|
|
|
These tests verify that S3 bucket operations work correctly when a filer group is configured.
|
|
|
|
## Background
|
|
|
|
When SeaweedFS is configured with a filer group (via `-filer.group` option), collections are named with the filer group prefix:
|
|
|
|
```text
|
|
Collection name = {filerGroup}_{bucketName}
|
|
```
|
|
|
|
For example, with filer group `mygroup` and bucket `mybucket`, the collection will be named `mygroup_mybucket`.
|
|
|
|
## Issue Being Tested
|
|
|
|
This test suite was created to verify the fix for a bug where:
|
|
- The admin UI was using just the bucket name when deleting collections
|
|
- This caused collection deletion to fail when a filer group was configured
|
|
- After bucket deletion via admin UI, the collection data would be orphaned
|
|
|
|
## Running the Tests
|
|
|
|
### Prerequisites
|
|
|
|
1. SeaweedFS servers must be running with a filer group configured
|
|
2. The S3 gateway must be accessible
|
|
3. Master server must be accessible for collection verification
|
|
|
|
### Quick Start
|
|
|
|
```bash
|
|
# Set environment variables
|
|
export FILER_GROUP=testgroup
|
|
export S3_ENDPOINT=http://localhost:8333
|
|
export MASTER_ADDRESS=localhost:9333
|
|
|
|
# Run tests
|
|
go test -v ./...
|
|
```
|
|
|
|
### Using the Makefile
|
|
|
|
```bash
|
|
# Start test servers with filer group configured
|
|
make start-servers FILER_GROUP=testgroup
|
|
|
|
# Run tests
|
|
make test
|
|
|
|
# Stop servers
|
|
make stop-servers
|
|
|
|
# Or run full test cycle
|
|
make full-test
|
|
```
|
|
|
|
### Configuration
|
|
|
|
Tests can be configured via:
|
|
|
|
1. Environment variables:
|
|
- `FILER_GROUP`: The filer group name (required for tests to run)
|
|
- `S3_ENDPOINT`: S3 API endpoint (default: `http://localhost:8333`)
|
|
- `MASTER_ADDRESS`: Master server address (default: localhost:9333)
|
|
|
|
2. `test_config.json` file
|
|
|
|
## Test Cases
|
|
|
|
### TestFilerGroupCollectionNaming
|
|
Verifies that when a bucket is created and objects are uploaded:
|
|
1. The collection is created with the correct filer group prefix
|
|
2. Bucket deletion removes the correctly-named collection
|
|
|
|
### TestBucketDeletionWithFilerGroup
|
|
Specifically tests that bucket deletion via S3 API correctly deletes
|
|
the collection when filer group is configured.
|
|
|
|
### TestMultipleBucketsWithFilerGroup
|
|
Tests creating and deleting multiple buckets to ensure the filer group
|
|
prefix is correctly applied and removed for all buckets.
|
|
|
|
## Expected Behavior
|
|
|
|
With filer group `testgroup`:
|
|
|
|
| Bucket Name | Expected Collection Name |
|
|
|-------------|-------------------------|
|
|
| mybucket | testgroup_mybucket |
|
|
| test-123 | testgroup_test-123 |
|
|
|
|
Without filer group:
|
|
|
|
| Bucket Name | Expected Collection Name |
|
|
|-------------|-------------------------|
|
|
| mybucket | mybucket |
|
|
| test-123 | test-123 |
|
|
|