With ticket 5073 getting close to complete, we're getting the APIs mostly nailed down. Most of them come down to selection a syntax separator character. Unfortunately, there are several such characters. Plus, it is not always feasible to get by with a character (in S3 at least). So far we have the following changes: #1 Back-end and radosgw-admin use '/' or "tenant/bucket". This is what is literally stored in RADOS, because it's used to name bucket objects in the .rgw pool. #2 Buckets in Swift URLs use '\' (backslash), because there does not seem to be a way to use '/'. Example: http://host.corp.com:8080/swift/v1/testen\testcont At first, I tried URL encoding (%2f), but that didn't work: we permit '%' in Swift container names, so there's a show-stopper compatibility problem. So, backslash. The backslash poses a similar problem, too, but hopefuly nobody created a container with backslash in name. Note that strictly speaking, we don't really need this, since Swift URLs could easily include tenant names where reference Swift places account names. It's just easier to implement without disturbing authenthication code. #3 S3 host addressing of buckets This is similar to Swift and is slated to use backslash. Note that S3 prohibits it, so we're reasonably safe with this choice. #4 S3 URL addressing of buckets Here we must use a period. Example: bucket.tenant.host.corp.com #5 Listings and redirects. Listings present a difficulty in S3: we don't know if the name will be used in host-based or URL-based addressing of a bucket. So, we put the tenant of a bucket into a separate XML attribute. Since Swift listings are always in a specific account, and thus tenant, they are unchanged. In addition to listings, bucket names leak into certain HTTP headers, where we add "Tenant:" headers as appropriate. Finally, multi-tenancy also puts user_uid namespaces under tenants as well as bucket namespaces. That one is easy though. A '$' separator is used consistently for it (tenant$user). -- Pete -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html