Hi (Kishan),

I am making a first attempt [0] to implement a Ceph RGW [1] Object Store Driver for CloudStack and I have a few questions about the code.

While implementing the Ceph RGW driver I have noticed that some methods are provided the bucket's name (as a String) as an argument, but I'd rather have a 'Bucket' object, for example:

public AccessControlList getBucketAcl(String bucketName, long storeId)
public boolean setBucketEncryption(String bucketName, long storeId)

In Ceph's case it would be better if these methods would get a Bucket object, like:


public AccessControlList getBucketAcl(Bucket bucket, long storeId)

The reason is that I need to access the Account the bucket belongs to. With Minio there is an 'Admin' client which allows you to do all these operations as an Admin, but with Ceph there isn't. With Ceph you are supposed to obtain the credentials (access + secret) via an Admin API [2] and then execute these commands as the user.

Now, we have the access + secret key from the account recorded under the account and we can access that from the Bucket object:

bucket.getAccessKey()
bucket.getSecretKey()

My proposal would be to change the signature of these methods, but before I do so, is there any particular reason the String was passed and not the whole Bucket object?

Thanks,

Wido

[0]: https://github.com/wido/cloudstack/commits/ceph-object-store
[1]: https://ceph.io/en/discover/technology/#object
[2]: https://www.javadoc.io/doc/io.github.twonote/radosgw-admin4j/latest/org/twonote/rgwadmin4j/RgwAdmin.html

Reply via email to