madmin

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2020 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HealItemMetadata       HealItemType = "metadata"
	HealItemBucket                      = "bucket"
	HealItemBucketMetadata              = "bucket-metadata"
	HealItemObject                      = "object"
)

HealItemType constants

View Source
const (
	DriveStateOk      string = "ok"
	DriveStateOffline        = "offline"
	DriveStateCorrupt        = "corrupt"
	DriveStateMissing        = "missing"
)

Drive state constants

View Source
const (
	// DefaultNetPerfSize - default payload size used for network performance.
	DefaultNetPerfSize = 100 * humanize.MiByte
	// DefaultDrivePerfSize - default file size for testing drive performance
	DefaultDrivePerfSize = 100 * humanize.MiByte
)
View Source
const (
	// FsType - Backend is FS Type
	FsType = backendType("FS")
	// ErasureType - Backend is Erasure type
	ErasureType = backendType("Erasure")
)
View Source
const (
	EnableKey  = "enable"
	CommentKey = "comment"

	// Enable values
	EnableOn  = "on"
	EnableOff = "off"
)

Standard config keys and values.

View Source
const (
	SubSystemSeparator = `:`
	KvSeparator        = `=`
	KvComment          = `#`
	KvSpaceSeparator   = ` `
	KvNewline          = "\n"
	KvDoubleQuote      = `"`
	KvSingleQuote      = `'`

	Default = `_`
)

Constant separators

View Source
const (
	// AdminAPIVersion - admin api version used in the request.
	AdminAPIVersion = "v2"
)
View Source
const DefaultRetryCap = time.Second * 30

DefaultRetryCap - Each retry attempt never waits no longer than this maximum time duration.

View Source
const DefaultRetryUnit = time.Second

DefaultRetryUnit - default unit multiplicative per retry. defaults to 1 second.

View Source
const MaxJitter = 1.0

MaxJitter will randomize over the full exponential backoff time

View Source
const NoJitter = 0.0

NoJitter disables the use of jitter for randomizing the exponential backoff time

Variables

View Source
var ErrMaliciousData = sio.NotAuthentic

ErrMaliciousData indicates that the stream cannot be decrypted by provided credentials.

View Source
var MaxRetry = 10

MaxRetry is the maximum number of retries before stopping.

View Source
var ObjectsHistogramIntervals = []objectHistogramInterval{
	{"LESS_THAN_1024_B", -1, 1024 - 1},
	{"BETWEEN_1024_B_AND_1_MB", 1024, 1024*1024 - 1},
	{"BETWEEN_1_MB_AND_10_MB", 1024 * 1024, 1024*1024*10 - 1},
	{"BETWEEN_10_MB_AND_64_MB", 1024 * 1024 * 10, 1024*1024*64 - 1},
	{"BETWEEN_64_MB_AND_128_MB", 1024 * 1024 * 64, 1024*1024*128 - 1},
	{"BETWEEN_128_MB_AND_512_MB", 1024 * 1024 * 128, 1024*1024*512 - 1},
	{"GREATER_THAN_512_MB", 1024 * 1024 * 512, -1},
}

ObjectsHistogramIntervals contains the list of intervals of an histogram analysis of objects sizes.

Functions

func DecryptData

func DecryptData(password string, data io.Reader) ([]byte, error)

DecryptData decrypts the data with the key derived from the salt (part of data) and the password using the PBKDF used in EncryptData. DecryptData returns the decrypted plaintext on success.

The data must be a valid ciphertext produced by EncryptData. Otherwise, the decryption will fail.

func EncryptData

func EncryptData(password string, data []byte) ([]byte, error)

EncryptData encrypts the data with an unique key derived from password using the Argon2id PBKDF.

The returned ciphertext data consists of:

salt | AEAD ID | nonce | encrypted data
 32      1         8      ~ len(data)

func ErrInvalidArgument

func ErrInvalidArgument(message string) error

ErrInvalidArgument - Invalid argument response.

func HasSpace

func HasSpace(s string) bool

HasSpace - returns if given string has space.

func SanitizeValue

func SanitizeValue(v string) string

SanitizeValue - this function is needed, to trim off single or double quotes, creeping into the values.

Types

type AccountAccess

