mirror of
https://github.com/minio/minio.git
synced 2024-12-24 22:25:54 -05:00
etcd: Handle create buckets with common prefixes properly (#7556)
common prefixes in bucket name if already created are disallowed when etcd is configured due to the prefix matching issue. Make sure that when we look for bucket we are only interested in exact bucket name not the prefix.
This commit is contained in:
parent
620e462413
commit
4c048963dc
@ -774,10 +774,6 @@ func (api objectAPIHandlers) DeleteBucketHandler(w http.ResponseWriter, r *http.
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
globalNotificationSys.RemoveNotification(bucket)
|
|
||||||
globalPolicySys.Remove(bucket)
|
|
||||||
globalNotificationSys.DeleteBucket(ctx, bucket)
|
|
||||||
|
|
||||||
if globalDNSConfig != nil {
|
if globalDNSConfig != nil {
|
||||||
if err := globalDNSConfig.Delete(bucket); err != nil {
|
if err := globalDNSConfig.Delete(bucket); err != nil {
|
||||||
// Deleting DNS entry failed, attempt to create the bucket again.
|
// Deleting DNS entry failed, attempt to create the bucket again.
|
||||||
@ -787,6 +783,10 @@ func (api objectAPIHandlers) DeleteBucketHandler(w http.ResponseWriter, r *http.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
globalNotificationSys.RemoveNotification(bucket)
|
||||||
|
globalPolicySys.Remove(bucket)
|
||||||
|
globalNotificationSys.DeleteBucket(ctx, bucket)
|
||||||
|
|
||||||
// Write success response.
|
// Write success response.
|
||||||
writeSuccessNoContent(w)
|
writeSuccessNoContent(w)
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,20 @@ func (c *coreDNS) Get(bucket string) ([]SrvRecord, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
srvRecords = append(srvRecords, records...)
|
// Make sure we have record.Key is empty
|
||||||
|
// this can only happen when record.Key
|
||||||
|
// has bucket entry with exact prefix
|
||||||
|
// match any record.Key which do not
|
||||||
|
// match the prefixes we skip them.
|
||||||
|
for _, record := range records {
|
||||||
|
if record.Key != "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
srvRecords = append(srvRecords, records...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(srvRecords) == 0 {
|
||||||
|
return nil, ErrNoEntriesFound
|
||||||
}
|
}
|
||||||
return srvRecords, nil
|
return srvRecords, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user