Documentation ¶
Index ¶
- func NewReqID() int
- type Account
- type AddAccountRequest
- type AddAccountResult
- type AddInitiatorsToVolumeAccessGroupRequest
- type AddVolumesToVolumeAccessGroupRequest
- type Client
- func (c *Client) AddAccount(req *AddAccountRequest) (accountID int64, err error)
- func (c *Client) AddInitiatorsToVolumeAccessGroup(r *AddInitiatorsToVolumeAccessGroupRequest) error
- func (c *Client) AddVolumesToAccessGroup(req *AddVolumesToVolumeAccessGroupRequest) (err error)
- func (c *Client) CloneVolume(req *CloneVolumeRequest) (Volume, error)
- func (c *Client) CreateSnapshot(req *CreateSnapshotRequest) (snapshot Snapshot, err error)
- func (c *Client) CreateVolume(createReq *CreateVolumeRequest) (Volume, error)
- func (c *Client) CreateVolumeAccessGroup(r *CreateVolumeAccessGroupRequest) (vagID int64, err error)
- func (c *Client) DeleteRange(startID, endID int64)
- func (c *Client) DeleteSnapshot(snapshotID int64) (err error)
- func (c *Client) DeleteVolume(volumeID int64) (err error)
- func (c *Client) DetachVolume(v Volume) (err error)
- func (c *Client) GetAccountByID(req *GetAccountByIDRequest) (account Account, err error)
- func (c *Client) GetAccountByName(req *GetAccountByNameRequest) (account Account, err error)
- func (c *Client) GetClusterCapacity() (capacity *ClusterCapacity, err error)
- func (c *Client) GetClusterHardwareInfo() (*ClusterHardwareInfo, error)
- func (c *Client) GetDefaultQoS() (*QoS, error)
- func (c *Client) GetSnapshot(snapID, volID int64, sfName string) (s Snapshot, err error)
- func (c *Client) GetVolumeByID(volID int64) (Volume, error)
- func (c *Client) ListSnapshots(req *ListSnapshotsRequest) (snapshots []Snapshot, err error)
- func (c *Client) ListVolumeAccessGroups(r *ListVolumeAccessGroupsRequest) (vags []VolumeAccessGroup, err error)
- func (c *Client) ListVolumes(listVolReq *ListVolumesRequest) (volumes []Volume, err error)
- func (c *Client) ListVolumesForAccount(listReq *ListVolumesForAccountRequest) (volumes []Volume, err error)
- func (c *Client) ModifyVolume(req *ModifyVolumeRequest) (err error)
- func (c *Client) Request(method string, params interface{}, id int) ([]byte, error)
- func (c *Client) RollbackToSnapshot(req *RollbackToSnapshotRequest) (newSnapID int64, err error)
- func (c *Client) WaitForVolumeByID(volID int64) (Volume, error)
- type CloneVolumeRequest
- type CloneVolumeResult
- type ClusterCapacity
- type ClusterHardwareInfo
- type Config
- type CreateSnapshotRequest
- type CreateSnapshotResult
- type CreateVolumeAccessGroupRequest
- type CreateVolumeAccessGroupResult
- type CreateVolumeRequest
- type CreateVolumeResult
- type DefaultQoSRequest
- type DefaultQoSResult
- type DeleteSnapshotRequest
- type DeleteVolumeRequest
- type EmptyResponse
- type Error
- type GetAccountByIDRequest
- type GetAccountByNameRequest
- type GetAccountResult
- type GetClusterCapacityRequest
- type GetClusterCapacityResult
- type GetClusterHardwareInfoResult
- type ListActiveVolumesRequest
- type ListSnapshotsRequest
- type ListSnapshotsResult
- type ListVolumeAccessGroupsRequest
- type ListVolumesAccessGroupsResult
- type ListVolumesForAccountRequest
- type ListVolumesRequest
- type ListVolumesResult
- type ModifyVolumeRequest
- type ModifyVolumeResult
- type QoS
- type RollbackToSnapshotRequest
- type RollbackToSnapshotResult
- type Snapshot
- type VolType
- type Volume
- type VolumeAccessGroup
- type VolumePair
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Account ¶
type Account struct { AccountID int64 `json:"accountID,omitempty"` Username string `json:"username,omitempty"` Status string `json:"status,omitempty"` Volumes []int64 `json:"volumes,omitempty"` InitiatorSecret string `json:"initiatorSecret,omitempty"` TargetSecret string `json:"targetSecret,omitempty"` Attributes interface{} `json:"attributes,omitempty"` }
Account
type AddAccountRequest ¶
type AddAccountRequest struct { Username string `json:"username"` InitiatorSecret string `json:"initiatorSecret,omitempty"` TargetSecret string `json:"targetSecret,omitempty"` Attributes interface{} `json:"attributes,omitempty"` }
AddAccountRequest
type AddAccountResult ¶
type AddAccountResult struct { ID int `json:"id"` Result struct { AccountID int64 `json:"accountID"` } `json:"result"` }
AddAccountResult
type AddInitiatorsToVolumeAccessGroupRequest ¶
type AddInitiatorsToVolumeAccessGroupRequest struct { Initiators []string `json:"initiators"` VAGID int64 `json:"volumeAccessGroupID"` }
AddInitiatorsToVolumeAccessGroupRequest
type AddVolumesToVolumeAccessGroupRequest ¶
type AddVolumesToVolumeAccessGroupRequest struct { VolumeAccessGroupID int64 `json:"volumeAccessGroupID"` Volumes []int64 `json:"volumes"` }
AddVolumesToVolumeAccessGroupRequest
type Client ¶
type Client struct { SVIP string Endpoint string Config *Config DefaultAPIPort int VolumeTypes *[]VolType AccessGroups []int64 DefaultBlockSize int64 DebugTraceFlags map[string]bool AccountID int64 }
Client is used to send API requests to a SolidFire system system
func NewFromParameters ¶
NewFromParameters is a factory method to create a new sfapi.Client object using the supplied parameters
func (*Client) AddAccount ¶
func (c *Client) AddAccount(req *AddAccountRequest) (accountID int64, err error)
AddAccount tbd
func (*Client) AddInitiatorsToVolumeAccessGroup ¶
func (c *Client) AddInitiatorsToVolumeAccessGroup(r *AddInitiatorsToVolumeAccessGroupRequest) error
AddInitiatorsToVolumeAccessGroup tbd
func (*Client) AddVolumesToAccessGroup ¶
func (c *Client) AddVolumesToAccessGroup(req *AddVolumesToVolumeAccessGroupRequest) (err error)
AddVolumesToAccessGroup tbd
func (*Client) CloneVolume ¶
func (c *Client) CloneVolume(req *CloneVolumeRequest) (Volume, error)
CloneVolume invokes the supplied clone volume request. It waits for the source volume (which itself may be new in a test scenario) to be ready to be cloned, and it waits for the clone to exist.
func (*Client) CreateSnapshot ¶
func (c *Client) CreateSnapshot(req *CreateSnapshotRequest) (snapshot Snapshot, err error)
func (*Client) CreateVolume ¶
func (c *Client) CreateVolume(createReq *CreateVolumeRequest) (Volume, error)
CreateVolume tbd
func (*Client) CreateVolumeAccessGroup ¶
func (c *Client) CreateVolumeAccessGroup(r *CreateVolumeAccessGroupRequest) (vagID int64, err error)
CreateVolumeAccessGroup tbd
func (*Client) DeleteSnapshot ¶
func (*Client) DeleteVolume ¶
DeleteVolume tbd
func (*Client) GetAccountByID ¶
func (c *Client) GetAccountByID(req *GetAccountByIDRequest) (account Account, err error)
GetAccountByID tbd
func (*Client) GetAccountByName ¶
func (c *Client) GetAccountByName(req *GetAccountByNameRequest) (account Account, err error)
GetAccountByName tbd
func (*Client) GetClusterCapacity ¶
func (c *Client) GetClusterCapacity() (capacity *ClusterCapacity, err error)
Get cluster capacity stats
func (*Client) GetClusterHardwareInfo ¶
func (c *Client) GetClusterHardwareInfo() (*ClusterHardwareInfo, error)
Get cluster hardware info
func (*Client) GetDefaultQoS ¶
Get default QoS information
func (*Client) GetSnapshot ¶
func (*Client) GetVolumeByID ¶
GetVolumeByID returns the volume with the specified ID.
func (*Client) ListSnapshots ¶
func (c *Client) ListSnapshots(req *ListSnapshotsRequest) (snapshots []Snapshot, err error)
func (*Client) ListVolumeAccessGroups ¶
func (c *Client) ListVolumeAccessGroups(r *ListVolumeAccessGroupsRequest) (vags []VolumeAccessGroup, err error)
ListVolumeAccessGroups tbd
func (*Client) ListVolumes ¶
func (c *Client) ListVolumes(listVolReq *ListVolumesRequest) (volumes []Volume, err error)
ListVolumes returns all volumes using the specified request object.
func (*Client) ListVolumesForAccount ¶
func (c *Client) ListVolumesForAccount(listReq *ListVolumesForAccountRequest) (volumes []Volume, err error)
ListVolumesForAccount tbd
func (*Client) ModifyVolume ¶
func (c *Client) ModifyVolume(req *ModifyVolumeRequest) (err error)
func (*Client) RollbackToSnapshot ¶
func (c *Client) RollbackToSnapshot(req *RollbackToSnapshotRequest) (newSnapID int64, err error)
type CloneVolumeRequest ¶
type CloneVolumeResult ¶
type ClusterCapacity ¶
type ClusterCapacity struct { ActiveBlockSpace int64 `json:"activeBlockSpace"` ActiveSessions int64 `json:"activeSessions"` AverageIOPS int64 `json:"averageIOPS"` ClusterRecentIOSize int64 `json:"clusterRecentIOSize"` CurrentIOPS int64 `json:"currentIOPS"` MaxIOPS int64 `json:"maxIOPS"` MaxOverProvisionableSpace int64 `json:"maxOverProvisionableSpace"` MaxProvisionedSpace int64 `json:"maxProvisionedSpace"` MaxUsedMetadataSpace int64 `json:"maxUsedMetadataSpace"` MaxUsedSpace int64 `json:"maxUsedSpace"` NonZeroBlocks int64 `json:"nonZeroBlocks"` PeakActiveSessions int64 `json:"peakActiveSessions"` PeakIOPS int64 `json:"peakIOPS"` ProvisionedSpace int64 `json:"provisionedSpace"` Timestamp string `json:"timestamp"` TotalOps int64 `json:"totalOps"` UniqueBlocks int64 `json:"uniqueBlocks"` UniqueBlocksUsedSpace int64 `json:"uniqueBlocksUsedSpace"` UsedMetadataSpace int64 `json:"usedMetadataSpace"` UsedMetadataSpaceInSnapshots int64 `json:"usedMetadataSpaceInSnapshots"` UsedSpace int64 `json:"usedSpace"` ZeroBlocks int64 `json:"zeroBlocks"` }
type ClusterHardwareInfo ¶
type ClusterHardwareInfo struct { Drives interface{} `json:"drives"` Nodes interface{} `json:"nodes"` }
type Config ¶
type Config struct { TenantName string EndPoint string MountPoint string SVIP string InitiatorIFace string //iface to use of iSCSI initiator Types *[]VolType LegacyNamePrefix string AccessGroups []int64 DefaultBlockSize int64 DebugTraceFlags map[string]bool }
Config holds the configuration data for the Client to communicate with a SolidFire storage system
type CreateSnapshotRequest ¶
type CreateSnapshotResult ¶
type CreateVolumeAccessGroupRequest ¶
type CreateVolumeAccessGroupRequest struct { Name string `json:"name"` Volumes []int64 `json:"volumes,omitempty"` Initiators []string `json:"initiators,omitempty"` }
CreateVolumeAccessGroupRequest
type CreateVolumeAccessGroupResult ¶
type CreateVolumeAccessGroupResult struct { ID int `json:"id"` Result struct { VagID int64 `json:"volumeAccessGroupID"` } `json:"result"` }
CreateVolumeAccessGroupResult
type CreateVolumeRequest ¶
type CreateVolumeRequest struct { Name string `json:"name"` AccountID int64 `json:"accountID"` TotalSize int64 `json:"totalSize"` Enable512e bool `json:"enable512e"` Qos QoS `json:"qos,omitempty"` Attributes interface{} `json:"attributes"` }
CreateVolumeRequest
type CreateVolumeResult ¶
type CreateVolumeResult struct { ID int `json:"id"` Result struct { VolumeID int64 `json:"volumeID"` } `json:"result"` }
CreateVolumeResult
type DefaultQoSRequest ¶
type DefaultQoSRequest struct { }
type DefaultQoSResult ¶
type DeleteSnapshotRequest ¶
type DeleteSnapshotRequest struct {
SnapshotID int64 `json:"snapshotID"`
}
type DeleteVolumeRequest ¶
type DeleteVolumeRequest struct {
VolumeID int64 `json:"volumeID"`
}
DeleteVolumeRequest
type EmptyResponse ¶
type EmptyResponse struct { ID int `json:"id"` Result struct { } `json:"result"` }
EmptyResponse
type Error ¶
type Error struct { ID int `json:"id"` Fields struct { Code int `json:"code"` Message string `json:"message"` Name string `json:"name"` } `json:"error"` }
Error wrapper
type GetAccountByIDRequest ¶
type GetAccountByIDRequest struct {
AccountID int64 `json:"accountID"`
}
GetAccountByIDRequest
type GetAccountByNameRequest ¶
type GetAccountByNameRequest struct {
Name string `json:"username"`
}
GetAccountByNameRequest
type GetAccountResult ¶
type GetAccountResult struct { ID int `json:"id"` Result struct { Account Account `json:"account"` } `json:"result"` }
GetAccountResult
type GetClusterCapacityRequest ¶
type GetClusterCapacityRequest struct { }
type GetClusterCapacityResult ¶
type GetClusterCapacityResult struct { ID int `json:"id"` Result struct { ClusterCapacity ClusterCapacity `json:"clusterCapacity"` } `json:"result"` }
type GetClusterHardwareInfoResult ¶
type GetClusterHardwareInfoResult struct { ID int `json:"id"` Result struct { ClusterHardwareInfo ClusterHardwareInfo `json:"clusterHardwareInfo"` } `json:"result"` }
type ListActiveVolumesRequest ¶
type ListActiveVolumesRequest struct { StartVolumeID int64 `json:"startVolumeID"` Limit int64 `json:"limit"` }
ListActiveVolumesRequest
type ListSnapshotsRequest ¶
type ListSnapshotsRequest struct {
VolumeID int64 `json:"volumeID"`
}
type ListSnapshotsResult ¶
type ListVolumeAccessGroupsRequest ¶
type ListVolumeAccessGroupsRequest struct { StartVAGID int64 `json:"startVolumeAccessGroupID,omitempty"` Limit int64 `json:"limit,omitempty"` }
ListVolumeAccessGroupsRequest
type ListVolumesAccessGroupsResult ¶
type ListVolumesAccessGroupsResult struct { ID int `json:"id"` Result struct { Vags []VolumeAccessGroup `json:"volumeAccessGroups"` } `json:"result"` }
ListVolumesAccessGroupsResult
type ListVolumesForAccountRequest ¶
type ListVolumesForAccountRequest struct {
AccountID int64 `json:"accountID"`
}
ListVolumesForAccountRequest
type ListVolumesRequest ¶
type ListVolumesRequest struct { Accounts []int64 `json:"accounts"` StartVolumeID *int64 `json:"startVolumeID,omitempty"` Limit *int64 `json:"limit,omitempty"` }
ListVolumesRequest
type ListVolumesResult ¶
type ListVolumesResult struct { ID int `json:"id"` Result struct { Volumes []Volume `json:"volumes"` } `json:"result"` }
ListVolumesResult
type ModifyVolumeRequest ¶
type ModifyVolumeResult ¶
type QoS ¶
type QoS struct { MinIOPS int64 `json:"minIOPS,omitempty"` MaxIOPS int64 `json:"maxIOPS,omitempty"` BurstIOPS int64 `json:"burstIOPS,omitempty"` BurstTime int64 `json:"-"` }
QoS settings
type Snapshot ¶
type Snapshot struct { SnapshotID int64 `json:"snapshotID"` VolumeID int64 `json:"volumeID"` Name string `json:"name"` Checksum string `json:"checksum"` Status string `json:"status"` TotalSize int64 `json:"totalSize"` GroupID int64 `json:"groupID"` CreateTime string `json:"createTime"` Attributes interface{} `json:"attributes"` }
type Volume ¶
type Volume struct { VolumeID int64 `json:"volumeID"` Name string `json:"name"` AccountID int64 `json:"accountID"` CreateTime string `json:"createTime"` Status string `json:"status"` Access string `json:"access"` Enable512e bool `json:"enable512e"` Iqn string `json:"iqn"` ScsiEUIDeviceID string `json:"scsiEUIDeviceID"` ScsiNAADeviceID string `json:"scsiNAADeviceID"` Qos QoS `json:"qos"` VolumeAccessGroups []int64 `json:"volumeAccessGroups"` VolumePairs []VolumePair `json:"volumePairs"` DeleteTime string `json:"deleteTime"` PurgeTime string `json:"purgeTime"` SliceCount int64 `json:"sliceCount"` TotalSize int64 `json:"totalSize"` BlockSize int64 `json:"blockSize"` VirtualVolumeID string `json:"virtualVolumeID"` Attributes interface{} `json:"attributes"` }
Volume settings
type VolumeAccessGroup ¶
type VolumeAccessGroup struct { Initiators []string `json:"initiators"` Attributes interface{} `json:"attributes"` DeletedVolumes []int64 `json:"deletedVolumes"` Name string `json:"name"` VAGID int64 `json:"volumeAccessGroupID"` Volumes []int64 `json:"volumes"` }
VolumeAccessGroup