type AccountAccess struct {
	AccountName string `json:"accountName"`
	Read        bool   `json:"read"`
	Write       bool   `json:"write"`
	Custom      bool   `json:"custom"`
}

AccountAccess contains information about

type AccountStatus

type AccountStatus string

AccountStatus - account status.

const (
	AccountEnabled  AccountStatus = "enabled"
	AccountDisabled AccountStatus = "disabled"
)

Account status per user.

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) AccountingUsageInfo

func (adm *AdminClient) AccountingUsageInfo() (map[string]BucketAccountingUsage, error)

AccountingUsageInfo returns the accounting usage info, currently it returns the type of access of different accounts to the different buckets.

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) ClearConfigHistoryKV

func (adm *AdminClient) ClearConfigHistoryKV(restoreID string) (err error)

ClearConfigHistoryKV - clears the config entry represented by restoreID. optionally allows setting `all` as a special keyword to automatically erase all config set history entires.

func (*AdminClient) DataUsageInfo

func (adm *AdminClient) DataUsageInfo() (DataUsageInfo, error)

DataUsageInfo - returns data usage of the current object API

func (*AdminClient) DelConfigKV

func (adm *AdminClient) DelConfigKV(k string) (err error)

DelConfigKV - delete key from server config.

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) GetConfigKV

func (adm *AdminClient) GetConfigKV(key string) (Targets, error)

GetConfigKV - returns the key, value of the requested key, incoming data is encrypted.

func (*AdminClient) GetGroupDescription

func (adm *AdminClient) GetGroupDescription(group string) (*GroupDesc, error)

GetGroupDescription - fetches information on a group.

func (*AdminClient) GetKeyStatus

func (adm *AdminClient) GetKeyStatus(keyID string) (*KMSKeyStatus, error)

GetKeyStatus requests status information about the key referenced by keyID from the KMS connected to a MinIO by performing a Admin-API request. It basically hits the `/minio/admin/v2/kms/key/status` API endpoint.

func (AdminClient) GetLogs

func (adm AdminClient) GetLogs(node string, lineCnt int, logKind string, doneCh <-chan struct{}) <-chan LogInfo

GetLogs - listen on console log messages.

func (*AdminClient) GetUserInfo

func (adm *AdminClient) GetUserInfo(name string) (u UserInfo, err error)

GetUserInfo - get info on a user

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) HelpConfigKV

func (adm *AdminClient) HelpConfigKV(subSys, key string, envOnly bool) (Help, error)

HelpConfigKV - return help for a given sub-system.

func (*AdminClient) InfoCannedPolicy

func (adm *AdminClient) InfoCannedPolicy(policyName string) ([]byte, error)

InfoCannedPolicy - expand canned policy into JSON structure.

func (*AdminClient) ListCannedPolicies

func (adm *AdminClient) ListCannedPolicies() (map[string][]byte, error)

ListCannedPolicies - list all configured canned policies.

func (*AdminClient) ListConfigHistoryKV

func (adm *AdminClient) ListConfigHistoryKV(count int) ([]ConfigHistoryEntry, error)

ListConfigHistoryKV - lists a slice of ConfigHistoryEntries sorted by createTime.

func (*AdminClient) ListGroups

func (adm *AdminClient) ListGroups() ([]string, error)

ListGroups - lists all groups names present on the server.

func (*AdminClient) ListUsers

func (adm *AdminClient) ListUsers() (map[string]UserInfo, error)

ListUsers - list all users.

func (*AdminClient) NetPerfInfo

func (adm *AdminClient) NetPerfInfo(size int) (map[string][]NetPerfInfo, error)

NetPerfInfo - Returns network performance information of all cluster nodes.

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) RestoreConfigHistoryKV

func (adm *AdminClient) RestoreConfigHistoryKV(restoreID string) (err error)

RestoreConfigHistoryKV - Restore a previous config set history. Input is a unique id which represents the previous setting.

func (*AdminClient) ServerCPUHardwareInfo

func (adm *AdminClient) ServerCPUHardwareInfo() ([]ServerCPUHardwareInfo, error)

ServerCPUHardwareInfo - Returns cpu hardware information

func (*AdminClient) ServerCPULoadInfo

