Documentation
¶
Index ¶
- Variables
- func NewDriver() array.Driver
- type AddDiskOptions
- type AddISCSIExtentOptions
- type AddISCSITargetGroupOptions
- type AddZvolOptions
- type Array
- func (t Array) AddDisk(opt AddDiskOptions) (*Disk, error)
- func (t Array) AddISCSIExtent(opt AddISCSIExtentOptions) (*ISCSIExtent, error)
- func (t Array) AddZvol(opt AddZvolOptions) (*Dataset, error)
- func (t Array) CreateDataset(params CreateDatasetParams) (*Dataset, error)
- func (t Array) DelDisk(name string) (*Disk, error)
- func (t Array) DelISCSIExtent(opt DelISCSIExtentOptions) (*ISCSIExtent, error)
- func (t Array) DelZvol(name string) (*Dataset, error)
- func (t Array) DeleteDataset(name string) (*Dataset, error)
- func (t Array) DiskId(disk Disk) string
- func (t Array) DiskPaths(disk Disk) (san.Paths, error)
- func (t *Array) Do(req *http.Request, v interface{}) (*http.Response, error)
- func (t Array) GetDataset(name string) (*Dataset, error)
- func (t Array) GetDatasets() (Datasets, error)
- func (t Array) GetDisk(name string) (*Disk, error)
- func (t Array) GetISCSIExtent(name string) (*ISCSIExtent, error)
- func (t Array) GetISCSIExtents() (ISCSIExtents, error)
- func (t Array) GetISCSIInitiators() (ISCSIInitiators, error)
- func (t Array) GetISCSIPortals() ([]any, error)
- func (t Array) GetISCSITargetExtents() (ISCSITargetExtents, error)
- func (t Array) GetISCSITargets() (ISCSITargets, error)
- func (t Array) GetPoolByName(name string) (Pool, error)
- func (t Array) GetPools() ([]Pool, error)
- func (t Array) GetSystemInfo() (*SystemInfo, error)
- func (t Array) MapDisk(opt MapDiskOptions) (ISCSITargetExtents, error)
- func (t *Array) Run(args []string) error
- func (t Array) UnmapDisk(opt UnmapDiskOptions) (ISCSITargetExtents, error)
- func (t Array) UpdateDataset(id string, params UpdateDatasetParams) (*Dataset, error)
- type CompositeValue
- type CreateDatasetParams
- type CreateDatasetParamsEncryptionOptions
- type CreateISCSIExtentParams
- type CreateISCSIInitiatorParams
- type CreateISCSIPortalParams
- type CreateISCSITargetExtentParams
- type CreateISCSITargetParams
- type Dataset
- type Datasets
- type DelISCSIExtentOptions
- type Disk
- type DiskISCSI
- type GetDatasetParams
- type GetDatasetsParams
- type GetISCSIExtentsParams
- type GetISCSIInitiatorsParams
- type GetISCSITargetExtentsParams
- type GetISCSITargetsParams
- type GetPoolsParams
- type ISCSIExtent
- type ISCSIExtents
- type ISCSIExtentsResponse
- type ISCSIInitiator
- type ISCSIInitiators
- type ISCSIPortal
- type ISCSIPortalListenIp
- type ISCSITarget
- type ISCSITargetExtent
- type ISCSITargetExtents
- type ISCSITargetGroup
- type ISCSITargetGroups
- type ISCSITargets
- type ISCSITargetsResponse
- type MapDiskOptions
- type Pool
- type PoolsResponse
- type SystemInfo
- type UnmapDiskOptions
- type UpdateDatasetParams
- type UpdateISCSITargetParams
Constants ¶
This section is empty.
Variables ¶
var ( Head = "/api/v2.0" DatasetTypeVolume = "VOLUME" DatasetTypeFilesystem = "FILESYSTEM" RequestTimeout = 10 * time.Second )
Functions ¶
Types ¶
type AddDiskOptions ¶
type AddDiskOptions struct {
AddZvolOptions
InsecureTPC bool
Mapping string
LunId *int
}
type AddISCSIExtentOptions ¶
type AddZvolOptions ¶
type AddZvolOptions struct {
Name string
Size string
Blocksize string
Sparse bool
Deduplication string
Compression string
}
AddZvolOptions receives "add zvol" and "add disk" command line flags values
func (AddZvolOptions) Params ¶
func (t AddZvolOptions) Params() (CreateDatasetParams, error)
type Array ¶
func (Array) AddISCSIExtent ¶
func (t Array) AddISCSIExtent(opt AddISCSIExtentOptions) (*ISCSIExtent, error)
func (Array) CreateDataset ¶
func (t Array) CreateDataset(params CreateDatasetParams) (*Dataset, error)
func (Array) DelISCSIExtent ¶
func (t Array) DelISCSIExtent(opt DelISCSIExtentOptions) (*ISCSIExtent, error)
func (Array) DiskPaths ¶
DiskPaths return the san paths list from the created disk dataset and api query responses
func (Array) GetDatasets ¶
func (Array) GetISCSIExtent ¶
func (t Array) GetISCSIExtent(name string) (*ISCSIExtent, error)
func (Array) GetISCSIExtents ¶
func (t Array) GetISCSIExtents() (ISCSIExtents, error)
func (Array) GetISCSIInitiators ¶
func (t Array) GetISCSIInitiators() (ISCSIInitiators, error)
func (Array) GetISCSIPortals ¶
func (Array) GetISCSITargetExtents ¶
func (t Array) GetISCSITargetExtents() (ISCSITargetExtents, error)
func (Array) GetISCSITargets ¶
func (t Array) GetISCSITargets() (ISCSITargets, error)
func (Array) GetSystemInfo ¶
func (t Array) GetSystemInfo() (*SystemInfo, error)
func (Array) MapDisk ¶
func (t Array) MapDisk(opt MapDiskOptions) (ISCSITargetExtents, error)
func (Array) UnmapDisk ¶
func (t Array) UnmapDisk(opt UnmapDiskOptions) (ISCSITargetExtents, error)
func (Array) UpdateDataset ¶
func (t Array) UpdateDataset(id string, params UpdateDatasetParams) (*Dataset, error)
type CompositeValue ¶
type CompositeValue struct {
Rawvalue string `json:"rawvalue"`
Source *string `json:"source,omitempty"`
Value *string `json:"value,omitempty"`
}
CompositeValue defines model for CompositeValue.
type CreateDatasetParams ¶
type CreateDatasetParams struct {
Aclmode *string `json:"aclmode,omitempty"`
Atime *string `json:"atime,omitempty"`
Casesensitivity *string `json:"casesensitivity,omitempty"`
Comments *string `json:"comments,omitempty"`
Compression *string `json:"compression,omitempty"`
Copies *int `json:"copies,omitempty"`
Deduplication *string `json:"deduplication,omitempty"`
Encryption *bool `json:"encryption,omitempty"`
EncryptionOptions *CreateDatasetParamsEncryptionOptions `json:"encryption_options,omitempty"`
Exec *string `json:"exec,omitempty"`
ForceSize *bool `json:"force_size,omitempty"`
InheritEncryption *bool `json:"inherit_encryption,omitempty"`
Sparse *bool `json:"sparse,omitempty"`
Name string `json:"name"`
Quota *int64 `json:"quota,omitempty"`
QuotaCritical *int64 `json:"quota_critical,omitempty"`
QuotaWarning *int64 `json:"quota_warning,omitempty"`
Readonly *string `json:"readonly,omitempty"`
Recordsize *string `json:"recordsize,omitempty"`
Refquota *int64 `json:"refquota,omitempty"`
RefquotaCritical *int64 `json:"refquota_critical,omitempty"`
RefquotaWarning *int64 `json:"refquota_warning,omitempty"`
Refreservation *int64 `json:"refreservation,omitempty"`
Reservation *int64 `json:"reservation,omitempty"`
Snapdir *string `json:"snapdir,omitempty"`
Sync *string `json:"sync,omitempty"`
Type *string `json:"type,omitempty"`
Volblocksize *string `json:"volblocksize,omitempty"`
Volsize *int64 `json:"volsize,omitempty"`
}
CreateDatasetParams defines model for CreateDatasetParams.
type CreateDatasetParamsEncryptionOptions ¶
type CreateDatasetParamsEncryptionOptions struct {
Algorithm *string `json:"algorithm,omitempty"`
GenerateKey *bool `json:"generate_key,omitempty"`
Key *string `json:"key,omitempty"`
Passphrase *string `json:"passphrase,omitempty"`
}
CreateDatasetParamsEncryptionOptions defines model for CreateDatasetParams_encryption_options.
type CreateISCSIExtentParams ¶
type CreateISCSIExtentParams struct {
Name string `json:"name"`
Type string `json:"type"`
InsecureTPC bool `json:"insecure_tpc"`
Blocksize int `json:"blocksize"`
Disk string `json:"disk"`
}
CreateISCSIExtentParams defines model for CreateISCSIExtentParams.
type CreateISCSIInitiatorParams ¶
type CreateISCSIInitiatorParams struct {
Initiators []string `json:"initiators"`
AuthNetwork []string `json:"auth_network,omitempty"`
Comment string `json:"comment,omitempty"`
}
CreateISCSIInitiatorParams defines model for CreateISCSIInitiatorParams.
type CreateISCSIPortalParams ¶
type CreateISCSIPortalParams struct {
Comment string `json:"comment,omitempty"`
DiscoveryAuthMethod string `json:"discovery_authmethod,omitempty"`
DiscoveryAuthGroup int `json:"discovery_authgroup,omitempty"`
Listen []ISCSIPortalListenIp `json:"listen"`
}
type CreateISCSITargetExtentParams ¶
type CreateISCSITargetExtentParams struct {
Target int `json:"target"`
Extent int `json:"extent"`
LunId *int `json:"lunid"`
}
CreateISCSITargetExtentParams defines model for CreateISCSITargetExtentParams.
type CreateISCSITargetParams ¶
type CreateISCSITargetParams struct {
Name string `json:"name"`
Alias string `json:"alias,omitempty"`
}
CreateISCSITargetParams defines model for CreateISCSITargetParams.
type Dataset ¶
type Dataset struct {
Aclmode *CompositeValue `json:"aclmode,omitempty"`
Acltype *CompositeValue `json:"acltype,omitempty"`
Atime *CompositeValue `json:"atime,omitempty"`
Available *CompositeValue `json:"available,omitempty"`
Casesensitivity *CompositeValue `json:"casesensitivity,omitempty"`
Comments *CompositeValue `json:"comments,omitempty"`
Compression *CompositeValue `json:"compression,omitempty"`
Copies *CompositeValue `json:"copies,omitempty"`
Deduplication *CompositeValue `json:"deduplication,omitempty"`
Encrypted *bool `json:"encrypted,omitempty"`
EncryptionAlgorithm *CompositeValue `json:"encryption_algorithm,omitempty"`
EncryptionRoot *string `json:"encryption_root,omitempty"`
Exec *CompositeValue `json:"exec,omitempty"`
Id string `json:"id"`
KeyFormat *CompositeValue `json:"key_format,omitempty"`
KeyLoaded *bool `json:"key_loaded,omitempty"`
Locked *bool `json:"locked,omitempty"`
Managedby *CompositeValue `json:"managedby,omitempty"`
Mountpoint *string `json:"mountpoint,omitempty"`
Name string `json:"name"`
Origin *CompositeValue `json:"origin,omitempty"`
Pbkdf2iters *CompositeValue `json:"pbkdf2iters,omitempty"`
Pool string `json:"pool"`
Quota *CompositeValue `json:"quota,omitempty"`
QuotaCritical *CompositeValue `json:"quota_critical,omitempty"`
QuotaWarning *CompositeValue `json:"quota_warning,omitempty"`
Readonly *CompositeValue `json:"readonly,omitempty"`
Recordsize *CompositeValue `json:"recordsize,omitempty"`
Refquota *CompositeValue `json:"refquota,omitempty"`
RefquotaCritical *CompositeValue `json:"refquota_critical,omitempty"`
RefquotaWarning *CompositeValue `json:"refquota_warning,omitempty"`
Refreservation *CompositeValue `json:"refreservation,omitempty"`
Reservation *CompositeValue `json:"reservation,omitempty"`
Snapdir *CompositeValue `json:"snapdir,omitempty"`
Sync *CompositeValue `json:"sync,omitempty"`
Type string `json:"type"`
Used *CompositeValue `json:"used,omitempty"`
Volblocksize *CompositeValue `json:"volblocksize,omitempty"`
Volsize *CompositeValue `json:"volsize,omitempty"`
Xattr *CompositeValue `json:"xattr,omitempty"`
}
Dataset defines model for Dataset.
type DelISCSIExtentOptions ¶
type DiskISCSI ¶
type DiskISCSI struct {
Extent *ISCSIExtent `json:"extent,omitempty"`
TargetExtents []ISCSITargetExtent `json:"targetextents,omitempty"`
}
type GetDatasetParams ¶
type GetDatasetParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetDatasetParams defines parameters for GetDataset.
type GetDatasetsParams ¶
type GetDatasetsParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetDatasetsParams defines parameters for GetDatasets.
type GetISCSIExtentsParams ¶
type GetISCSIExtentsParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetISCSIExtentsParams defines parameters for GetISCSIExtents.
type GetISCSIInitiatorsParams ¶
type GetISCSIInitiatorsParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetISCSIInitiatorsParams defines parameters for GetISCSIInitiators.
type GetISCSITargetExtentsParams ¶
type GetISCSITargetExtentsParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetISCSITargetExtentsParams defines parameters for GetISCSITargetExtents.
type GetISCSITargetsParams ¶
type GetISCSITargetsParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetISCSITargetsParams defines parameters for GetISCSITargets.
type GetPoolsParams ¶
type GetPoolsParams struct {
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
Count *bool `form:"count,omitempty" json:"count,omitempty"`
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
}
GetPoolsParams defines parameters for GetPools.
type ISCSIExtent ¶
type ISCSIExtent struct {
Id int `json:"id"`
Name string `json:"name"`
Serial string `json:"serial"`
Type string `json:"type"`
Path string `json:"path"`
Filesize any `json:"filesize"`
Blocksize uint64 `json:"blocksize"`
PBlocksize bool `json:"pblocksize"`
AvailThreshold *uint64 `json:"avail_threshold"`
Comment string `json:"comment"`
NAA string `json:"naa"`
InsecureTPC bool `json:"insecure_tpc"`
Xen bool `json:"xen"`
RPM string `json:"rpm"`
RO bool `json:"ro"`
Enabled bool `json:"enabled"`
Vendor string `json:"vendor"`
Disk string `json:"disk"`
Locked bool `json:"locked"`
}
ISCSIExtent defines model for ISCSIExtent.
{
"id": 218,
"name": "c28_disk_md4",
"serial": "08002734c651217",
"type": "DISK",
"path": "zvol/osvcdata/c28_disk_md4",
"filesize": "0",
"blocksize": 512,
"pblocksize": false,
"avail_threshold": null,
"comment": "",
"naa": "0x6589cfc000000f487531b4688113d131",
"insecure_tpc": true,
"xen": false,
"rpm": "SSD",
"ro": false,
"enabled": true,
"vendor": "TrueNAS",
"disk": "zvol/osvcdata/c28_disk_md4",
"locked": false
}
type ISCSIExtents ¶
type ISCSIExtents []ISCSIExtent
func (ISCSIExtents) GetById ¶
func (t ISCSIExtents) GetById(s int) *ISCSIExtent
func (ISCSIExtents) GetByName ¶
func (t ISCSIExtents) GetByName(name string) *ISCSIExtent
func (ISCSIExtents) GetByPath ¶
func (t ISCSIExtents) GetByPath(s string) *ISCSIExtent
func (ISCSIExtents) WithPath ¶
func (t ISCSIExtents) WithPath(s string) ISCSIExtents
func (ISCSIExtents) WithType ¶
func (t ISCSIExtents) WithType(s string) ISCSIExtents
type ISCSIExtentsResponse ¶
type ISCSIExtentsResponse = []ISCSIExtent
ISCSIExtentsResponse defines model for ISCSIExtentsResponse.
type ISCSIInitiator ¶
type ISCSIInitiator struct {
Id int `json:"id"`
Initiators []string `json:"initiators"`
Comment string `json:"comment"`
}
ISCSIInitiator defines model for ISCSIInitiator.
{
"id": 40,
"initiators": [
"iqn.2009-11.com.opensvc.srv:qau22c13n3.storage.initiator"
],
"auth_network": [],
"comment": ""
}
type ISCSIInitiators ¶
type ISCSIInitiators []ISCSIInitiator
func (ISCSIInitiators) GetById ¶
func (t ISCSIInitiators) GetById(id int) (ISCSIInitiator, bool)
func (ISCSIInitiators) WithName ¶
func (t ISCSIInitiators) WithName(s string) ISCSIInitiators
type ISCSIPortal ¶
type ISCSIPortal struct {
Id int `json:"id,omitempty"`
Comment string `json:"comment,omitempty"`
DiscoveryAuthMethod string `json:"discovery_authmethod,omitempty"`
DiscoveryAuthGroup int `json:"discovery_authgroup,omitempty"`
Listen []ISCSIPortalListenIp `json:"listen"`
}
type ISCSIPortalListenIp ¶
type ISCSITarget ¶
type ISCSITarget struct {
Id int `json:"id"`
Name string `json:"name"`
Alias *string `json:"alias,omitempty"`
Mode string `json:"mode"`
Groups ISCSITargetGroups `json:"groups"`
}
ISCSITarget defines model for ISCSITarget.
{
"id": 79,
"name": "iqn.2009-11.com.opensvc.srv:qau20c26n3.storage.target.1",
"alias": null,
"mode": "ISCSI",
"groups": [
{
"portal": 1,
"initiator": 43,
"auth": null,
"authmethod": "NONE"
}
]
},
type ISCSITargetExtent ¶
type ISCSITargetExtent struct {
Id int `json:"id"`
LunId int `json:"lunid"`
ExtentId int `json:"extent"`
TargetId int `json:"target"`
}
ISCSITargetExtent defines model for ISCSITargetExtent.
{
"id": 1463,
"lunid": 42,
"extent": 211,
"target": 76
}
type ISCSITargetExtents ¶
type ISCSITargetExtents []ISCSITargetExtent
func (ISCSITargetExtents) WithExtent ¶
func (t ISCSITargetExtents) WithExtent(extent ISCSIExtent) ISCSITargetExtents
func (ISCSITargetExtents) WithTarget ¶
func (t ISCSITargetExtents) WithTarget(target ISCSITarget) ISCSITargetExtents
type ISCSITargetGroup ¶
type ISCSITargetGroups ¶
type ISCSITargetGroups []ISCSITargetGroup
type ISCSITargets ¶
type ISCSITargets []ISCSITarget
func (ISCSITargets) GetById ¶
func (t ISCSITargets) GetById(id int) (ISCSITarget, bool)
func (ISCSITargets) GetByName ¶
func (t ISCSITargets) GetByName(name string) (ISCSITarget, bool)
func (ISCSITargets) WithName ¶
func (t ISCSITargets) WithName(s string) ISCSITargets
type ISCSITargetsResponse ¶
type ISCSITargetsResponse = []ISCSITarget
ISCSITargetsResponse defines model for ISCSITargetsResponse.
type MapDiskOptions ¶
type Pool ¶
type Pool struct {
EncryptkeyPath *string `json:"encryptkey_path,omitempty"`
Guid *string `json:"guid,omitempty"`
Healthy *bool `json:"healthy,omitempty"`
Id int `json:"id"`
IsDecrypted *bool `json:"is_decrypted,omitempty"`
Name string `json:"name"`
Path string `json:"path"`
Status *string `json:"status,omitempty"`
}
Pool defines model for Pool.
type SystemInfo ¶
type SystemInfo struct {
Version string `json:"version"` // "TrueNAS-13.0-U2"
Hostname string `json:"hostname"` // "truenas.vdc.opensvc.com"
PhysMem uint64 `json:"physmem"` // 4241022976
Model string `json:"model"` // "Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz"
Cores uint `json:"cores"` // 2
Uptime string `json:"uptime"` // "4 days, 4:59:17.134670"
UptimeSeconds float64 `json:"uptime_seconds"` // 363557.134669586
SystemSerial string `json:"system_serial"` // "0",
SystemProduct string `json:"system_product"` // "VirtualBox"
SystemProductVersion string `json:"system_product_version"` // "1.2"
Timezone string `json:"timezone"` // "Europe/Paris"
SystemManufacturer string `json:"system_manufacturer"` // "innotek GmbH"
LoadAvg [3]float64 `json:"loadavg"` // [0.32470703125, 0.39111328125, 0.3564453125]
}
SystemInfo defines model for GetSystemInfo
type UnmapDiskOptions ¶
type UpdateDatasetParams ¶
type UpdateDatasetParams struct {
Aclmode *string `json:"aclmode,omitempty"`
Atime *string `json:"atime,omitempty"`
Comments *string `json:"comments,omitempty"`
Compression *string `json:"compression,omitempty"`
Copies *int `json:"copies,omitempty"`
Deduplication *string `json:"deduplication,omitempty"`
Exec *string `json:"exec,omitempty"`
ForceSize *bool `json:"force_size,omitempty"`
Quota *int64 `json:"quota,omitempty"`
Readonly *string `json:"readonly,omitempty"`
Recordsize *string `json:"recordsize,omitempty"`
Refquota *int64 `json:"refquota,omitempty"`
Refreservation *int64 `json:"refreservation,omitempty"`
Snapdir *string `json:"snapdir,omitempty"`
Sync *string `json:"sync,omitempty"`
Volsize *int64 `json:"volsize,omitempty"`
}
UpdateDatasetParams defines model for UpdateDatasetParams.
type UpdateISCSITargetParams ¶
type UpdateISCSITargetParams struct {
Name string `json:"name"`
Alias string `json:"alias,omitempty"`
Mode string `json:"mode"`
Groups ISCSITargetGroups `json:"groups,omitempty"`
}
UpdateISCSITargetParams defines model for UpdateISCSITargetParams.