diff --git a/_unit-test/multiple-seaweedfs-bucket-test.sh b/_unit-test/multiple-seaweedfs-bucket-test.sh new file mode 100755 index 0000000..6bfa595 --- /dev/null +++ b/_unit-test/multiple-seaweedfs-bucket-test.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +source _unit-test/_test_setup.sh +source install/dc-detect-version.sh +source install/create-docker-volumes.sh + +start_service_and_wait_ready seaweedfs + +$dcx seaweedfs apk add --no-cache s3cmd +s3cmd="$dc exec seaweedfs s3cmd" + +# Create multiple buckets for testing +buckets=(bucket1 bucket2 bucket3) +for bucket in "${buckets[@]}"; do + $s3cmd --access_key=sentry --secret_key=sentry --no-ssl --region=us-east-1 --host=localhost:8333 --host-bucket='localhost:8333/%(bucket)' mb s3://$bucket +done + +# Verify that all buckets were created successfully +bucket_list=$($s3cmd --access_key=sentry --secret_key=sentry --no-ssl --region=us-east-1 --host=localhost:8333 --host-bucket='localhost:8333/%(bucket)' ls) +for bucket in "${buckets[@]}"; do + if ! echo "$bucket_list" | grep -q "s3://$bucket"; then + echo "Error: Bucket s3://$bucket was not created successfully." + exit 1 + fi +done + +# Can find "bucket2" +if ! echo "$bucket_list" | grep -q "s3://bucket2"; then + echo "Error: Bucket s3://bucket2 was not found." + exit 1 +fi + +# Can't find "bucket5", should not exist +if echo "$bucket_list" | grep -q "s3://bucket5"; then + echo "Error: Bucket s3://bucket5 should not exist." + exit 1 +fi + +report_success diff --git a/install/bootstrap-s3-nodestore.sh b/install/bootstrap-s3-nodestore.sh index 407e0cc..02a243d 100644 --- a/install/bootstrap-s3-nodestore.sh +++ b/install/bootstrap-s3-nodestore.sh @@ -7,7 +7,7 @@ s3cmd="$dc exec seaweedfs s3cmd" bucket_list=$($s3cmd --access_key=sentry --secret_key=sentry --no-ssl --region=us-east-1 --host=localhost:8333 --host-bucket='localhost:8333/%(bucket)' ls) -if [[ $(echo "$bucket_list" | tail -1 | awk '{print $3}') != 's3://nodestore' ]]; then +if ! echo "$bucket_list" | grep -q "s3://nodestore"; then apply_config_changes_nodestore=0 # Only touch if no existing nodestore config is found if ! grep -q "SENTRY_NODESTORE" $SENTRY_CONFIG_PY; then diff --git a/install/bootstrap-s3-profiles.sh b/install/bootstrap-s3-profiles.sh index 749d4c3..447570a 100644 --- a/install/bootstrap-s3-profiles.sh +++ b/install/bootstrap-s3-profiles.sh @@ -19,7 +19,7 @@ if [[ "$COMPOSE_PROFILES" == "feature-complete" ]]; then bucket_list=$($s3cmd --access_key=sentry --secret_key=sentry --no-ssl --region=us-east-1 --host=localhost:8333 --host-bucket='localhost:8333/%(bucket)' ls) - if [[ $(echo "$bucket_list" | tail -1 | awk '{print $3}') != 's3://profiles' ]]; then + if ! echo "$bucket_list" | grep -q "s3://profiles"; then apply_config_changes_profiles=0 # Only touch if no existing profiles config is found if ! grep -q "filestore.profiles-backend" $SENTRY_CONFIG_YML; then