Documentation ¶
Index ¶
- Constants
- Variables
- func DecryptData(password string, data io.Reader) ([]byte, error)
- func EncryptData(password string, data []byte) ([]byte, error)
- func ErrInvalidArgument(message string) error
- type AccountStatus
- type AdminAPIVersionInfo
- type AdminClient
- func (adm *AdminClient) AddCannedPolicy(policyName, policy string) error
- func (adm *AdminClient) AddUser(accessKey, secretKey string) error
- func (adm *AdminClient) BackgroundHealStatus() (BgHealState, error)
- func (adm *AdminClient) DownloadProfilingData() (io.ReadCloser, error)
- func (adm *AdminClient) GetConfig() ([]byte, error)
- func (adm *AdminClient) GetConfigKeys(keys []string) ([]byte, error)
- func (adm *AdminClient) Heal(bucket, prefix string, healOpts HealOpts, clientToken string, ...) (healStart HealStartSuccess, healTaskStatus HealTaskStatus, err error)
- func (adm *AdminClient) ListCannedPolicies() (map[string][]byte, error)
- func (adm *AdminClient) ListUsers() (map[string]UserInfo, error)
- func (adm *AdminClient) RemoveCannedPolicy(policyName string) error
- func (adm *AdminClient) RemoveUser(accessKey string) error
- func (adm *AdminClient) ServerCPULoadInfo() ([]ServerCPULoadInfo, error)
- func (adm *AdminClient) ServerDrivesPerfInfo() ([]ServerDrivesPerfInfo, error)
- func (adm *AdminClient) ServerInfo() ([]ServerInfo, error)
- func (adm *AdminClient) ServerMemUsageInfo() ([]ServerMemUsageInfo, error)
- func (adm *AdminClient) ServiceSendAction(action ServiceActionValue) error
- func (adm *AdminClient) ServiceStatus() (ss ServiceStatus, err error)
- func (adm *AdminClient) SetAppInfo(appName string, appVersion string)
- func (adm *AdminClient) SetConfig(config io.Reader) (err error)
- func (adm *AdminClient) SetConfigKeys(params map[string]string) error
- func (adm *AdminClient) SetCustomTransport(customHTTPTransport http.RoundTripper)
- func (adm *AdminClient) SetUser(accessKey, secretKey string, status AccountStatus) error
- func (adm *AdminClient) SetUserPolicy(accessKey, policyName string) error
- func (adm *AdminClient) SetUserStatus(accessKey string, status AccountStatus) error
- func (adm *AdminClient) StartProfiling(profiler ProfilerType) ([]StartProfilingResult, error)
- func (adm *AdminClient) TopLocks() (LockEntries, error)
- func (adm AdminClient) Trace(allTrace, errTrace bool, doneCh <-chan struct{}) <-chan TraceInfo
- func (adm *AdminClient) TraceOff()
- func (adm *AdminClient) TraceOn(outputStream io.Writer)
- func (adm *AdminClient) VersionInfo() (verInfo AdminAPIVersionInfo, err error)
- type BackendType
- type BgHealState
- type DriveInfo
- type ErrorResponse
- type HealDriveInfo
- type HealItemType
- type HealOpts
- type HealResultItem
- type HealScanMode
- type HealStartSuccess
- type HealStopSuccess
- type HealTaskStatus
- type LockEntries
- type LockEntry
- type ProfilerType
- type ServerCPULoadInfo
- type ServerConnStats
- type ServerDrivesPerfInfo
- type ServerHTTPMethodStats
- type ServerHTTPStats
- type ServerInfo
- type ServerInfoData
- type ServerMemUsageInfo
- type ServerProperties
- type ServerVersion
- type ServiceAction
- type ServiceActionValue
- type ServiceStatus
- type StartProfilingResult
- type StorageInfo
- type TraceInfo
- type UserInfo
Constants ¶
const ( HealItemMetadata HealItemType = "metadata" HealItemBucket = "bucket" HealItemBucketMetadata = "bucket-metadata" HealItemObject = "object" )
HealItemType constants
const ( DriveStateOk string = "ok" DriveStateOffline = "offline" DriveStateCorrupt = "corrupt" DriveStateMissing = "missing" )
Drive state constants
const ( ProfilerCPU ProfilerType = "cpu" // represents CPU profiler type ProfilerMEM = "mem" // represents MEM profiler type ProfilerBlock = "block" // represents Block profiler type ProfilerMutex = "mutex" // represents Mutex profiler type ProfilerTrace = "trace" // represents Trace profiler type )
Different supported profiler types.
const DefaultRetryCap = time.Second * 30
DefaultRetryCap - Each retry attempt never waits no longer than this maximum time duration.
const DefaultRetryUnit = time.Second
DefaultRetryUnit - default unit multiplicative per retry. defaults to 1 second.
const MaxJitter = 1.0
MaxJitter will randomize over the full exponential backoff time
const NoJitter = 0.0
NoJitter disables the use of jitter for randomizing the exponential backoff time
Variables ¶
var MaxRetry = 10
MaxRetry is the maximum number of retries before stopping.
Functions ¶
func DecryptData ¶
DecryptData - decrypts server config data.
func EncryptData ¶
EncryptData - encrypts server config data.
func ErrInvalidArgument ¶
ErrInvalidArgument - Invalid argument response.
Types ¶
type AccountStatus ¶
type AccountStatus string
AccountStatus - account status.
const ( AccountEnabled AccountStatus = "enabled" AccountDisabled AccountStatus = "disabled" )
Account status per user.
type AdminAPIVersionInfo ¶
type AdminAPIVersionInfo struct {
Version string `json:"version"`
}
AdminAPIVersionInfo - contains admin API version information
type AdminClient ¶
type AdminClient struct {
// contains filtered or unexported fields
}
AdminClient implements Amazon S3 compatible methods.
func New ¶
func New(endpoint string, accessKeyID, secretAccessKey string, secure bool) (*AdminClient, error)
New - instantiate minio client Client, adds automatic verification of signature.
func (*AdminClient) AddCannedPolicy ¶
func (adm *AdminClient) AddCannedPolicy(policyName, policy string) error
AddCannedPolicy - adds a policy for a canned.
func (*AdminClient) AddUser ¶
func (adm *AdminClient) AddUser(accessKey, secretKey string) error
AddUser - adds a user.
func (*AdminClient) BackgroundHealStatus ¶
func (adm *AdminClient) BackgroundHealStatus() (BgHealState, error)
BackgroundHealStatus returns the background heal status of the current server or cluster.
func (*AdminClient) DownloadProfilingData ¶
func (adm *AdminClient) DownloadProfilingData() (io.ReadCloser, error)
DownloadProfilingData makes an admin call to download profiling data of a standalone server or of the whole cluster in case of a distributed setup.
func (*AdminClient) GetConfig ¶
func (adm *AdminClient) GetConfig() ([]byte, error)
GetConfig - returns the config.json of a minio setup, incoming data is encrypted.
func (*AdminClient) GetConfigKeys ¶
func (adm *AdminClient) GetConfigKeys(keys []string) ([]byte, error)
GetConfigKeys - returns partial json or json value from config.json of a minio setup.
func (*AdminClient) Heal ¶
func (adm *AdminClient) Heal(bucket, prefix string, healOpts HealOpts, clientToken string, forceStart, forceStop bool) ( healStart HealStartSuccess, healTaskStatus HealTaskStatus, err error)
Heal - API endpoint to start heal and to fetch status forceStart and forceStop are mutually exclusive, you can either set one of them to 'true'. If both are set 'forceStart' will be honored.
func (*AdminClient) ListCannedPolicies ¶
func (adm *AdminClient) ListCannedPolicies() (map[string][]byte, error)
ListCannedPolicies - list all configured canned policies.
func (*AdminClient) ListUsers ¶
func (adm *AdminClient) ListUsers() (map[string]UserInfo, error)
ListUsers - list all users.
func (*AdminClient) RemoveCannedPolicy ¶
func (adm *AdminClient) RemoveCannedPolicy(policyName string) error
RemoveCannedPolicy - remove a policy for a canned.
func (*AdminClient) RemoveUser ¶
func (adm *AdminClient) RemoveUser(accessKey string) error
RemoveUser - remove a user.
func (*AdminClient) ServerCPULoadInfo ¶
func (adm *AdminClient) ServerCPULoadInfo() ([]ServerCPULoadInfo, error)
ServerCPULoadInfo - Returns cpu utilization information
func (*AdminClient) ServerDrivesPerfInfo ¶
func (adm *AdminClient) ServerDrivesPerfInfo() ([]ServerDrivesPerfInfo, error)
ServerDrivesPerfInfo - Returns drive's read and write performance information
func (*AdminClient) ServerInfo ¶
func (adm *AdminClient) ServerInfo() ([]ServerInfo, error)
ServerInfo - Connect to a minio server and call Server Info Management API to fetch server's information represented by ServerInfo structure
func (*AdminClient) ServerMemUsageInfo ¶
func (adm *AdminClient) ServerMemUsageInfo() ([]ServerMemUsageInfo, error)
ServerMemUsageInfo - Returns mem utilization information
func (*AdminClient) ServiceSendAction ¶
func (adm *AdminClient) ServiceSendAction(action ServiceActionValue) error
ServiceSendAction - Call Service Restart/Stop API to restart/stop a MinIO server
func (*AdminClient) ServiceStatus ¶
func (adm *AdminClient) ServiceStatus() (ss ServiceStatus, err error)
ServiceStatus - Connect to a minio server and call Service Status Management API to fetch server's storage information represented by ServiceStatusMetadata structure
func (*AdminClient) SetAppInfo ¶
func (adm *AdminClient) SetAppInfo(appName string, appVersion string)
SetAppInfo - add application details to user agent.
func (*AdminClient) SetConfig ¶
func (adm *AdminClient) SetConfig(config io.Reader) (err error)
SetConfig - set config supplied as config.json for the setup.
func (*AdminClient) SetConfigKeys ¶
func (adm *AdminClient) SetConfigKeys(params map[string]string) error
SetConfigKeys - set config keys supplied as config.json for the setup.
func (*AdminClient) SetCustomTransport ¶
func (adm *AdminClient) SetCustomTransport(customHTTPTransport http.RoundTripper)
SetCustomTransport - set new custom transport.
func (*AdminClient) SetUser ¶
func (adm *AdminClient) SetUser(accessKey, secretKey string, status AccountStatus) error
SetUser - sets a user info.
func (*AdminClient) SetUserPolicy ¶
func (adm *AdminClient) SetUserPolicy(accessKey, policyName string) error
SetUserPolicy - adds a policy for a user.
func (*AdminClient) SetUserStatus ¶
func (adm *AdminClient) SetUserStatus(accessKey string, status AccountStatus) error
SetUserStatus - adds a status for a user.
func (*AdminClient) StartProfiling ¶
func (adm *AdminClient) StartProfiling(profiler ProfilerType) ([]StartProfilingResult, error)
StartProfiling makes an admin call to remotely start profiling on a standalone server or the whole cluster in case of a distributed setup.
func (*AdminClient) TopLocks ¶
func (adm *AdminClient) TopLocks() (LockEntries, error)
TopLocks - returns the oldest locks in a minio setup.
func (AdminClient) Trace ¶
func (adm AdminClient) Trace(allTrace, errTrace bool, doneCh <-chan struct{}) <-chan TraceInfo
Trace - listen on http trace notifications.
func (*AdminClient) TraceOn ¶
func (adm *AdminClient) TraceOn(outputStream io.Writer)
TraceOn - enable HTTP tracing.
func (*AdminClient) VersionInfo ¶
func (adm *AdminClient) VersionInfo() (verInfo AdminAPIVersionInfo, err error)
VersionInfo - Connect to minio server and call the version API to retrieve the server API version
type BackendType ¶
type BackendType int
BackendType - represents different backend types.
const ( Unknown BackendType = iota // Filesystem backend. FS // Multi disk Erasure (single, distributed) backend. Erasure )
Enum for different backend types.
type BgHealState ¶
BgHealState represents the status of the background heal
type DriveInfo ¶
type DriveInfo HealDriveInfo
DriveInfo - represents each drive info, describing status, uuid and endpoint.
type ErrorResponse ¶
type ErrorResponse struct { XMLName xml.Name `xml:"Error" json:"-"` Code string Message string BucketName string Key string RequestID string `xml:"RequestId"` HostID string `xml:"HostId"` // Region where the bucket is located. This header is returned // only in HEAD bucket and ListObjects response. Region string }
ErrorResponse - Is the typed error returned by all API operations.
func ToErrorResponse ¶
func ToErrorResponse(err error) ErrorResponse
ToErrorResponse - Returns parsed ErrorResponse struct from body and http headers.
For example:
import admin "github.com/minio/minio/pkg/madmin" ... ... ss, err := adm.ServiceStatus(...) if err != nil { resp := admin.ToErrorResponse(err) } ...
func (ErrorResponse) Error ¶
func (e ErrorResponse) Error() string
Error - Returns HTTP error string
type HealDriveInfo ¶
type HealDriveInfo struct { UUID string `json:"uuid"` Endpoint string `json:"endpoint"` State string `json:"state"` }
HealDriveInfo - struct for an individual drive info item.
type HealItemType ¶
type HealItemType string
HealItemType - specify the type of heal operation in a healing result
type HealOpts ¶
type HealOpts struct { Recursive bool `json:"recursive"` DryRun bool `json:"dryRun"` Remove bool `json:"remove"` ScanMode HealScanMode `json:"scanMode"` }
HealOpts - collection of options for a heal sequence
type HealResultItem ¶
type HealResultItem struct { ResultIndex int64 `json:"resultId"` Type HealItemType `json:"type"` Bucket string `json:"bucket"` Object string `json:"object"` Detail string `json:"detail"` ParityBlocks int `json:"parityBlocks,omitempty"` DataBlocks int `json:"dataBlocks,omitempty"` DiskCount int `json:"diskCount"` SetCount int `json:"setCount"` // below slices are from drive info. Before struct { Drives []HealDriveInfo `json:"drives"` } `json:"before"` After struct { Drives []HealDriveInfo `json:"drives"` } `json:"after"` ObjectSize int64 `json:"objectSize"` }
HealResultItem - struct for an individual heal result item
func (*HealResultItem) GetCorruptedCounts ¶
func (hri *HealResultItem) GetCorruptedCounts() (b, a int)
GetCorruptedCounts - returns the number of corrupted disks before and after heal
func (*HealResultItem) GetMissingCounts ¶
func (hri *HealResultItem) GetMissingCounts() (b, a int)
GetMissingCounts - returns the number of missing disks before and after heal
func (*HealResultItem) GetOfflineCounts ¶
func (hri *HealResultItem) GetOfflineCounts() (b, a int)
GetOfflineCounts - returns the number of offline disks before and after heal
func (*HealResultItem) GetOnlineCounts ¶
func (hri *HealResultItem) GetOnlineCounts() (b, a int)
GetOnlineCounts - returns the number of online disks before and after heal
type HealScanMode ¶
type HealScanMode int
HealScanMode represents the type of healing scan
const ( // HealNormalScan checks if parts are present and not outdated HealNormalScan HealScanMode = iota // HealDeepScan checks for parts bitrot checksums HealDeepScan )
type HealStartSuccess ¶
type HealStartSuccess struct { ClientToken string `json:"clientToken"` ClientAddress string `json:"clientAddress"` StartTime time.Time `json:"startTime"` }
HealStartSuccess - holds information about a successfully started heal operation
type HealStopSuccess ¶
type HealStopSuccess HealStartSuccess
HealStopSuccess - holds information about a successfully stopped heal operation.
type HealTaskStatus ¶
type HealTaskStatus struct { Summary string `json:"summary"` FailureDetail string `json:"detail"` StartTime time.Time `json:"startTime"` HealSettings HealOpts `json:"settings"` NumDisks int `json:"numDisks"` Items []HealResultItem `json:"items,omitempty"` }
HealTaskStatus - status struct for a heal task
type LockEntries ¶
type LockEntries []LockEntry
LockEntries - To sort the locks
func (LockEntries) Len ¶
func (l LockEntries) Len() int
func (LockEntries) Less ¶
func (l LockEntries) Less(i, j int) bool
func (LockEntries) Swap ¶
func (l LockEntries) Swap(i, j int)
type LockEntry ¶
type LockEntry struct { Timestamp time.Time `json:"time"` // Timestamp set at the time of initialization. Resource string `json:"resource"` // Resource contains info like bucket, object etc Type string `json:"type"` // Bool whether write or read lock. Source string `json:"source"` // Source which created the lock ServerList []string `json:"serverlist"` // RPC path of servers issuing the lock. Owner string `json:"owner"` // RPC path of client claiming lock. ID string `json:"id"` // UID to uniquely identify request of client. }
LockEntry holds information about client requesting the lock, servers holding the lock, source on the client machine, ID, type(read or write) and time stamp.
type ProfilerType ¶
type ProfilerType string
ProfilerType represents the profiler type passed to the profiler subsystem.
type ServerCPULoadInfo ¶
type ServerCPULoadInfo struct { Addr string `json:"addr"` Error string `json:"error,omitempty"` Load []cpu.Load `json:"load"` HistoricLoad []cpu.Load `json:"historicLoad"` }
ServerCPULoadInfo holds information about address and cpu load of a single server node
type ServerConnStats ¶
type ServerConnStats struct { TotalInputBytes uint64 `json:"transferred"` TotalOutputBytes uint64 `json:"received"` }
ServerConnStats holds network information
type ServerDrivesPerfInfo ¶
type ServerDrivesPerfInfo struct { Addr string `json:"addr"` Error string `json:"error,omitempty"` Perf []disk.Performance `json:"perf"` }
ServerDrivesPerfInfo holds informantion about address and write speed of all drives in a single server node
type ServerHTTPMethodStats ¶
type ServerHTTPMethodStats struct { Count uint64 `json:"count"` AvgDuration string `json:"avgDuration"` }
ServerHTTPMethodStats holds total number of HTTP operations from/to the server, including the average duration the call was spent.
type ServerHTTPStats ¶
type ServerHTTPStats struct { TotalHEADStats ServerHTTPMethodStats `json:"totalHEADs"` SuccessHEADStats ServerHTTPMethodStats `json:"successHEADs"` TotalGETStats ServerHTTPMethodStats `json:"totalGETs"` SuccessGETStats ServerHTTPMethodStats `json:"successGETs"` TotalPUTStats ServerHTTPMethodStats `json:"totalPUTs"` SuccessPUTStats ServerHTTPMethodStats `json:"successPUTs"` TotalPOSTStats ServerHTTPMethodStats `json:"totalPOSTs"` SuccessPOSTStats ServerHTTPMethodStats `json:"successPOSTs"` TotalDELETEStats ServerHTTPMethodStats `json:"totalDELETEs"` SuccessDELETEStats ServerHTTPMethodStats `json:"successDELETEs"` }
ServerHTTPStats holds all type of http operations performed to/from the server including their average execution time.
type ServerInfo ¶
type ServerInfo struct { Error string `json:"error"` Addr string `json:"addr"` Data *ServerInfoData `json:"data"` }
ServerInfo holds server information result of one node
type ServerInfoData ¶
type ServerInfoData struct { StorageInfo StorageInfo `json:"storage"` ConnStats ServerConnStats `json:"network"` HTTPStats ServerHTTPStats `json:"http"` Properties ServerProperties `json:"server"` }
ServerInfoData holds storage, connections and other information of a given server
type ServerMemUsageInfo ¶
type ServerMemUsageInfo struct { Addr string `json:"addr"` Error string `json:"error,omitempty"` Usage []mem.Usage `json:"usage"` HistoricUsage []mem.Usage `json:"historicUsage"` }
ServerMemUsageInfo holds information about address and memory utilization of a single server node
type ServerProperties ¶
type ServerProperties struct { Uptime time.Duration `json:"uptime"` Version string `json:"version"` CommitID string `json:"commitID"` DeploymentID string `json:"deploymentID"` Region string `json:"region"` SQSARN []string `json:"sqsARN"` }
ServerProperties holds some of the server's information such as uptime, version, region, ..
type ServerVersion ¶
ServerVersion - server version
type ServiceAction ¶
type ServiceAction struct {
Action ServiceActionValue `json:"action"`
}
ServiceAction - represents POST body for service action APIs
type ServiceActionValue ¶
type ServiceActionValue string
ServiceActionValue - type to restrict service-action values
const ( // ServiceActionValueRestart represents restart action ServiceActionValueRestart ServiceActionValue = "restart" // ServiceActionValueStop represents stop action ServiceActionValueStop = "stop" )
type ServiceStatus ¶
type ServiceStatus struct { ServerVersion ServerVersion `json:"serverVersion"` Uptime time.Duration `json:"uptime"` }
ServiceStatus - contains the response of service status API
type StartProfilingResult ¶
type StartProfilingResult struct { NodeName string `json:"nodeName"` Success bool `json:"success"` Error string `json:"error"` }
StartProfilingResult holds the result of starting profiler result in a given node.
type StorageInfo ¶
type StorageInfo struct { Used uint64 // Total used spaced per tenant. Available uint64 // Total available space. Total uint64 // Total disk space. // Backend type. Backend struct { // Represents various backend types, currently on FS and Erasure. Type BackendType // Following fields are only meaningful if BackendType is Erasure. OnlineDisks int // Online disks during server startup. OfflineDisks int // Offline disks during server startup. StandardSCData int // Data disks for currently configured Standard storage class. StandardSCParity int // Parity disks for currently configured Standard storage class. RRSCData int // Data disks for currently configured Reduced Redundancy storage class. RRSCParity int // Parity disks for currently configured Reduced Redundancy storage class. // List of all disk status, this is only meaningful if BackendType is Erasure. Sets [][]DriveInfo } }
StorageInfo - represents total capacity of underlying storage.
type UserInfo ¶
type UserInfo struct { SecretKey string `json:"secretKey,omitempty"` PolicyName string `json:"policyName,omitempty"` Status AccountStatus `json:"status"` }
UserInfo carries information about long term users.