mirror of
https://github.com/minio/minio.git
synced 2025-11-10 05:59:43 -05:00
add missing admin actions, enhance AccountUsageInfo (#9607)
This commit is contained in:
@@ -192,50 +192,6 @@ func (adm *AdminClient) DataUsageInfo(ctx context.Context) (DataUsageInfo, error
|
||||
return dataUsageInfo, nil
|
||||
}
|
||||
|
||||
// AccountAccess contains information about
|
||||
type AccountAccess struct {
|
||||
AccountName string `json:"accountName"`
|
||||
Read bool `json:"read"`
|
||||
Write bool `json:"write"`
|
||||
Custom bool `json:"custom"`
|
||||
}
|
||||
|
||||
// BucketAccountingUsage represents the accounting usage of a particular bucket
|
||||
type BucketAccountingUsage struct {
|
||||
Size uint64 `json:"size"`
|
||||
AccessList []AccountAccess `json:"accessList"`
|
||||
}
|
||||
|
||||
// AccountingUsageInfo returns the accounting usage info, currently it returns
|
||||
// the type of access of different accounts to the different buckets.
|
||||
func (adm *AdminClient) AccountingUsageInfo(ctx context.Context) (map[string]BucketAccountingUsage, error) {
|
||||
resp, err := adm.executeMethod(ctx, http.MethodGet, requestData{relPath: adminAPIPrefix + "/accountingusageinfo"})
|
||||
defer closeResponse(resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Check response http status code
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, httpRespToErrorResponse(resp)
|
||||
}
|
||||
|
||||
// Unmarshal the server's json response
|
||||
var accountingUsageInfo map[string]BucketAccountingUsage
|
||||
|
||||
respBytes, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(respBytes, &accountingUsageInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return accountingUsageInfo, nil
|
||||
}
|
||||
|
||||
// InfoMessage container to hold server admin related information.
|
||||
type InfoMessage struct {
|
||||
Mode string `json:"mode,omitempty"`
|
||||
|
||||
@@ -23,11 +23,63 @@ import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/minio/minio/pkg/auth"
|
||||
iampolicy "github.com/minio/minio/pkg/iam/policy"
|
||||
)
|
||||
|
||||
// AccountAccess contains information about
|
||||
type AccountAccess struct {
|
||||
Read bool `json:"read"`
|
||||
Write bool `json:"write"`
|
||||
}
|
||||
|
||||
// BucketUsageInfo represents bucket usage of a bucket, and its relevant
|
||||
// access type for an account
|
||||
type BucketUsageInfo struct {
|
||||
Name string `json:"name"`
|
||||
Size uint64 `json:"size"`
|
||||
Created time.Time `json:"created"`
|
||||
Access AccountAccess `json:"access"`
|
||||
}
|
||||
|
||||
// AccountUsageInfo represents the account usage info of an
|
||||
// account across buckets.
|
||||
type AccountUsageInfo struct {
|
||||
AccountName string
|
||||
Buckets []BucketUsageInfo
|
||||
}
|
||||
|
||||
// AccountUsageInfo returns the usage info for the authenticating account.
|
||||
func (adm *AdminClient) AccountUsageInfo(ctx context.Context) (AccountUsageInfo, error) {
|
||||
resp, err := adm.executeMethod(ctx, http.MethodGet, requestData{relPath: adminAPIPrefix + "/accountusageinfo"})
|
||||
defer closeResponse(resp)
|
||||
if err != nil {
|
||||
return AccountUsageInfo{}, err
|
||||
}
|
||||
|
||||
// Check response http status code
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return AccountUsageInfo{}, httpRespToErrorResponse(resp)
|
||||
}
|
||||
|
||||
// Unmarshal the server's json response
|
||||
var accountInfo AccountUsageInfo
|
||||
|
||||
respBytes, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return AccountUsageInfo{}, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(respBytes, &accountInfo)
|
||||
if err != nil {
|
||||
return AccountUsageInfo{}, err
|
||||
}
|
||||
|
||||
return accountInfo, nil
|
||||
}
|
||||
|
||||
// AccountStatus - account status.
|
||||
type AccountStatus string
|
||||
|
||||
|
||||
Reference in New Issue
Block a user