Documentation ¶
Index ¶
- Constants
- type Alerts
- type Cluster
- type ClusterActionParam
- type ClusterResponse
- type ClusterStateAction
- type ClusterStateResponse
- type CreateOptions
- type Filesystem
- type Labels
- type MachineID
- type Node
- type OptionKey
- type SnapCreateRequest
- type SnapCreateResponse
- type Stats
- type Status
- type Volume
- type VolumeActionParam
- type VolumeCos
- type VolumeCreateRequest
- type VolumeCreateResponse
- type VolumeID
- type VolumeInfo
- type VolumeLocator
- type VolumeResponse
- type VolumeSpec
- type VolumeState
- type VolumeStateAction
- type VolumeStateResponse
- type VolumeStatus
Constants ¶
const ( // VolumeCosNone minmum level of CoS VolumeCosNone = VolumeCos(0) // VolumeCosMedium in-between level of Cos VolumeCosMedium = VolumeCos(5) // VolumeCosMax maximum level of CoS VolumeCosMax = VolumeCos(9) )
const ( // NotPresent This volume is not present. NotPresent = VolumeStatus("NotPresent") // Up status healthy Up = VolumeStatus("Up") // Down status failure. Down = VolumeStatus("Down") // Degraded status up but with degraded performance. In a RAID group, this may indicate a problem with one or more drives Degraded = VolumeStatus("Degraded") )
const ( // OptName query parameter used to lookup volume by name OptName = OptionKey("Name") // OptVolumeID query parameter used to lookup volume by ID. OptVolumeID = OptionKey("VolumeID") // OptLabel query parameter used to lookup volume by set of labels. OptLabel = OptionKey("Label") // OptConfigLabel query parameter used to lookup volume by set of labels. OptConfigLabel = OptionKey("ConfigLabel") )
const BadVolumeID = VolumeID("")
BadVolumeID invalid volume ID, usually accompanied by an error.
const Version = "v1"
Version API version
const VolumeStateAny = VolumePending | VolumeAvailable | VolumeAttached | VolumeDetached | VolumeError | VolumeDeleted
VolumeStateAny a filter that selects all volumes
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClusterResponse ¶
type ClusterResponse struct { // Error is "" on success or contains the error message on failure. Error string `json:"error"` }
VolumeResponse is embedded in all REST responses.
type ClusterStateAction ¶
type ClusterStateAction struct { // Remove a node or a set of nodes Remove ClusterActionParam `json:"remove"` // Shutdown a node or a set of nodes Shutdown ClusterActionParam `json:"shutdown"` }
ClusterStateAction is the body of the REST request to specify desired actions
type ClusterStateResponse ¶
type ClusterStateResponse struct { // VolumeStateRequest the current state of the volume ClusterStateAction ClusterResponse }
ClusterStateResponse is the body of the REST response
type CreateOptions ¶
type CreateOptions struct { // FailIfExists fail create request if a volume with matching Locator // already exists. FailIfExists bool // CreateFromSnap will create a volume with specified SnapID CreateFromSnap VolumeID // CreateFromSource will seed the volume from the specified URI. Any // additional config for the source comes from the labels in the spec. CreateFromSource string }
CreateOptions are passed in with a CreateRequest
type Filesystem ¶
type Filesystem string
Filesystem supported filesystems
const ( FsNone Filesystem = "none" FsExt4 Filesystem = "ext4" FsXfs Filesystem = "xfs" FsZfs Filesystem = "zfs" FsNfs Filesystem = "nfs" )
type MachineID ¶
type MachineID string
MachineID is a node instance identifier for clustered systems.
const MachineNone MachineID = ""
type Node ¶
type Node struct { Id string Cpu float64 // percentage. Memory float64 // percentage. Luns map[string]systemutils.Lun Avgload int Ip string Timestamp time.Time Status Status Containers []dockerclient.Container }
Node describes the state of a node. It includes the current physical state (CPU, memory, storage, network usage) as well as the containers running on the system.
type SnapCreateRequest ¶
type SnapCreateRequest struct { ID VolumeID `json:"id"` Locator VolumeLocator `json:"locator"` Readonly bool `json:"readonly"` }
SnapCreateRequest request body to create a snap.
type SnapCreateResponse ¶
type SnapCreateResponse struct {
VolumeCreateResponse
}
SnapCreateResponse response body to SnapCreateRequest
type Stats ¶
type Stats struct { // Reads completed successfully. Reads int64 // ReadMs time spent in reads in ms. ReadMs int64 // ReadBytes ReadBytes int64 // Writes completed successfully. Writes int64 // WriteBytes WriteBytes int64 // WriteMs time spent in writes in ms. WriteMs int64 // IOProgress I/Os curently in progress. IOProgress int64 // IOMs time spent doing I/Os ms. IOMs int64 }
Alerts
type Volume ¶
type Volume struct { // ID Self referential VolumeID ID VolumeID // Parent ID if this was a snap Parent VolumeID // Readonly Readonly bool // Locator User specified locator Locator VolumeLocator // Ctime Volume creation time Ctime time.Time // Spec User specified VolumeSpec Spec *VolumeSpec // Usage Volume usage Usage uint64 // LastScan time when an integrity check for run LastScan time.Time // Format Filesystem type if any Format Filesystem // Status see VolumeStatus Status VolumeStatus // State see VolumeState State VolumeState // AttachedOn - Node on which this volume is attached. AttachedOn MachineID // DevicePath DevicePath string // AttachPath AttachPath string // ReplicaSet Set of nodes no which this Volume is erasure coded - for clustered storage arrays ReplicaSet []MachineID // Error Last recorded error Error string }
Volume represents a live, created volume.
type VolumeActionParam ¶
type VolumeActionParam int
VolumeActionParam desired action on volume
const ( // ParamIgnore user should ignore the value of the parameter. ParamIgnore VolumeActionParam = iota // ParamOff maps to the boolean value false. ParamOff // ParamOn maps to the boolean value true. ParamOn )
type VolumeCreateRequest ¶
type VolumeCreateRequest struct { // Locator user specified volume name and labels. Locator VolumeLocator `json:"locator"` // Options to create volume Options *CreateOptions `json:"options,omitempty"` // Spec is the storage spec for the volume Spec *VolumeSpec `json:"spec,omitempty"` }
VolumeCreateRequest is the body of create REST request
type VolumeCreateResponse ¶
type VolumeCreateResponse struct { // ID of the newly created volume ID VolumeID `json:"id"` VolumeResponse }
VolumeCreateResponse is the body of create REST response
type VolumeInfo ¶
type VolumeInfo struct { Path string Storage *VolumeSpec VolumeID VolumeID }
type VolumeLocator ¶
type VolumeLocator struct { // Name user friendly identifier Name string // VolumeLabels set of name-value pairs that acts as search filters. VolumeLabels Labels }
VolumeLocator is a structure that is attached to a volume and is used to carry opaque metadata.
type VolumeResponse ¶
type VolumeResponse struct { // Error is "" on success or contains the error message on failure. Error string `json:"error"` }
VolumeResponse is embedded in all REST responses.
func ResponseStatusNew ¶
func ResponseStatusNew(err error) VolumeResponse
ResponseStatusNew create VolumeResponse from error
type VolumeSpec ¶
type VolumeSpec struct { // Ephemeral storage Ephemeral bool // Thin provisioned volume size in bytes Size uint64 // Format disk with this FileSystem Format Filesystem // BlockSize for file system BlockSize int // HA Level specifies the number of nodes that are // allowed to fail, and yet data is availabel. // A value of 0 implies that data is not erasure coded, // a failure of a node will lead to data loss. HALevel int // This disk's CoS Cos VolumeCos // Perform dedupe on this disk Dedupe bool // SnapshotInterval in minutes, set to 0 to disable Snapshots SnapshotInterval int // Volume configuration labels ConfigLabels Labels }
VolumeSpec has the properties needed to create a volume.
type VolumeState ¶
type VolumeState int
VolumeState is one of the below enumerations and reflects the state of a volume.
const ( // VolumePending volume is transitioning to new state VolumePending VolumeState = 1 << iota // VolumeAvailable volume is ready to be assigned to a container VolumeAvailable // VolumeAttached is attached to container VolumeAttached // VolumeDetached is detached but associated with a container. VolumeDetached // VolumeDetaching is detach is in progress. VolumeDetaching // VolumeError is in Error State VolumeError // VolumeDeleted is deleted, it will remain in this state while resources are // asynchronously reclaimed. VolumeDeleted )
type VolumeStateAction ¶
type VolumeStateAction struct { // Format volume Format VolumeActionParam `json:"format"` // Attach or Detach volume Attach VolumeActionParam `json:"attach"` // Mount or unmount volume Mount VolumeActionParam `json:"mount"` // MountPath MountPath string `json:"mount_path"` // DevicePath returned in Attach DevicePath string `json:"device_path"` }
VolumeStateAction is the body of the REST request to specify desired actions
type VolumeStateResponse ¶
type VolumeStateResponse struct { // VolumeStateRequest the current state of the volume VolumeStateAction VolumeResponse }
VolumeStateResponse is the body of the REST response