aboutsummaryrefslogtreecommitdiff
path: root/test/s3/filer_group/README.md
blob: a0d724afc50ee750098f14db795a6121e6ca7963 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# 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                |