func (adm *AdminClient) ServerCPULoadInfo() ([]ServerCPULoadInfo, error)

ServerCPULoadInfo - Returns cpu utilization information

func (*AdminClient) ServerDrivesPerfInfo

func (adm *AdminClient) ServerDrivesPerfInfo(size int64) ([]ServerDrivesPerfInfo, error)

ServerDrivesPerfInfo - Returns drive's read and write performance information

func (*AdminClient) ServerInfo

func (adm *AdminClient) ServerInfo() (InfoMessage, error)

ServerInfo - Connect to a minio server and call Server Admin Info Management API to fetch server's information represented by infoMessage structure

func (*AdminClient) ServerMemUsageInfo

func (adm *AdminClient) ServerMemUsageInfo() ([]ServerMemUsageInfo, error)

ServerMemUsageInfo - Returns mem utilization information

func (*AdminClient) ServerNetworkHardwareInfo

func (adm *AdminClient) ServerNetworkHardwareInfo() ([]ServerNetworkHardwareInfo, error)

ServerNetworkHardwareInfo - Returns network hardware information

func (*AdminClient) ServerUpdate

func (adm *AdminClient) ServerUpdate(updateURL string) (us ServerUpdateStatus, err error)

ServerUpdate - updates and restarts the MinIO cluster to latest version. optionally takes an input URL to specify a custom update binary link

func (*AdminClient) ServiceRestart

func (adm *AdminClient) ServiceRestart() error

ServiceRestart - restarts the MinIO cluster

func (*AdminClient) ServiceStop

func (adm *AdminClient) ServiceStop() error

ServiceStop - stops the MinIO cluster

func (AdminClient) ServiceTrace

func (adm AdminClient) ServiceTrace(allTrace, errTrace bool, doneCh <-chan struct{}) <-chan ServiceTraceInfo

ServiceTrace - listen on http trace notifications.

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) SetConfigKV

func (adm *AdminClient) SetConfigKV(kv string) (err error)

SetConfigKV - set key value config to server.

func (*AdminClient) SetCustomTransport

func (adm *AdminClient) SetCustomTransport(customHTTPTransport http.RoundTripper)

SetCustomTransport - set new custom transport.

func (*AdminClient) SetGroupStatus

func (adm *AdminClient) SetGroupStatus(group string, status GroupStatus) error

SetGroupStatus - sets the status of a group.

func (*AdminClient) SetPolicy

func (adm *AdminClient) SetPolicy(policyName, entityName string, isGroup bool) error

SetPolicy - sets the policy for a user or a group.

func (*AdminClient) SetUser

func (adm *AdminClient) SetUser(accessKey, secretKey string, status AccountStatus) error

SetUser - sets a user info.

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) StorageInfo

func (adm *AdminClient) StorageInfo() (StorageInfo, error)

StorageInfo - Connect to a minio server and call Storage Info Management API to fetch server's information represented by StorageInfo structure

func (*AdminClient) TopLocks

func (adm *AdminClient) TopLocks() (LockEntries, error)

TopLocks - returns the oldest locks in a minio setup.

func (*AdminClient) TraceOff

func (adm *AdminClient) TraceOff()

TraceOff - disable HTTP tracing.

func (*AdminClient) TraceOn

func (adm *AdminClient) TraceOn(outputStream io.Writer)

TraceOn - enable HTTP tracing.

func (*AdminClient) UpdateGroupMembers

func (adm *AdminClient) UpdateGroupMembers(g GroupAddRemove) error

UpdateGroupMembers - adds/removes users to/from a group. Server creates the group as needed. Group is removed if remove request is made on empty group.

type Audit

type Audit map[string]Status

Audit contains audit logger status

type BackendDisks

type BackendDisks map[string]int

BackendDisks - represents the map of endpoint-disks.

func (BackendDisks) Merge

func (d1 BackendDisks) Merge(d2 BackendDisks) BackendDisks

Merge - Reduces two endpoint-disk maps.

func (BackendDisks) Sum

func (d1 BackendDisks) Sum() (sum int)

Sum - Return the sum of the disks in the endpoint-disk map.

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

type BgHealState struct {
	ScannedItemsCount int64
	LastHealActivity  time.Time
}

