Constructor and Description |
---|
RgwAdminImpl(java.lang.String accessKey,
java.lang.String secretKey,
java.lang.String endpoint)
Create a Radosgw administrator implementation
|
Modifier and Type | Method and Description |
---|---|
java.util.List<Cap> |
addUserCapability(java.lang.String userId,
java.util.List<Cap> userCaps)
Add an administrative capability to a specified user.
|
java.util.Optional<java.lang.String> |
checkBucketIndex(java.lang.String bucketName,
boolean isCheckObjects,
boolean isFix)
Check the index of an existing bucket.
|
java.util.List<S3Credential> |
createS3Credential(java.lang.String userId)
Create a new S3 credential pair for the specified user.
|
java.util.List<S3Credential> |
createS3Credential(java.lang.String userId,
java.lang.String accessKey,
java.lang.String secretKey)
Create a new S3 credential for the specified user.
|
java.util.List<S3Credential> |
createS3CredentialForSubUser(java.lang.String userId,
java.lang.String subUserId)
Create a new S3 credential for the specified sub user.
|
java.util.List<S3Credential> |
createS3CredentialForSubUser(java.lang.String userId,
java.lang.String subUserId,
java.lang.String accessKey,
java.lang.String secretKey)
Create a new S3 credential for the specified subuser.
|
java.util.List<SubUser> |
createSubUser(java.lang.String userId,
java.lang.String subUserId,
java.util.Map<java.lang.String,java.lang.String> parameters)
Create a new subuser
|
SubUser |
createSubUser(java.lang.String userId,
java.lang.String subUserId,
SubUser.Permission permission,
CredentialType credentialType)
Create a new sub-user
|
SwiftCredential |
createSwiftCredentialForSubUser(java.lang.String userId,
java.lang.String subUserId)
Create a new swift credential for the specified sub user.
|
SwiftCredential |
createSwiftCredentialForSubUser(java.lang.String userId,
java.lang.String subUserId,
java.lang.String password)
Create a new swift credential for the specified sub user.
|
User |
createUser(java.lang.String userId)
Create a new user.
|
User |
createUser(java.lang.String userId,
java.util.Map<java.lang.String,java.lang.String> options)
Create a new user.
|
java.util.Optional<BucketInfo> |
getBucketInfo(java.lang.String bucketName)
Get information about a bucket.
|
java.util.Optional<java.lang.String> |
getBucketPolicy(java.lang.String bucketName)
Read the policy of a bucket.
|
java.util.Optional<Quota> |
getBucketQuota(java.lang.String userId)
Get bucket quota.
|
java.util.Optional<java.lang.String> |
getObjectPolicy(java.lang.String bucketName,
java.lang.String objectKey)
Read the policy of an object.
|
java.util.Optional<Quota> |
getQuota(java.lang.String userId,
java.lang.String quotaType) |
java.util.Optional<SubUser> |
getSubUserInfo(java.lang.String userId,
java.lang.String subUserId)
Get sub-user information.
|
java.util.Optional<UsageInfo> |
getUsage()
Request bandwidth usage information.
|
java.util.Optional<UsageInfo> |
getUsage(java.util.Map<java.lang.String,java.lang.String> parameters)
Request bandwidth usage information.
|
java.util.Optional<User> |
getUserInfo(java.lang.String userId)
Get user information.
|
java.util.Optional<Quota> |
getUserQuota(java.lang.String userId)
Get user quota.
|
java.util.Optional<UsageInfo> |
getUserUsage(java.lang.String userId)
Request bandwidth usage information for specified user.
|
java.util.Optional<UsageInfo> |
getUserUsage(java.lang.String userId,
java.util.Map<java.lang.String,java.lang.String> parameters)
Request bandwidth usage information for specified user.
|
void |
linkBucket(java.lang.String bucketName,
java.lang.String bucketId,
java.lang.String userId)
Link a bucket to a specified user, unlinking the bucket from any previous user.
|
java.util.List<java.lang.String> |
listBucket()
List all buckets.
|
java.util.List<java.lang.String> |
listBucket(java.lang.String userId)
List buckets belong to a user.
|
java.util.List<BucketInfo> |
listBucketInfo()
Get information about buckets.
|
java.util.List<BucketInfo> |
listBucketInfo(java.lang.String userId)
Get information about buckets under a given user.
|
java.util.List<java.lang.String> |
listSubUser(java.lang.String userId)
Get the subuser list under a user
|
java.util.List<SubUser> |
listSubUserInfo(java.lang.String userId)
Retrieve the sub-user information under a user
|
java.util.List<java.lang.String> |
listUser()
Get the user list
|
java.util.List<User> |
listUserInfo()
Get information about users exist in the system
|
java.util.List<SubUser> |
modifySubUser(java.lang.String userId,
java.lang.String subUserId,
java.util.Map<java.lang.String,java.lang.String> parameters) |
User |
modifyUser(java.lang.String userId,
java.util.Map<java.lang.String,java.lang.String> parameters)
Modify a user.
|
void |
removeBucket(java.lang.String bucketName)
Delete an existing bucket.
|
void |
removeObject(java.lang.String bucketName,
java.lang.String objectKey)
Remove an existing object.
|
void |
removeS3Credential(java.lang.String userId,
java.lang.String accessKey)
Remove an existing S3 credential from the specified user.
|
void |
removeS3CredentialFromSubUser(java.lang.String userId,
java.lang.String subUserId,
java.lang.String accessKey)
Remove an existing S3 credential from the specified sub user.
|
void |
removeSubUser(java.lang.String userId,
java.lang.String subUserId)
Remove an existing subuser.
|
void |
removeSwiftCredentialFromSubUser(java.lang.String userId,
java.lang.String subUserId)
Remove the credential from the specified sub user.
|
void |
removeUser(java.lang.String userId)
Remove an existing user.
|
java.util.List<Cap> |
removeUserCapability(java.lang.String userId,
java.util.List<Cap> userCaps)
Remove an administrative capability from a specified user.
|
void |
setBucketQuota(java.lang.String userId,
long maxObjects,
long maxSizeKB)
Set or modify quotas on all buckets owned by a user.
|
void |
setIndividualBucketQuota(java.lang.String userId,
java.lang.String bucket,
long maxObjects,
long maxSizeKB)
Set or modify a quota on a given bucket.
|
java.util.List<SubUser> |
setSubUserPermission(java.lang.String userId,
java.lang.String subUserId,
SubUser.Permission permission)
Modify an existing subuser permission.
|
void |
setUserQuota(java.lang.String userId,
long maxObjects,
long maxSizeKB)
Set or modify a quota on a user.
|
void |
setUserQuota(java.lang.String userId,
java.lang.String quotaType,
long maxObjects,
long maxSizeKB) |
void |
suspendUser(java.lang.String userId,
boolean suspend)
Suspend or resume a user
|
void |
trimUsage(java.util.Map<java.lang.String,java.lang.String> parameters)
Remove usage information.
|
void |
trimUserUsage(java.lang.String userId,
java.util.Map<java.lang.String,java.lang.String> parameters)
Remove usage information for specified user.
|
void |
unlinkBucket(java.lang.String bucketName,
java.lang.String userId)
Unlink a bucket from a specified user.
|
public RgwAdminImpl(java.lang.String accessKey, java.lang.String secretKey, java.lang.String endpoint)
accessKey
- Access key of the admin who have proper administrative capabilities.secretKey
- Secret key of the admin who have proper administrative capabilities.endpoint
- Radosgw admin API endpoint, e.g., http://127.0.0.1:80/adminpublic void trimUserUsage(java.lang.String userId, java.util.Map<java.lang.String,java.lang.String> parameters)
RgwAdmin
There are few parameters available to filter the query result as you wish, includes:
trimUserUsage
in interface RgwAdmin
userId
- The user for which the information is requested.parameters
- optional parameters to filter the usage to delete.public void trimUsage(java.util.Map<java.lang.String,java.lang.String> parameters)
RgwAdmin
There are few parameters available to filter the query result as you wish, includes:
public java.util.Optional<UsageInfo> getUserUsage(java.lang.String userId)
RgwAdmin
getUserUsage
in interface RgwAdmin
public java.util.Optional<UsageInfo> getUserUsage(java.lang.String userId, java.util.Map<java.lang.String,java.lang.String> parameters)
RgwAdmin
getUserUsage
in interface RgwAdmin
public java.util.Optional<UsageInfo> getUsage()
RgwAdmin
public java.util.Optional<UsageInfo> getUsage(java.util.Map<java.lang.String,java.lang.String> parameters)
RgwAdmin
Note that radosgw does not enable usage collection in default. To get usage, you need the following option:
rgw enable usage log = true
There are few parameters available to filter the query result as you wish, includes:
public java.util.List<Cap> addUserCapability(java.lang.String userId, java.util.List<Cap> userCaps)
RgwAdmin
Note that you can get the capability by RgwAdmin.getUserInfo(String)
addUserCapability
in interface RgwAdmin
userId
- The user ID to add an administrative capability to.userCaps
- The administrative capability to add to the user.public java.util.List<Cap> removeUserCapability(java.lang.String userId, java.util.List<Cap> userCaps)
RgwAdmin
Note that you can get the capability by RgwAdmin.getUserInfo(String)
removeUserCapability
in interface RgwAdmin
userId
- The user ID to remove an administrative capability from.userCaps
- The administrative capabilities to remove from the user.public java.util.List<SubUser> createSubUser(java.lang.String userId, java.lang.String subUserId, java.util.Map<java.lang.String,java.lang.String> parameters)
RgwAdmin
Available parameters include:
Tips:
RgwAdmin.getUserInfo(String)
after creation.
createSubUser
in interface RgwAdmin
userId
- The user ID under which a subuser is to be created.subUserId
- Specify the subuser ID to be created.parameters
- The subuser parameters.public SubUser createSubUser(java.lang.String userId, java.lang.String subUserId, SubUser.Permission permission, CredentialType credentialType)
RgwAdmin
This method will create the sub-user with the automatically generated credential.
Tips:
RgwAdmin.getUserInfo(String)
after creation.
createSubUser
in interface RgwAdmin
userId
- The user ID under which a subuser is to be created.subUserId
- Specify the subuser ID to be created. Should be in the relative form, i.e.,
does not contain the user id.permission
- The subuser permission.credentialType
- Specify credential type to be generated.public java.util.List<SubUser> modifySubUser(java.lang.String userId, java.lang.String subUserId, java.util.Map<java.lang.String,java.lang.String> parameters)
public java.util.List<SubUser> setSubUserPermission(java.lang.String userId, java.lang.String subUserId, SubUser.Permission permission)
RgwAdmin
Note that you can get the permission by RgwAdmin.getSubUserInfo(String, String)
setSubUserPermission
in interface RgwAdmin
userId
- The user ID under which a subuser is to be created.subUserId
- Specify the subuser ID to be created.permission
- Specify the subuser permission.public java.util.List<SubUser> listSubUserInfo(java.lang.String userId)
RgwAdmin
listSubUserInfo
in interface RgwAdmin
userId
- The user ID under which subusers we interested topublic java.util.Optional<SubUser> getSubUserInfo(java.lang.String userId, java.lang.String subUserId)
RgwAdmin
getSubUserInfo
in interface RgwAdmin
userId
- The user ID.subUserId
- The subuser IDpublic void removeSubUser(java.lang.String userId, java.lang.String subUserId)
RgwAdmin
Note that the operation also removes credentials belonging to the subuser.
removeSubUser
in interface RgwAdmin
userId
- The user ID under which the subuser is to be removed.subUserId
- The subuser ID to be removed.public java.util.List<S3Credential> createS3Credential(java.lang.String userId, java.lang.String accessKey, java.lang.String secretKey)
RgwAdmin
createS3Credential
in interface RgwAdmin
userId
- the specified user.accessKey
- S3 access keysecretKey
- S3 secret keypublic java.util.List<S3Credential> createS3Credential(java.lang.String userId)
RgwAdmin
The credential will be automatically generated for the user. If you want to specify the
credential, please use RgwAdmin.createS3Credential(String, String, String)
createS3Credential
in interface RgwAdmin
userId
- the specified user.public void removeS3Credential(java.lang.String userId, java.lang.String accessKey)
RgwAdmin
removeS3Credential
in interface RgwAdmin
userId
- The specified user.accessKey
- The access key which is belonging to the credential to remove.public java.util.List<S3Credential> createS3CredentialForSubUser(java.lang.String userId, java.lang.String subUserId, java.lang.String accessKey, java.lang.String secretKey)
RgwAdmin
createS3CredentialForSubUser
in interface RgwAdmin
userId
- The specified user.subUserId
- the specified sub user. Should not contain user id, i.e., bar instead of
foo:bar.accessKey
- S3 access key.secretKey
- S3 secret key.public java.util.List<S3Credential> createS3CredentialForSubUser(java.lang.String userId, java.lang.String subUserId)
RgwAdmin
The credential will be automatically generated for the user. If you want to specify the
credential, please use RgwAdmin.createS3CredentialForSubUser(String, String, String, String)
createS3CredentialForSubUser
in interface RgwAdmin
userId
- the specified user.subUserId
- the specified sub user. Should not contain user id, i.e., bar instead of
foo:bar.public void removeS3CredentialFromSubUser(java.lang.String userId, java.lang.String subUserId, java.lang.String accessKey)
RgwAdmin
removeS3CredentialFromSubUser
in interface RgwAdmin
userId
- the specified user.subUserId
- the specified sub user. Should not contain user id, i.e., bar instead of
foo:bar.accessKey
- The access key which is belonging to the credential to remove.public SwiftCredential createSwiftCredentialForSubUser(java.lang.String userId, java.lang.String subUserId, java.lang.String password)
RgwAdmin
Tip: a subuser can have only one swift credential.
createSwiftCredentialForSubUser
in interface RgwAdmin
userId
- The specified user.subUserId
- the specified sub user. Should not contain user id, i.e., bar instead of
foo:bar.password
- The specified swift password.public SwiftCredential createSwiftCredentialForSubUser(java.lang.String userId, java.lang.String subUserId)
RgwAdmin
The credential will be automatically generated for the user. If you want to specify it,
please use RgwAdmin.createSwiftCredentialForSubUser(String, String, String)
Tip: a subuser can have only one swift credential.
createSwiftCredentialForSubUser
in interface RgwAdmin
userId
- The specified user.subUserId
- The specified sub user. Should not contain user id, i.e., bar instead of
foo:bar.public void removeSwiftCredentialFromSubUser(java.lang.String userId, java.lang.String subUserId)
RgwAdmin
removeSwiftCredentialFromSubUser
in interface RgwAdmin
userId
- the specified user.subUserId
- the specified sub user. Should not contain user id, i.e., bar instead of
foo:bar.public void removeBucket(java.lang.String bucketName)
RgwAdmin
Note that the operation asks radosgw to purge objects in the bucket before deletion.
removeBucket
in interface RgwAdmin
bucketName
- The bucket to remove.public void linkBucket(java.lang.String bucketName, java.lang.String bucketId, java.lang.String userId)
RgwAdmin
linkBucket
in interface RgwAdmin
bucketName
- The bucket name to unlink.bucketId
- The bucket id to unlink. Example: dev.6607669.420. (You can get this by RgwAdmin.getBucketInfo(String)
)userId
- The user ID to link the bucket to.public void unlinkBucket(java.lang.String bucketName, java.lang.String userId)
RgwAdmin
unlinkBucket
in interface RgwAdmin
bucketName
- The bucket to unlink.userId
- The user ID to unlink the bucket from.public java.util.Optional<java.lang.String> checkBucketIndex(java.lang.String bucketName, boolean isCheckObjects, boolean isFix)
RgwAdmin
NOTE: to check multipart object accounting with check-objects, fix must be set to True.
Example response:
[ ]{ }{ "existing_header":{ "usage":{ } }, "calculated_header":{ "usage":{ } } }
checkBucketIndex
in interface RgwAdmin
bucketName
- The bucket to return info on.isCheckObjects
- Check multipart object accounting. Example: True [False]isFix
- Also fix the bucket index when checking. Example: False [False]public java.util.List<java.lang.String> listBucket()
RgwAdmin
listBucket
in interface RgwAdmin
public java.util.List<java.lang.String> listBucket(java.lang.String userId)
RgwAdmin
listBucket
in interface RgwAdmin
userId
- The bucket owner we interested.public java.util.List<BucketInfo> listBucketInfo()
RgwAdmin
listBucketInfo
in interface RgwAdmin
public java.util.List<BucketInfo> listBucketInfo(java.lang.String userId)
RgwAdmin
listBucketInfo
in interface RgwAdmin
userId
- The user to retrieve bucket information for.public java.util.Optional<BucketInfo> getBucketInfo(java.lang.String bucketName)
RgwAdmin
getBucketInfo
in interface RgwAdmin
bucketName
- The bucket to return info on.public User createUser(java.lang.String userId)
RgwAdmin
An S3 key pair will be created automatically and returned in the response. If you want to
customize user properties or create a Swift user, use RgwAdmin.createUser(String, Map)
instead.
createUser
in interface RgwAdmin
userId
- The user ID to be created.public User createUser(java.lang.String userId, java.util.Map<java.lang.String,java.lang.String> options)
RgwAdmin
You can customize user properties or create a Swift user by set the parameters. Available parameters includes:
If only one of access-key or secret-key is provided, the omitted key will be automatically generated. By default, a generated key is added to the keyring without replacing an existing key pair. If access-key is specified and refers to an existing key owned by the user then it will be modified.
createUser
in interface RgwAdmin
userId
- The user ID to be created.options
- The user properties.public java.util.Optional<User> getUserInfo(java.lang.String userId)
RgwAdmin
getUserInfo
in interface RgwAdmin
userId
- The user for which the information is requested.public java.util.List<java.lang.String> listUser()
RgwAdmin
public java.util.List<java.lang.String> listSubUser(java.lang.String userId)
RgwAdmin
listSubUser
in interface RgwAdmin
userId
- The user ID under which subusers we interested to.public java.util.List<User> listUserInfo()
RgwAdmin
listUserInfo
in interface RgwAdmin
public User modifyUser(java.lang.String userId, java.util.Map<java.lang.String,java.lang.String> parameters)
RgwAdmin
Available parameters include:
modifyUser
in interface RgwAdmin
userId
- The user ID to be modified.parameters
- Optional parameters.public void suspendUser(java.lang.String userId, boolean suspend)
RgwAdmin
suspendUser
in interface RgwAdmin
userId
- The user ID to be suspended or resumed.suspend
- Set true to suspend the user and vice versa.public void removeUser(java.lang.String userId)
RgwAdmin
Note that the buckets and objects belonging to the user will also be removed.
removeUser
in interface RgwAdmin
userId
- The user ID to be removed.public java.util.Optional<Quota> getUserQuota(java.lang.String userId)
RgwAdmin
getUserQuota
in interface RgwAdmin
userId
- The user ID to get quota.public java.util.Optional<Quota> getBucketQuota(java.lang.String userId)
RgwAdmin
getBucketQuota
in interface RgwAdmin
userId
- The bucket owner ID to get quota.public java.util.Optional<Quota> getQuota(java.lang.String userId, java.lang.String quotaType)
public void setIndividualBucketQuota(java.lang.String userId, java.lang.String bucket, long maxObjects, long maxSizeKB)
RgwAdmin
RgwAdmin.getBucketInfo(String)
Tips: To use this feature, you need Ceph v13.0.2 (mimic) or above.
setIndividualBucketQuota
in interface RgwAdmin
userId
- The bucket owner to set quota.bucket
- The bucket to set quota.maxObjects
- The max-objects setting allows you to specify the maximum number of objects.
A negative value disables this setting.maxSizeKB
- The max-size option allows you to specify a quota for the maximum number of
bytes. A negative value disables this setting.public void setBucketQuota(java.lang.String userId, long maxObjects, long maxSizeKB)
RgwAdmin
setBucketQuota
in interface RgwAdmin
userId
- The bucket owner to set quota.maxObjects
- The max-objects setting allows you to specify the maximum number of objects.
A negative value disables this setting.maxSizeKB
- The max-size option allows you to specify a quota for the maximum number of
bytes. A negative value disables this setting.public void setUserQuota(java.lang.String userId, long maxObjects, long maxSizeKB)
RgwAdmin
setUserQuota
in interface RgwAdmin
userId
- The user to set quota.maxObjects
- The max-objects setting allows you to specify the maximum number of objects.
A negative value disables this setting.maxSizeKB
- The max-size option allows you to specify a quota for the maximum number of
bytes. A negative value disables this setting.public void setUserQuota(java.lang.String userId, java.lang.String quotaType, long maxObjects, long maxSizeKB)
public void removeObject(java.lang.String bucketName, java.lang.String objectKey)
RgwAdmin
NOTE: Does not require the owner to be non-suspended.
removeObject
in interface RgwAdmin
bucketName
- The bucket containing the object to be removed.objectKey
- The object to remove.public java.util.Optional<java.lang.String> getObjectPolicy(java.lang.String bucketName, java.lang.String objectKey)
RgwAdmin
Note that the term "policy" here does not stand for "S3 bucket policy". Instead, it represents S3 Access Control Policy (ACP).
We return JSON string instead of the concrete model here due to the server returns the internal data structure which is not well defined. For example:
{ "acl":{ "acl_user_map":[ { "user":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "acl":15 } ], "acl_group_map":[ ], "grant_map":[ { "id":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "grant":{ "type":{ "type":0 }, "id":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "email":"", "permission":{ "flags":15 }, "name":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "group":0, "url_spec":"" } } ] }, "owner":{ "id":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "display_name":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19" } }
getObjectPolicy
in interface RgwAdmin
bucketName
- The bucket to which the object belong to.objectKey
- The object to read the policy from.public java.util.Optional<java.lang.String> getBucketPolicy(java.lang.String bucketName)
RgwAdmin
Note that the term "policy" here does not stand for "S3 bucket policy". Instead, it represents S3 Access Control Policy (ACP).
We return JSON string instead of the concrete model here due to the server returns the internal data structure which is not well defined. For example:
{ "acl":{ "acl_user_map":[ { "user":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "acl":15 } ], "acl_group_map":[ ], "grant_map":[ { "id":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "grant":{ "type":{ "type":0 }, "id":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "email":"", "permission":{ "flags":15 }, "name":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "group":0, "url_spec":"" } } ] }, "owner":{ "id":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19", "display_name":"rgwAdmin4jTest-6d6a2645-0219-4e49-8493-0bdc8cb00e19" } }
getBucketPolicy
in interface RgwAdmin
bucketName
- The bucket to read the policy from.Copyright © 2019. All rights reserved.