mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-22 05:54:24 +02:00
Revert "Implement IAM propagation to S3 servers (#8130)"
This reverts commit 551a31e156.
This commit is contained in:
1 parent
6389a40088
commit
62c4ef3536
26 files changed
+1206
-1726
No files matched your search
@@ -70,7 +70,6 @@ start-services: ## Start SeaweedFS services for testing
|
||||
-s3.port=$(S3_PORT) \
|
||||
-s3.config=test_config.json \
|
||||
-s3.iam.config=$(CURDIR)/iam_config.json \
|
||||
-s3.iam.readOnly=false \
|
||||
> weed-mini.log 2>&1 & \
|
||||
echo $$! > $(MINI_PID_FILE)
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@ weed server \
|
||||
-volume.max=0 \
|
||||
-master.volumeSizeLimitMB=100 \
|
||||
-s3.allowDeleteBucketNotEmpty=true \
|
||||
-s3.iam.readOnly=false \
|
||||
> /tmp/weed_test_server.log 2>&1 &
|
||||
|
||||
SERVER_PID=$!
|
||||
|
||||
@@ -810,7 +810,7 @@ func (f *S3IAMTestFramework) Cleanup() {
|
||||
}
|
||||
}
|
||||
|
||||
// WaitForS3Service waits for the S3 service to be available and checks for IAM write permissions
|
||||
// WaitForS3Service waits for the S3 service to be available
|
||||
func (f *S3IAMTestFramework) WaitForS3Service() error {
|
||||
// Create a basic S3 client
|
||||
sess, err := session.NewSession(&aws.Config{
|
||||
@@ -830,46 +830,17 @@ func (f *S3IAMTestFramework) WaitForS3Service() error {
|
||||
|
||||
s3Client := s3.New(sess)
|
||||
|
||||
// Create IAM client for write permission check
|
||||
iamClient := iam.New(sess)
|
||||
|
||||
// Try to list buckets to check if S3 service is available
|
||||
// Try to list buckets to check if service is available
|
||||
maxRetries := 30
|
||||
for i := 0; i < maxRetries; i++ {
|
||||
_, err := s3Client.ListBuckets(&s3.ListBucketsInput{})
|
||||
if err == nil {
|
||||
// S3 is up, now check if IAM is writable
|
||||
// We try to create a dummy user. If it fails with "AccessDenied: IAM write operations are disabled",
|
||||
// we know we are still in read-only mode (or the flag didn't take effect).
|
||||
// If it fails with other errors (e.g. invalid auth), that's fine for this connectivity check.
|
||||
// Only the explicit read-only error is a blocker for our specific test scenario.
|
||||
|
||||
// Note: We use a random name to avoid conflicts if it actually succeeds
|
||||
dummyUser := fmt.Sprintf("check-writable-%d", time.Now().UnixNano())
|
||||
_, iamErr := iamClient.CreateUser(&iam.CreateUserInput{
|
||||
UserName: aws.String(dummyUser),
|
||||
})
|
||||
|
||||
if iamErr != nil {
|
||||
if reqErr, ok := iamErr.(awserr.RequestFailure); ok {
|
||||
if reqErr.Code() == "AccessDenied" && strings.Contains(reqErr.Message(), "IAM write operations are disabled") {
|
||||
f.t.Logf("Waiting for IAM to become writable... (attempt %d/%d)", i+1, maxRetries)
|
||||
time.Sleep(1 * time.Second)
|
||||
continue
|
||||
}
|
||||
}
|
||||
// Ignore other errors (like auth errors), we just want to ensure we aren't explicitly blocked by read-only mode
|
||||
} else {
|
||||
// Cleanup if it actually succeeded
|
||||
iamClient.DeleteUser(&iam.DeleteUserInput{UserName: aws.String(dummyUser)})
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
time.Sleep(1 * time.Second)
|
||||
}
|
||||
|
||||
return fmt.Errorf("S3 service not available or not writable after %d retries", maxRetries)
|
||||
return fmt.Errorf("S3 service not available after %d retries", maxRetries)
|
||||
}
|
||||
|
||||
// PutTestObject puts a test object in the specified bucket
|
||||
|
||||
Reference in new issue
Block a user