BgHealState represents the status of the background heal

type BucketAccountingUsage

type BucketAccountingUsage struct {
	Size       uint64          `json:"size"`
	AccessList []AccountAccess `json:"accessList"`
}

BucketAccountingUsage represents the accounting usage of a particular bucket

type Buckets

type Buckets struct {
	Count uint64 `json:"count,omitempty"`
}

Buckets contains the number of buckets

type ConfigHistoryEntry

type ConfigHistoryEntry struct {
	RestoreID  string    `json:"restoreId"`
	CreateTime time.Time `json:"createTime"`
	Data       string    `json:"data"`
}

ConfigHistoryEntry - captures config set history with a unique restore ID and createTime

func (ConfigHistoryEntry) CreateTimeFormatted

func (ch ConfigHistoryEntry) CreateTimeFormatted() string

CreateTimeFormatted is used to print formatted time for CreateTime.

type DataUsageInfo

type DataUsageInfo struct {
	LastUpdate            time.Time         `json:"lastUpdate"`
	ObjectsCount          uint64            `json:"objectsCount"`
	ObjectsTotalSize      uint64            `json:"objectsTotalSize"`
	ObjectsSizesHistogram map[string]uint64 `json:"objectsSizesHistogram"`

	BucketsCount uint64            `json:"bucketsCount"`
	BucketsSizes map[string]uint64 `json:"bucketsSizes"`
}

DataUsageInfo represents data usage of an Object API

type Disk

type Disk struct {
	DrivePath       string  `json:"path,omitempty"`
	State           string  `json:"state,omitempty"`
	UUID            string  `json:"uuid,omitempty"`
	Model           string  `json:"model,omitempty"`
	TotalSpace      uint64  `json:"totalspace,omitempty"`
	UsedSpace       uint64  `json:"usedspace,omitempty"`
	ReadThroughput  float64 `json:"readthroughput,omitempty"`
	WriteThroughPut float64 `json:"writethroughput,omitempty"`
	ReadLatency     float64 `json:"readlatency,omitempty"`
	WriteLatency    float64 `json:"writelatency,omitempty"`
	Utilization     float64 `json:"utilization,omitempty"`
}

Disk holds Disk information

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 FsBackend

type FsBackend struct {
	Type backendType `json:"backendType,omitempty"`
}

FsBackend contains specific FS storage information

type GroupAddRemove

type GroupAddRemove struct {
	Group    string   `json:"group"`
	Members  []string `json:"members"`
	IsRemove bool     `json:"isRemove"`
}

GroupAddRemove is type for adding/removing members to/from a group.

type GroupDesc

type GroupDesc struct {
	Name    string   `json:"name"`
	Status  string   `json:"status"`
	Members []string `json:"members"`
	Policy  string   `json:"policy"`
}

GroupDesc is a type that holds group info along with the policy attached to it.

type GroupStatus

type GroupStatus string

GroupStatus - group status.

const (
	GroupEnabled  GroupStatus = "enabled"
	GroupDisabled GroupStatus = "disabled"
)

GroupStatus values.

type HardwareType

type HardwareType string

HardwareType - type to hardware

const (
	// HARDWARE represents hardware type
	HARDWARE = "hwType"
	// CPU represents hardware as cpu
	CPU HardwareType = "cpu"
	// NETWORK hardware Info
	NETWORK HardwareType = "network"
)

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 Help

type Help struct {
	SubSys          string  `json:"subSys"`
	Description     string  `json:"description"`
	MultipleTargets bool    `json:"multipleTargets"`
	KeysHelp        HelpKVS `json:"keysHelp"`
}

Help - return sub-system level help

type HelpKV

type HelpKV struct {
	Key             string `json:"key"`
	Description     string `json:"description"`
	Optional        bool   `json:"optional"`
	Type            string `json:"type"`
	MultipleTargets bool   `json:"multipleTargets"`
}

HelpKV - implements help messages for keys with value as description of the keys.

type HelpKVS

type HelpKVS []HelpKV

HelpKVS - implement order of keys help messages.

type InfoMessage

type InfoMessage struct {
	Mode         string             `json:"mode,omitempty"`
	Domain       []string           `json:"domain,omitempty"`
	Region       string             `json:"region,omitempty"`
	SQSARN       []string           `json:"sqsARN,omitempty"`
	DeploymentID string             `json:"deploymentID,omitempty"`
	Buckets      Buckets            `json:"buckets,omitempty"`
	Objects      Objects            `json:"objects,omitempty"`
	Usage        Usage              `json:"usage,omitempty"`
	Services     Services           `json:"services,omitempty"`
	Backend      interface{}        `json:"backend,omitempty"`
	Servers      []ServerProperties `json:"servers,omitempty"`
}

InfoMessage container to hold server admin related information.

type KMSKeyStatus

type KMSKeyStatus struct {
	KeyID         string `json:"key-id"`
	EncryptionErr string `json:"encryption-error,omitempty"` // An empty error == success
	DecryptionErr string `json:"decryption-error,omitempty"` // An empty error == success
}

KMSKeyStatus contains some status information about a KMS master key. The MinIO server tries to access the KMS and perform encryption and decryption operations. If the MinIO server can access the KMS and all master key operations succeed it returns a status containing only the master key ID but no error.

type KV

type KV struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

KV - is a shorthand of each key value.

type KVS

type KVS []KV

KVS - is a shorthand for some wrapper functions to operate on list of key values.

func (KVS) Empty

func (kvs KVS) Empty() bool

Empty - return if kv is empty

func (KVS) Get

func (kvs KVS) Get(key string) string

Get - returns the value of a key, if not found returns empty.

func (KVS) Lookup

func (kvs KVS) Lookup(key string) (string, bool)

Lookup - lookup a key in a list of KVS

func (*KVS) Set

func (kvs *KVS) Set(key, value string)

Set sets a value, if not sets a default value.

func (KVS) String

func (kvs KVS) String() string

type LDAP

type LDAP struct {
	Status string `json:"status,omitempty"`
}

LDAP contains ldap status

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 LogInfo

type LogInfo struct {
	log.Entry
	ConsoleMsg string
	NodeName   string `json:"node"`
	Err        error  `json:"-"`
}

LogInfo holds console log messages

func (LogInfo) SendLog

func (l LogInfo) SendLog(node, logKind string) bool

SendLog returns true if log pertains to node specified in args.

type Logger

type Logger map[string]Status

Logger contains logger status

type NetPerfInfo

type NetPerfInfo struct {
	Addr           string `json:"addr"`
	ReadThroughput uint64 `json:"readThroughput"`
	Error          string `json:"error,omitempty"`
}

NetPerfInfo network performance information.

type Objects

type Objects struct {
	Count uint64 `json:"count,omitempty"`
}

Objects contains the number of objects

type ProfilerType

type ProfilerType string

ProfilerType represents the profiler type passed to the profiler subsystem.

const (
	ProfilerCPU     ProfilerType = "cpu"     // represents CPU profiler type
	ProfilerMEM     ProfilerType = "mem"     // represents MEM profiler type
	ProfilerBlock   ProfilerType = "block"   // represents Block profiler type
	ProfilerMutex   ProfilerType = "mutex"   // represents Mutex profiler type
	ProfilerTrace   ProfilerType = "trace"   // represents Trace profiler type
	ProfilerThreads ProfilerType = "threads" // represents ThreadCreate profiler type
)

Different supported profiler types.

type ServerCPUHardwareInfo

type ServerCPUHardwareInfo struct {
	Addr    string         `json:"addr"`
	Error   string         `json:"error,omitempty"`
	CPUInfo []cpu.InfoStat `json:"cpu"`
}

ServerCPUHardwareInfo holds informantion about cpu hardware

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 ServerDrivesPerfInfo

type ServerDrivesPerfInfo struct {
	Addr  string             `json:"addr"`
	Error string             `json:"error,omitempty"`
	Perf  []disk.Performance `json:"perf"`
	Size  int64              `json:"size,omitempty"`
}

ServerDrivesPerfInfo holds informantion about address and write speed of all drives in a single server node

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 ServerNetworkHardwareInfo

type ServerNetworkHardwareInfo struct {
	Addr        string          `json:"addr"`
	Error       string          `json:"error,omitempty"`
	NetworkInfo []net.Interface `json:"network"`
}

ServerNetworkHardwareInfo holds informantion about cpu hardware

type ServerProperties

type ServerProperties struct {
	State    string            `json:"state,omitempty"`
	Endpoint string            `json:"endpoint,omitempty"`
	Uptime   int64             `json:"uptime,omitempty"`
	Version  string            `json:"version,omitempty"`
	CommitID string            `json:"commitID,omitempty"`
	Network  map[string]string `json:"network,omitempty"`
	Disks    []Disk            `json:"disks,omitempty"`
}

ServerProperties holds server information

type ServerUpdateStatus

type ServerUpdateStatus struct {
	CurrentVersion string `json:"currentVersion"`
	UpdatedVersion string `json:"updatedVersion"`
}

ServerUpdateStatus - contains the response of service update API

type ServiceAction

type ServiceAction string

ServiceAction - type to restrict service-action values

const (
	// ServiceActionRestart represents restart action
	ServiceActionRestart ServiceAction = "restart"
	// ServiceActionStop represents stop action
	ServiceActionStop = "stop"
)

type ServiceTraceInfo

type ServiceTraceInfo struct {
	Trace trace.Info
	Err   error `json:"-"`
}

ServiceTraceInfo holds http trace

type Services

type Services struct {
	Vault         Vault                         `json:"vault,omitempty"`
	LDAP          LDAP                          `json:"ldap,omitempty"`
	Logger        []Logger                      `json:"logger,omitempty"`
	Audit         []Audit                       `json:"audit,omitempty"`
	Notifications []map[string][]TargetIDStatus `json:"notifications,omitempty"`
}

Services contains different services information

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 Status

type Status struct {
	Status string `json:"status,omitempty"`
}

Status of endpoint

type StorageInfo

type StorageInfo struct {
	Used []uint64 // Used total used per disk.

	Total []uint64 // Total disk space per disk.

	Available []uint64 // Total disk space available per disk.

	MountPaths []string // Disk mountpoints

	// 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      BackendDisks // Online disks during server startup.
		OfflineDisks     BackendDisks // 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 Target

type Target struct {
	SubSystem string `json:"subSys"`
	KVS       KVS    `json:"kvs"`
}

Target signifies an individual target

type TargetIDStatus

type TargetIDStatus map[string]Status

TargetIDStatus containsid and status

type Targets

type Targets []Target

Targets sub-system targets

func ParseSubSysTarget

func ParseSubSysTarget(buf []byte) (Targets, error)

ParseSubSysTarget - parse sub-system target

func (*Targets) AddTarget

func (t *Targets) AddTarget(s string) error

AddTarget - adds new targets, by parsing the input string s.

func (Targets) Count

func (t Targets) Count() int

Count - returns total numbers of target

func (Targets) String

func (t Targets) String() string

type Usage

type Usage struct {
	Size uint64 `json:"size,omitempty"`
}

Usage contains the tottal size used

type UserInfo

type UserInfo struct {
	SecretKey  string        `json:"secretKey,omitempty"`
	PolicyName string        `json:"policyName,omitempty"`
	Status     AccountStatus `json:"status"`
	MemberOf   []string      `json:"memberOf,omitempty"`
}

UserInfo carries information about long term users.

type Vault

type Vault struct {
	Status  string `json:"status,omitempty"`
	Encrypt string `json:"encryp,omitempty"`
	Decrypt string `json:"decrypt,omitempty"`
}

Vault - Fetches the Vault status

type XlBackend

type XlBackend struct {
	Type         backendType `json:"backendType,omitempty"`
	OnlineDisks  int         `json:"onlineDisks,omitempty"`
	OfflineDisks int         `json:"offlineDisks,omitempty"`
	// Data disks for currently configured Standard storage class.
	StandardSCData int `json:"standardSCData,omitempty"`
	// Parity disks for currently configured Standard storage class.
	StandardSCParity int `json:"standardSCParity,omitempty"`
	// Data disks for currently configured Reduced Redundancy storage class.
	RRSCData int `json:"rrSCData,omitempty"`
	// Parity disks for currently configured Reduced Redundancy storage class.
	RRSCParity int `json:"rrSCParity,omitempty"`
}

XlBackend contains specific erasure storage information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL