Documentation ¶
Index ¶
- Constants
- Variables
- func AddAssociateParam(req *http.Request, param *AssociateParam) *http.Request
- func AddSearchQuery(req *http.Request, query *SearchQuery) *http.Request
- func EncodeLunName(u uuid.UUID) string
- func EncodeSnapshotName(u uuid.UUID) string
- func ToFilter(param, value string) string
- type AssociateMetaData
- type AssociateParam
- type Client
- func (c *Client) AttachVolume(ctx context.Context, hyperMetroPairID, hostname, iqn string) error
- func (c *Client) CreateHyperMetroPair(ctx context.Context, hyperMetroDomainID string, localLunID, remoteLunID int) (*HyperMetroPair, error)
- func (c *Client) CreateVolumeFromSource(ctx context.Context, name uuid.UUID, capacityGB int, ...) (*HyperMetroPair, error)
- func (c *Client) CreateVolumeRaw(ctx context.Context, name uuid.UUID, capacityGB int, ...) (*HyperMetroPair, error)
- func (c *Client) DeleteHyperMetroPair(ctx context.Context, hyperMetroPairID string) error
- func (c *Client) DeleteVolume(ctx context.Context, hyperMetroPairID string) error
- func (c *Client) DetachVolume(ctx context.Context, hyperMetroPairID string) error
- func (c *Client) ExtendVolume(ctx context.Context, hyperMetroPairID string, newVolumeSizeGb int) error
- func (c *Client) GetHyperMetroDomains(ctx context.Context, query *SearchQuery) ([]HyperMetroDomain, error)
- func (c *Client) GetHyperMetroPair(ctx context.Context, hyperMetroPairID string) (*HyperMetroPair, error)
- func (c *Client) GetHyperMetroPairs(ctx context.Context, query *SearchQuery) ([]HyperMetroPair, error)
- func (c *Client) GetPortalIPAddresses(ctx context.Context, localPortgroupID, remotePortgroupID int) ([]string, error)
- func (c *Client) SetToken() error
- func (c *Client) SuspendHyperMetroPair(ctx context.Context, hyperMetroPairID string) error
- func (c *Client) SyncHyperMetroPair(ctx context.Context, hyperMetroPairID string) error
- type Device
- func (d *Device) ActivateSnapshot(ctx context.Context, snapshotID int) error
- func (d *Device) AssociateHost(ctx context.Context, hostgroupID, hostID int) error
- func (d *Device) AssociateLun(ctx context.Context, lungroupID, lunID int) error
- func (d *Device) AssociateMappingView(ctx context.Context, param AssociateParam) error
- func (d *Device) AttachVolume(ctx context.Context, portgroupName, hostname, iqn string, lunID int) error
- func (d *Device) CreateCloneLUN(ctx context.Context, lunID int, lunName uuid.UUID) (*LUN, error)
- func (d *Device) CreateHost(ctx context.Context, hostname string) (*Host, error)
- func (d *Device) CreateHostGroup(ctx context.Context, hostname string) (*HostGroup, error)
- func (d *Device) CreateHostGroupWithHost(ctx context.Context, hostname string) (*HostGroup, *Host, error)
- func (d *Device) CreateInitiator(ctx context.Context, iqn string) (*Initiator, error)
- func (d *Device) CreateLUN(ctx context.Context, u uuid.UUID, capacityGB int, storagePoolName string) (*LUN, error)
- func (d *Device) CreateLUNCopy(ctx context.Context, sourceLUNID, targetLUNID int) (*LunCopy, error)
- func (d *Device) CreateLUNFromSource(ctx context.Context, sourceLUNID int, name uuid.UUID, capacityGB int, ...) (*LUN, error)
- func (d *Device) CreateLUNFromSourceByLUNClone(ctx context.Context, sourceLUNID int, name uuid.UUID, capacityGB int) (*LUN, error)
- func (d *Device) CreateLUNFromSourceByLUNCopy(ctx context.Context, sourceLUNID int, name uuid.UUID, capacityGB int, ...) (*LUN, error)
- func (d *Device) CreateLUNWithWait(ctx context.Context, u uuid.UUID, capacityGB int, storagePoolName string) (*LUN, error)
- func (d *Device) CreateLunGroup(ctx context.Context, hostname string) (*LunGroup, error)
- func (d *Device) CreateMappingView(ctx context.Context, hostname string) (*MappingView, error)
- func (d *Device) CreateSnapshot(ctx context.Context, lunID int, name uuid.UUID, description string) (*Snapshot, error)
- func (d *Device) CreateSnapshotWithWait(ctx context.Context, lunID int, name uuid.UUID, description string) (*Snapshot, error)
- func (d *Device) DeleteHost(ctx context.Context, hostID int) error
- func (d *Device) DeleteHostGroup(ctx context.Context, hostGroupID int) error
- func (d *Device) DeleteHostGroupWithHost(ctx context.Context, hostgroupID int) error
- func (d *Device) DeleteInitiator(ctx context.Context, iqn string) error
- func (d *Device) DeleteLUN(ctx context.Context, lunID int) error
- func (d *Device) DeleteLUNCopy(ctx context.Context, luncopyID int) error
- func (d *Device) DeleteLunGroup(ctx context.Context, lungroupID int) error
- func (d *Device) DeleteMappingView(ctx context.Context, mappingviewID int) error
- func (d *Device) DeleteSnapshot(ctx context.Context, snapshotID int) error
- func (d *Device) DetachVolume(ctx context.Context, lunID int) error
- func (d *Device) DisAssociateHost(ctx context.Context, hostgroupID, hostID int) error
- func (d *Device) DisAssociateLun(ctx context.Context, lungroupID, lunID int) error
- func (d *Device) DisAssociateMappingView(ctx context.Context, param AssociateParam) error
- func (d *Device) DoMapping(ctx context.Context, mappingview *MappingView, hostgroup *HostGroup, ...) error
- func (d *Device) ExpandLUN(ctx context.Context, lunID int, newLunSizeGb int) error
- func (d *Device) GetAssociateLUNs(ctx context.Context, query *SearchQuery) ([]LUN, error)
- func (d *Device) GetAssociateLunGroups(ctx context.Context, query *SearchQuery) ([]LunGroup, error)
- func (d *Device) GetAssociatedEthernetPort(ctx context.Context, query *SearchQuery) ([]EthernetPort, error)
- func (d *Device) GetHost(ctx context.Context, hostID int) (*Host, error)
- func (d *Device) GetHostAssociatedLUNs(ctx context.Context, hostID int) ([]LUN, error)
- func (d *Device) GetHostGroup(ctx context.Context, hostgroupID int) (*HostGroup, error)
- func (d *Device) GetHostGroupForce(ctx context.Context, hostname string) (*HostGroup, *Host, error)
- func (d *Device) GetHostGroups(ctx context.Context, query *SearchQuery) ([]HostGroup, error)
- func (d *Device) GetHostLUNID(ctx context.Context, lunID, hostID int) (int, error)
- func (d *Device) GetHosts(ctx context.Context, query *SearchQuery) ([]Host, error)
- func (d *Device) GetHyperMetroDomains(ctx context.Context, query *SearchQuery) ([]HyperMetroDomain, error)
- func (d *Device) GetInitiator(ctx context.Context, iqn string) (*Initiator, error)
- func (d *Device) GetInitiatorForce(ctx context.Context, iqn string) (*Initiator, error)
- func (d *Device) GetInitiators(ctx context.Context, query *SearchQuery) ([]Initiator, error)
- func (d *Device) GetLUN(ctx context.Context, lunID int) (*LUN, error)
- func (d *Device) GetLUNCopy(ctx context.Context, lunCopyID int) (*LunCopy, error)
- func (d *Device) GetLUNCopys(ctx context.Context, query *SearchQuery) ([]LunCopy, error)
- func (d *Device) GetLUNs(ctx context.Context, query *SearchQuery) ([]LUN, error)
- func (d *Device) GetLunGroup(ctx context.Context, lungroupID int) (*LunGroup, error)
- func (d *Device) GetLunGroupByLunID(ctx context.Context, lunID int) (*LunGroup, error)
- func (d *Device) GetLunGroupForce(ctx context.Context, hostname string) (*LunGroup, error)
- func (d *Device) GetLunGroups(ctx context.Context, query *SearchQuery) ([]LunGroup, error)
- func (d *Device) GetMappingView(ctx context.Context, mappingviewID int) (*MappingView, error)
- func (d *Device) GetMappingViewForce(ctx context.Context, hostname string) (*MappingView, error)
- func (d *Device) GetMappingViews(ctx context.Context, query *SearchQuery) ([]MappingView, error)
- func (d *Device) GetPortGroup(ctx context.Context, portgroupID int) (*PortGroup, error)
- func (d *Device) GetPortGroups(ctx context.Context, query *SearchQuery) ([]PortGroup, error)
- func (d *Device) GetPortGroupsAssociate(ctx context.Context, mappingviewID int) ([]PortGroup, error)
- func (d *Device) GetPortalIPAddresses(ctx context.Context, portgroupID int) ([]string, error)
- func (d *Device) GetSnapshot(ctx context.Context, snapshotID int) (*Snapshot, error)
- func (d *Device) GetSnapshots(ctx context.Context, query *SearchQuery) ([]Snapshot, error)
- func (d *Device) GetStoragePool(ctx context.Context, storagePoolID int) (*StoragePool, error)
- func (d *Device) GetStoragePools(ctx context.Context, query *SearchQuery) ([]StoragePools, error)
- func (d *Device) GetSystem(ctx context.Context) (*System, error)
- func (d *Device) GetTargetIQNs(ctx context.Context) ([]string, error)
- func (d *Device) GetTargetPort(ctx context.Context, query *SearchQuery) ([]TargetPort, error)
- func (d *Device) IsAddToMappingViewPortGroup(ctx context.Context, mappingViewID, portgroupID int) (bool, error)
- func (d *Device) SplitCloneLUN(ctx context.Context, cloneLUNID int) error
- func (d *Device) StartLUNCopy(ctx context.Context, luncopyID int) error
- func (d *Device) StartLUNCopyWithWait(ctx context.Context, luncopyID int, timeoutCount int) error
- func (d *Device) StopSnapshot(ctx context.Context, snapshotID int) error
- func (d *Device) UpdateInitiator(ctx context.Context, iqn string, initiatorParam UpdateInitiatorParam) (*Initiator, error)
- type ErrorResp
- type EthernetPort
- type Host
- type HostGroup
- type HyperMetroDomain
- type HyperMetroPair
- type HyperMetroPairParam
- type Initiator
- type LUN
- type LunCopy
- type LunGroup
- type MappingView
- type ParamCreateCloneLUN
- type ParamCreateLUN
- type PortGroup
- type Result
- type SearchQuery
- type Session
- type Snapshot
- type StoragePool
- type StoragePools
- type System
- type TargetPort
- type TimeConversion
- type UpdateInitiatorParam
Constants ¶
const ( CapacityUnit = 1024 * 1024 * 2 // 2 is hypermetro capacity NOTE(whywaita): honnmani? MaxNameLength = 31 DefaultDeviceID = "xx" )
this const value drip by https://github.com/Huawei/OpenStack_Driver/blob/master/Cinder/Queens/constants.py
const ( TypeHost = 21 TypeHostGroup = 14 TypeLUN = 11 TypeLUNGroup = 256 TypeLUNCopy = 219 TypeSnapshot = 27 TypePortGroup = 257 TypeInitiator = 222 TypeMappingView = 245 TypeEthernetPort = 213 TypeHyperMetroPair = 15361 TypeHyperMetroDomain = 15362 )
Object Type Numbers
const ( StatusNormal = 1 StatusSynchronizing = 23 StatusInvalid = 35 StatusPause = 41 StatusForcedStart = 93 StatusToBeSynchronized = 100 )
For HyperMetroPair RUNNINGSTATUS
const ( StatusVolumeReady = 27 StatusLunCopyReady = 40 StatusSnapshotActive = 43 StatusSnapshotInactive = 45 )
For a some RUNNNINGSTATUS
const ( ErrorCodeUnAuthorized = -401 ErrorCodeUserIsOffline = 1077949069 )
Dorado return Error Codes
const (
StatusHealth = 1
)
For HEALTHSTATUS status
Variables ¶
var ( ErrEthernetPortNotFound = errors.New("ethernet port is not found") ErrHostNotFound = errors.New("host is not found") ErrHostGroupNotFound = errors.New("host group is not found") ErrHyperMetroDomainNotFound = errors.New("HyperMetroDomain ID is not found") ErrHyperMetroPairNotFound = errors.New("HyperMetroPair is not found") ErrInitiatorNotFound = errors.New("initiator is not found") ErrLunNotFound = errors.New("LUN is not found") ErrLunGroupNotFound = errors.New("LUN Group is not found") ErrLunCopyNotFound = errors.New("LUN Copy is not found") ErrMappingViewNotFound = errors.New("mapping view is not found") ErrPortGroupNotFound = errors.New("port group is not found") ErrSnapshotNotFound = errors.New("snapshot is not found") ErrStoragePoolNotFound = errors.New("storage pool is not found") ErrTargetPortNotFound = errors.New("target port is not found") ErrUnAuthorized = errors.New("failed to authorized token") ErrTimeoutWait = errors.New("timeout to wait") // parent Error ErrCreateRequest = "failed to create request" ErrHTTPRequestDo = "failed to HTTP request" ErrDecodeBody = "failed to decodeBody" ErrCreatePostValue = "failed to create post value" ErrRequestWithRetry = "failed to request with retry" )
Error Values
var ( DefaultCopyTimeoutSecond = 180 DefaultHTTPRetryCount = 10 )
Default values
var PrefixVolumeDescription = "volume-"
PrefixVolumeDescription is prefix of volume Description
Functions ¶
func AddAssociateParam ¶
func AddAssociateParam(req *http.Request, param *AssociateParam) *http.Request
AddAssociateParam add AssociateParam to http.Request
func AddSearchQuery ¶
func AddSearchQuery(req *http.Request, query *SearchQuery) *http.Request
AddSearchQuery add url parameter by SearchQuery
func EncodeSnapshotName ¶
EncodeSnapshotName encode compatible name
Types ¶
type AssociateMetaData ¶
type AssociateMetaData struct {
HostLUNID int `json:"HostLUNID"`
}
AssociateMetaData is one of LUN parameter
type AssociateParam ¶
type AssociateParam struct { ID string `json:"ID,omitempty"` TYPE string `json:"TYPE,omitempty"` ASSOCIATEOBJID string `json:"ASSOCIATEOBJID,omitempty"` ASSOCIATEOBJTYPE int `json:"ASSOCIATEOBJTYPE,omitempty"` }
AssociateParam is parameter of associate functions
type Client ¶
type Client struct { LocalDevice *Device RemoteDevice *Device PortGroupName string Logger *log.Logger }
Client is client for go-dorado-sdk
func NewClient ¶
func NewClient(localIPs, remoteIPs []string, username, password, portgroupName string, logger *log.Logger) (*Client, error)
NewClient create go-dorado-sdk client and set iBaseToken create by REST API.
func NewClientDefaultToken ¶
func NewClientDefaultToken(localIPs, remoteIPs []string, username, password, portgroupName string, logger *log.Logger) (*Client, error)
NewClientDefaultToken create go-dorado-sdk client. this function not call REST API.
func (*Client) AttachVolume ¶
AttachVolume create mapping to host
func (*Client) CreateHyperMetroPair ¶
func (c *Client) CreateHyperMetroPair(ctx context.Context, hyperMetroDomainID string, localLunID, remoteLunID int) (*HyperMetroPair, error)
CreateHyperMetroPair create HyperMetroPair.
func (*Client) CreateVolumeFromSource ¶
func (c *Client) CreateVolumeFromSource(ctx context.Context, name uuid.UUID, capacityGB int, storagePoolName, hyperMetroDomainID string, sourceHyperMetroPairID string) (*HyperMetroPair, error)
CreateVolumeFromSource create HyperMetroPair to copy from sourceHyperMetroPairID
func (*Client) CreateVolumeRaw ¶
func (c *Client) CreateVolumeRaw(ctx context.Context, name uuid.UUID, capacityGB int, storagePoolName, hyperMetroDomainID string) (*HyperMetroPair, error)
CreateVolumeRaw create blank HyperMetroPair
func (*Client) DeleteHyperMetroPair ¶
DeleteHyperMetroPair delete HyperMetroPair. must be suspend HyperMetro Pair before call this method.
func (*Client) DeleteVolume ¶
DeleteVolume delete HyperMetroPair
func (*Client) DetachVolume ¶
DetachVolume delete mapping from host
func (*Client) ExtendVolume ¶
func (c *Client) ExtendVolume(ctx context.Context, hyperMetroPairID string, newVolumeSizeGb int) error
ExtendVolume expand HyperMetroPair
func (*Client) GetHyperMetroDomains ¶
func (c *Client) GetHyperMetroDomains(ctx context.Context, query *SearchQuery) ([]HyperMetroDomain, error)
GetHyperMetroDomains get HyperMetroDomain objects.
func (*Client) GetHyperMetroPair ¶
func (c *Client) GetHyperMetroPair(ctx context.Context, hyperMetroPairID string) (*HyperMetroPair, error)
GetHyperMetroPair get HyperMetro object by id
func (*Client) GetHyperMetroPairs ¶
func (c *Client) GetHyperMetroPairs(ctx context.Context, query *SearchQuery) ([]HyperMetroPair, error)
GetHyperMetroPairs get HyperMetro objects by query
func (*Client) GetPortalIPAddresses ¶
func (c *Client) GetPortalIPAddresses(ctx context.Context, localPortgroupID, remotePortgroupID int) ([]string, error)
GetPortalIPAddresses is dorado.Client version of dorado.Device.GetPortalIPAddresses.
func (*Client) SuspendHyperMetroPair ¶
SuspendHyperMetroPair suspend HyperMetro sync.
type Device ¶
type Device struct { Controllers []*url.URL URL *url.URL HTTPClient *http.Client DeviceID string Token string Jar *cookiejar.Jar Logger *log.Logger Username string Password string }
Device is device of dorado
func (*Device) ActivateSnapshot ¶
ActivateSnapshot activate snapshot
func (*Device) AssociateHost ¶
AssociateHost associate hostID to hostgroupID.
func (*Device) AssociateLun ¶
AssociateLun associate lun to lun group
func (*Device) AssociateMappingView ¶
func (d *Device) AssociateMappingView(ctx context.Context, param AssociateParam) error
AssociateMappingView associate object to mapping view
func (*Device) AttachVolume ¶
func (d *Device) AttachVolume(ctx context.Context, portgroupName, hostname, iqn string, lunID int) error
AttachVolume create mapping to host in device
func (*Device) CreateCloneLUN ¶
CreateCloneLUN create clone LUN
func (*Device) CreateHost ¶
CreateHost create host object.
func (*Device) CreateHostGroup ¶
CreateHostGroup create hostgroup object.
func (*Device) CreateHostGroupWithHost ¶
func (d *Device) CreateHostGroupWithHost(ctx context.Context, hostname string) (*HostGroup, *Host, error)
CreateHostGroupWithHost create hostgroup object and host (same name) object and associate host.
func (*Device) CreateInitiator ¶
CreateInitiator create initiator.
func (*Device) CreateLUN ¶
func (d *Device) CreateLUN(ctx context.Context, u uuid.UUID, capacityGB int, storagePoolName string) (*LUN, error)
CreateLUN create lun object
func (*Device) CreateLUNCopy ¶
CreateLUNCopy create lun copy definition of source to target lun
func (*Device) CreateLUNFromSource ¶
func (d *Device) CreateLUNFromSource(ctx context.Context, sourceLUNID int, name uuid.UUID, capacityGB int, storagePoolName string) (*LUN, error)
CreateLUNFromSource create lun from source lun low level function for CreateVolumeFromSource
func (*Device) CreateLUNFromSourceByLUNClone ¶
func (d *Device) CreateLUNFromSourceByLUNClone(ctx context.Context, sourceLUNID int, name uuid.UUID, capacityGB int) (*LUN, error)
CreateLUNFromSourceByLUNClone create lun from source lun by LUN Clone.
func (*Device) CreateLUNFromSourceByLUNCopy ¶
func (d *Device) CreateLUNFromSourceByLUNCopy(ctx context.Context, sourceLUNID int, name uuid.UUID, capacityGB int, storagePoolName string) (*LUN, error)
CreateLUNFromSourceByLUNCopy create lun from source lun by LUN Copy.
func (*Device) CreateLUNWithWait ¶
func (d *Device) CreateLUNWithWait(ctx context.Context, u uuid.UUID, capacityGB int, storagePoolName string) (*LUN, error)
CreateLUNWithWait create LUN and waiting ready
func (*Device) CreateLunGroup ¶
CreateLunGroup create lun group Host : HostGroup : LunGroup is 1:1:1. lun group will create the same name as a host.
func (*Device) CreateMappingView ¶
CreateMappingView create mapping view object
func (*Device) CreateSnapshot ¶
func (d *Device) CreateSnapshot(ctx context.Context, lunID int, name uuid.UUID, description string) (*Snapshot, error)
CreateSnapshot create object of snapshot
func (*Device) CreateSnapshotWithWait ¶
func (d *Device) CreateSnapshotWithWait(ctx context.Context, lunID int, name uuid.UUID, description string) (*Snapshot, error)
CreateSnapshotWithWait create snapshot and waiting ready
func (*Device) DeleteHost ¶
DeleteHost delete host object.
func (*Device) DeleteHostGroup ¶
DeleteHostGroup delete hostgroup object.
func (*Device) DeleteHostGroupWithHost ¶
DeleteHostGroupWithHost delete hostgroup object and host (same name) object.
func (*Device) DeleteInitiator ¶
DeleteInitiator delete initiator.
func (*Device) DeleteLUNCopy ¶
DeleteLUNCopy delete lun copy object
func (*Device) DeleteLunGroup ¶
DeleteLunGroup delete lun group
func (*Device) DeleteMappingView ¶
DeleteMappingView delete mapping view object
func (*Device) DeleteSnapshot ¶
DeleteSnapshot delete snapshot
func (*Device) DetachVolume ¶
DetachVolume delete mapping from host in device
func (*Device) DisAssociateHost ¶
DisAssociateHost delete associate hostID from hostgroupID.
func (*Device) DisAssociateLun ¶
DisAssociateLun dis associate lun from lun group
func (*Device) DisAssociateMappingView ¶
func (d *Device) DisAssociateMappingView(ctx context.Context, param AssociateParam) error
DisAssociateMappingView disassociate object from mapping view
func (*Device) DoMapping ¶
func (d *Device) DoMapping(ctx context.Context, mappingview *MappingView, hostgroup *HostGroup, lungroup *LunGroup, portgroupID int) error
DoMapping do mapping hostgroup/lungroup/portgroup to mappingview id
func (*Device) GetAssociateLUNs ¶
GetAssociateLUNs get lun objects that associated object (ex: host)
func (*Device) GetAssociateLunGroups ¶
GetAssociateLunGroups get associated lun group by query
func (*Device) GetAssociatedEthernetPort ¶
func (d *Device) GetAssociatedEthernetPort(ctx context.Context, query *SearchQuery) ([]EthernetPort, error)
GetAssociatedEthernetPort get ethernet port associated ASSOCIATEOBJID (maybe port group). you must set ASSOCIATEOBJID and ASSOCIATEOBJTYPE. we recommend use dorado.GetPortalIPAddresses().
func (*Device) GetHostAssociatedLUNs ¶
GetHostAssociatedLUNs get LUNs associated specific host
func (*Device) GetHostGroup ¶
GetHostGroup get hostgroup object by id.
func (*Device) GetHostGroupForce ¶
GetHostGroupForce get hostgroup object and host object. create hostgroup and host object if not exists.
func (*Device) GetHostGroups ¶
GetHostGroups get hostgroup objects by query.
func (*Device) GetHostLUNID ¶
GetHostLUNID get LUN ID per host.
func (*Device) GetHyperMetroDomains ¶
func (d *Device) GetHyperMetroDomains(ctx context.Context, query *SearchQuery) ([]HyperMetroDomain, error)
GetHyperMetroDomains get HyperMetroDomain objects in device.
func (*Device) GetInitiator ¶
GetInitiator get initiator by id.
func (*Device) GetInitiatorForce ¶
GetInitiatorForce get initiator and create initiator if not exists.
func (*Device) GetInitiators ¶
GetInitiators search initiators. you must use encodeIqn when to search iqn. ex: initiators, err := d.GetInitiators(ctx, NewSearchQueryId(encodeIqn(iqn)))
func (*Device) GetLUNCopy ¶
GetLUNCopy get lun copy by id
func (*Device) GetLUNCopys ¶
GetLUNCopys get lun copy objects by query
func (*Device) GetLunGroup ¶
GetLunGroup get lun group by id
func (*Device) GetLunGroupByLunID ¶
GetLunGroupByLunID get associated lun group by lun id.
func (*Device) GetLunGroupForce ¶
GetLunGroupForce get lun group, and create lun group if not exist.
func (*Device) GetLunGroups ¶
GetLunGroups get lun groups by query
func (*Device) GetMappingView ¶
GetMappingView get mapping view object by id
func (*Device) GetMappingViewForce ¶
GetMappingViewForce get mapping view object and create if not exist
func (*Device) GetMappingViews ¶
func (d *Device) GetMappingViews(ctx context.Context, query *SearchQuery) ([]MappingView, error)
GetMappingViews get mapping view objects by query
func (*Device) GetPortGroup ¶
GetPortGroup get port group by id
func (*Device) GetPortGroups ¶
GetPortGroups get port groups by query
func (*Device) GetPortGroupsAssociate ¶
func (d *Device) GetPortGroupsAssociate(ctx context.Context, mappingviewID int) ([]PortGroup, error)
GetPortGroupsAssociate get port group that associated by mapping view id
func (*Device) GetPortalIPAddresses ¶
GetPortalIPAddresses get iSCSI portal IP addresses that associated port group. return only IPv4 address.
func (*Device) GetSnapshot ¶
GetSnapshot get snapshot by id
func (*Device) GetSnapshots ¶
GetSnapshots get snapshots by query
func (*Device) GetStoragePool ¶
GetStoragePool get storage pool by id
func (*Device) GetStoragePools ¶
func (d *Device) GetStoragePools(ctx context.Context, query *SearchQuery) ([]StoragePools, error)
GetStoragePools get storage pools by query
func (*Device) GetTargetIQNs ¶
GetTargetIQNs get target IQN
func (*Device) GetTargetPort ¶
func (d *Device) GetTargetPort(ctx context.Context, query *SearchQuery) ([]TargetPort, error)
GetTargetPort get target ports by query
func (*Device) IsAddToMappingViewPortGroup ¶
func (d *Device) IsAddToMappingViewPortGroup(ctx context.Context, mappingViewID, portgroupID int) (bool, error)
IsAddToMappingViewPortGroup check to associated mapping view
func (*Device) SplitCloneLUN ¶
SplitCloneLUN start to split LUN Clone
func (*Device) StartLUNCopy ¶
StartLUNCopy start to copy lun
func (*Device) StartLUNCopyWithWait ¶
StartLUNCopyWithWait start luncopy and wait to copy
func (*Device) StopSnapshot ¶
StopSnapshot stop snapshot
func (*Device) UpdateInitiator ¶
func (d *Device) UpdateInitiator(ctx context.Context, iqn string, initiatorParam UpdateInitiatorParam) (*Initiator, error)
UpdateInitiator update initiator information.
type ErrorResp ¶
type ErrorResp struct { Code int `json:"code"` Description string `json:"description"` Suggestion string `json:"suggestion"` }
ErrorResp is error response of REST API
type EthernetPort ¶
type EthernetPort struct { BONDID string `json:"BONDID"` BONDNAME string `json:"BONDNAME"` ERRORPACKETS string `json:"ERRORPACKETS"` ETHDUPLEX string `json:"ETHDUPLEX"` ETHNEGOTIATE string `json:"ETHNEGOTIATE"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID string `json:"ID"` INIORTGT string `json:"INIORTGT"` IPV4ADDR string `json:"IPV4ADDR"` IPV4GATEWAY string `json:"IPV4GATEWAY"` IPV4MASK string `json:"IPV4MASK"` IPV6ADDR string `json:"IPV6ADDR"` IPV6GATEWAY string `json:"IPV6GATEWAY"` IPV6MASK string `json:"IPV6MASK"` ISCSINAME string `json:"ISCSINAME"` ISCSITCPPORT string `json:"ISCSITCPPORT"` LOCATION string `json:"LOCATION"` LOGICTYPE string `json:"LOGICTYPE"` LOSTPACKETS string `json:"LOSTPACKETS"` MACADDRESS string `json:"MACADDRESS"` MTU string `json:"MTU"` NAME string `json:"NAME"` OVERFLOWEDPACKETS string `json:"OVERFLOWEDPACKETS"` OWNINGCONTROLLER string `json:"OWNINGCONTROLLER"` PARENTID string `json:"PARENTID"` PARENTTYPE int `json:"PARENTTYPE"` PORTSWITCH string `json:"PORTSWITCH"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SHARETYPE string `json:"SHARETYPE"` SPEED string `json:"SPEED"` STARTTIME string `json:"STARTTIME"` TYPE int `json:"TYPE"` CrcErrors string `json:"crcErrors"` DswID string `json:"dswId"` DswLinkRight string `json:"dswLinkRight"` FrameErrors string `json:"frameErrors"` FrameLengthErrors string `json:"frameLengthErrors"` LightStatus string `json:"lightStatus"` MaxSpeed string `json:"maxSpeed"` NumberOfInitiators string `json:"numberOfInitiators"` SelectType string `json:"selectType"` WorkModeList string `json:"workModeList"` WorkModeType string `json:"workModeType"` ZoneID string `json:"zoneId"` }
EthernetPort is type definition
type Host ¶
type Host struct { DESCRIPTION string `json:"DESCRIPTION"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID int `json:"ID,string"` INITIATORNUM string `json:"INITIATORNUM"` IP string `json:"IP"` ISADD2HOSTGROUP bool `json:"ISADD2HOSTGROUP,string"` LOCATION string `json:"LOCATION"` MODEL string `json:"MODEL"` NAME string `json:"NAME"` NETWORKNAME string `json:"NETWORKNAME"` OPERATIONSYSTEM string `json:"OPERATIONSYSTEM"` PARENTID string `json:"PARENTID"` PARENTNAME string `json:"PARENTNAME"` PARENTTYPE int `json:"PARENTTYPE"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` TYPE int `json:"TYPE"` }
Host is object of hypervisor (a.k.a. compute node) in dorado.
type HostGroup ¶
type HostGroup struct { DESCRIPTION string `json:"DESCRIPTION"` ID int `json:"ID,string"` ISADD2MAPPINGVIEW bool `json:"ISADD2MAPPINGVIEW,string"` NAME string `json:"NAME"` TYPE int `json:"TYPE"` }
HostGroup is object of multiple host. storage - host mapping must have a host group. host group has only one host under our usage.
type HyperMetroDomain ¶
type HyperMetroDomain struct { CPSID string `json:"CPSID"` CPSNAME string `json:"CPSNAME"` CPTYPE string `json:"CPTYPE"` DESCRIPTION string `json:"DESCRIPTION"` DOMAINTYPE string `json:"DOMAINTYPE"` ID string `json:"ID"` NAME string `json:"NAME"` REMOTEDEVICES string `json:"REMOTEDEVICES"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` STANDBYCPSID string `json:"STANDBYCPSID"` STANDBYCPSNAME string `json:"STANDBYCPSNAME"` TYPE int `json:"TYPE"` }
HyperMetroDomain is domain of HyperMetro
type HyperMetroPair ¶
type HyperMetroPair struct { CAPACITYBYTE string `json:"CAPACITYBYTE"` CGID string `json:"CGID"` CGNAME string `json:"CGNAME"` DOMAINID string `json:"DOMAINID"` DOMAINNAME string `json:"DOMAINNAME"` ENDTIME string `json:"ENDTIME"` HCRESOURCETYPE string `json:"HCRESOURCETYPE"` HDRINGID string `json:"HDRINGID"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID string `json:"ID"` ISINCG string `json:"ISINCG"` ISISOLATION string `json:"ISISOLATION"` ISISOLATIONTHRESHOLDTIME string `json:"ISISOLATIONTHRESHOLDTIME"` ISPRIMARY string `json:"ISPRIMARY"` LINKSTATUS string `json:"LINKSTATUS"` LOCALDATASTATE string `json:"LOCALDATASTATE"` LOCALHOSTACCESSSTATE string `json:"LOCALHOSTACCESSSTATE"` LOCALOBJID int `json:"LOCALOBJID,string"` LOCALOBJNAME string `json:"LOCALOBJNAME"` RECOVERYPOLICY string `json:"RECOVERYPOLICY"` REMOTEDATASTATE string `json:"REMOTEDATASTATE"` REMOTEHOSTACCESSSTATE string `json:"REMOTEHOSTACCESSSTATE"` REMOTEOBJID int `json:"REMOTEOBJID,string"` REMOTEOBJNAME string `json:"REMOTEOBJNAME"` RESOURCEWWN string `json:"RESOURCEWWN"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SPEED string `json:"SPEED"` STARTTIME string `json:"STARTTIME"` SYNCDIRECTION string `json:"SYNCDIRECTION"` SYNCLEFTTIME string `json:"SYNCLEFTTIME"` SYNCPROGRESS string `json:"SYNCPROGRESS"` TYPE int `json:"TYPE"` WRITESECONDARYTIMEOUT string `json:"WRITESECONDARYTIMEOUT"` }
HyperMetroPair is object of LUN (synced by HyperMetro)
type HyperMetroPairParam ¶
type HyperMetroPairParam struct { RECONVERYPOLICY string `json:"RECONVERYPOLICY"` DOMAINID string `json:"DOMAINID"` SPEED int `json:"SPEED"` HCRESOURCETYPE string `json:"HCRESOURCETYPE"` REMOTEOBJID string `json:"REMOTEOBJID"` LOCALOBJID string `json:"LOCALOBJID"` ISFIRSTSYNC bool `json:"ISFIRSTSYNC"` }
HyperMetroPairParam is parameter of CreateHyperMetroPair
type Initiator ¶
type Initiator struct { FAILOVERMODE string `json:"FAILOVERMODE"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID string `json:"ID"` // = IQN ISFREE string `json:"ISFREE"` MULTIPATHTYPE string `json:"MULTIPATHTYPE"` OPERATIONSYSTEM string `json:"OPERATIONSYSTEM"` PATHTYPE string `json:"PATHTYPE"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SPECIALMODETYPE string `json:"SPECIALMODETYPE"` TYPE int `json:"TYPE"` USECHAP string `json:"USECHAP"` PARENTID string `json:"PARENTID,omitempty"` PARENTNAME string `json:"PARENTNAME,omitempty"` PARENTTYPE int `json:"PARENTTYPE,omitempty"` }
Initiator is iSCSI initiator
type LUN ¶
type LUN struct { ALLOCCAPACITY string `json:"ALLOCCAPACITY"` ALLOCTYPE string `json:"ALLOCTYPE"` ASSOCIATEMETADATA string `json:"ASSOCIATEMETADATA"` CAPABILITY string `json:"CAPABILITY"` CAPACITY int `json:"CAPACITY,string"` CAPACITYALARMLEVEL string `json:"CAPACITYALARMLEVEL"` CLONEIDS string `json:"CLONEIDS"` COMPRESSION string `json:"COMPRESSION"` COMPRESSIONSAVEDCAPACITY string `json:"COMPRESSIONSAVEDCAPACITY"` COMPRESSIONSAVEDRATIO string `json:"COMPRESSIONSAVEDRATIO"` DEDUPSAVEDCAPACITY string `json:"DEDUPSAVEDCAPACITY"` DEDUPSAVEDRATIO string `json:"DEDUPSAVEDRATIO"` DESCRIPTION string `json:"DESCRIPTION"` DRSENABLE string `json:"DRS_ENABLE"` ENABLECOMPRESSION string `json:"ENABLECOMPRESSION"` ENABLEISCSITHINLUNTHRESHOLD string `json:"ENABLEISCSITHINLUNTHRESHOLD"` ENABLESMARTDEDUP string `json:"ENABLESMARTDEDUP"` EXPOSEDTOINITIATOR string `json:"EXPOSEDTOINITIATOR"` EXTENDIFSWITCH string `json:"EXTENDIFSWITCH"` HEALTHSTATUS string `json:"HEALTHSTATUS"` HYPERCDPSCHEDULEDISABLE string `json:"HYPERCDPSCHEDULEDISABLE"` ID int `json:"ID,string"` IOCLASSID string `json:"IOCLASSID"` IOPRIORITY string `json:"IOPRIORITY"` ISADD2LUNGROUP bool `json:"ISADD2LUNGROUP,string"` ISCHECKZEROPAGE string `json:"ISCHECKZEROPAGE"` ISCLONE bool `json:"ISCLONE,string"` ISCSITHINLUNTHRESHOLD string `json:"ISCSITHINLUNTHRESHOLD"` LUNCOPYIDS string `json:"LUNCOPYIDS"` LUNMigrationOrigin string `json:"LUNMigrationOrigin"` MIRRORPOLICY string `json:"MIRRORPOLICY"` MIRRORTYPE string `json:"MIRRORTYPE"` NAME string `json:"NAME"` OWNINGCONTROLLER string `json:"OWNINGCONTROLLER"` PARENTID int `json:"PARENTID,string"` PARENTNAME string `json:"PARENTNAME"` PREFETCHPOLICY string `json:"PREFETCHPOLICY"` PREFETCHVALUE string `json:"PREFETCHVALUE"` REMOTELUNID string `json:"REMOTELUNID"` REMOTEREPLICATIONIDS string `json:"REMOTEREPLICATIONIDS"` REPLICATIONCAPACITY string `json:"REPLICATION_CAPACITY"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` RUNNINGWRITEPOLICY string `json:"RUNNINGWRITEPOLICY"` SECTORSIZE string `json:"SECTORSIZE"` SNAPSHOTIDS string `json:"SNAPSHOTIDS"` SNAPSHOTSCHEDULEID string `json:"SNAPSHOTSCHEDULEID"` SUBTYPE string `json:"SUBTYPE"` THINCAPACITYUSAGE string `json:"THINCAPACITYUSAGE"` TOTALSAVEDCAPACITY string `json:"TOTALSAVEDCAPACITY"` TOTALSAVEDRATIO string `json:"TOTALSAVEDRATIO"` TYPE int `json:"TYPE"` USAGETYPE string `json:"USAGETYPE"` WORKINGCONTROLLER string `json:"WORKINGCONTROLLER"` WORKLOADTYPEID string `json:"WORKLOADTYPEID"` WORKLOADTYPENAME string `json:"WORKLOADTYPENAME"` WRITEPOLICY string `json:"WRITEPOLICY"` WWN string `json:"WWN"` HyperCdpScheduleID string `json:"hyperCdpScheduleId"` LunCgID string `json:"lunCgId"` RemoteLunWwn string `json:"remoteLunWwn"` TakeOverLunWwn string `json:"takeOverLunWwn"` }
LUN is raw block storage object.
type LunCopy ¶
type LunCopy struct { BASELUN string `json:"BASELUN"` COPYPROGRESS string `json:"COPYPROGRESS"` COPYSPEED string `json:"COPYSPEED"` COPYSTARTTIME string `json:"COPYSTARTTIME"` COPYSTOPTIME string `json:"COPYSTOPTIME"` DESCRIPTION string `json:"DESCRIPTION"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID int `json:"ID,string"` LUNCOPYTYPE string `json:"LUNCOPYTYPE"` NAME string `json:"NAME"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SOURCELUN string `json:"SOURCELUN"` SOURCELUNCAPACITY string `json:"SOURCELUNCAPACITY"` SOURCELUNCAPACITYBYTE string `json:"SOURCELUNCAPACITYBYTE"` SOURCELUNNAME string `json:"SOURCELUNNAME"` SOURCELUNWWN string `json:"SOURCELUNWWN"` SUBTYPE string `json:"SUBTYPE"` TARGETLUN string `json:"TARGETLUN"` TYPE int `json:"TYPE"` }
LunCopy is copy object for lun
type LunGroup ¶
type LunGroup struct { CAPCITY string `json:"CAPCITY"` DESCRIPTION string `json:"DESCRIPTION"` ID int `json:"ID,string"` ISADD2MAPPINGVIEW bool `json:"ISADD2MAPPINGVIEW,string"` NAME string `json:"NAME"` SMARTQOSPOLICYID string `json:"SMARTQOSPOLICYID"` TYPE int `json:"TYPE"` ASSOCIATELUNIDLIST string `json:"ASSOCIATELUNIDLIST"` }
LunGroup is group of LUN
type MappingView ¶
type MappingView struct { DESCRIPTION string `json:"DESCRIPTION"` ENABLEINBANDCOMMAND bool `json:"ENABLEINBANDCOMMAND,string"` ID int `json:"ID,string"` INBANDLUNWWN string `json:"INBANDLUNWWN"` NAME string `json:"NAME"` TYPE int `json:"TYPE"` }
MappingView is mapping object for lun
type ParamCreateCloneLUN ¶
type ParamCreateCloneLUN struct { NAME string `json:"NAME"` CLONESOURCEID int `json:"CLONESOURCEID"` ISCLONE bool `json:"ISCLONE"` }
ParamCreateCloneLUN is parameter for CreateCloneLUN
type ParamCreateLUN ¶
type ParamCreateLUN struct { WRITEPOLICY string `json:"WRITEPOLICY"` PREFETCHVALUE string `json:"PREFETCHVALUE"` ALLOCTYPE int `json:"ALLOCTYPE"` PARENTID string `json:"PARENTID"` MIRRORPOLICY string `json:"MIRRORPOLICY"` DATATRANSFERPOLICY string `json:"DATATRANSFERPOLICY"` DESCRIPTION string `json:"DESCRIPTION"` CAPACITY int `json:"CAPACITY"` NAME string `json:"NAME"` WORKLOADTYPEID string `json:"WORKLOADTYPEID"` PREFETCHPOLICY string `json:"PREFETCHPOLICY"` }
ParamCreateLUN is parameter for CreateLUN
type PortGroup ¶
type PortGroup struct { DESCRIPTION string `json:"DESCRIPTION"` ID int `json:"ID,string"` NAME string `json:"NAME"` TYPE int `json:"TYPE"` }
PortGroup is group of Port (ex Ethernet, FiberChannel...)
type Result ¶
type Result struct { Data interface{} `json:"data"` Error ErrorResp `json:"error"` }
Result is response of REST API
type SearchQuery ¶
type SearchQuery struct { Filter string Range string AssociateObjType string AssociateObjID string Type string // contains filtered or unexported fields }
SearchQuery is query struct for search function
func NewSearchQueryHostname ¶
func NewSearchQueryHostname(hostname string) *SearchQuery
NewSearchQueryHostname create hostname filter SearchQuery
func NewSearchQueryID ¶
func NewSearchQueryID(id string) *SearchQuery
NewSearchQueryID create ID filter SearchQuery
func NewSearchQueryName ¶
func NewSearchQueryName(name string) *SearchQuery
NewSearchQueryName create name filter SearchQuery
type Snapshot ¶
type Snapshot struct { CASCADEDLEVEL string `json:"CASCADEDLEVEL"` CASCADEDNUM string `json:"CASCADEDNUM"` CONSUMEDCAPACITY string `json:"CONSUMEDCAPACITY"` DESCRIPTION string `json:"DESCRIPTION"` EXPOSEDTOINITIATOR string `json:"EXPOSEDTOINITIATOR"` HEALTHSTATUS string `json:"HEALTHSTATUS"` HYPERCOPYIDS string `json:"HYPERCOPYIDS"` ID int `json:"ID,string"` IOCLASSID string `json:"IOCLASSID"` IOPRIORITY string `json:"IOPRIORITY"` ISSCHEDULEDSNAP string `json:"ISSCHEDULEDSNAP"` NAME string `json:"NAME"` PARENTID int `json:"PARENTID,string"` PARENTNAME string `json:"PARENTNAME"` PARENTTYPE int `json:"PARENTTYPE"` ROLLBACKENDTIME string `json:"ROLLBACKENDTIME"` ROLLBACKRATE string `json:"ROLLBACKRATE"` ROLLBACKSPEED string `json:"ROLLBACKSPEED"` ROLLBACKSTARTTIME string `json:"ROLLBACKSTARTTIME"` ROLLBACKTARGETOBJID string `json:"ROLLBACKTARGETOBJID"` ROLLBACKTARGETOBJNAME string `json:"ROLLBACKTARGETOBJNAME"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SOURCELUNCAPACITY string `json:"SOURCELUNCAPACITY"` SOURCELUNID string `json:"SOURCELUNID"` SOURCELUNNAME string `json:"SOURCELUNNAME"` SUBTYPE string `json:"SUBTYPE"` TIMESTAMP string `json:"TIMESTAMP"` TYPE int `json:"TYPE"` USERCAPACITY string `json:"USERCAPACITY"` WORKINGCONTROLLER string `json:"WORKINGCONTROLLER"` WORKLOADTYPEID string `json:"WORKLOADTYPEID"` WORKLOADTYPENAME string `json:"WORKLOADTYPENAME"` WWN string `json:"WWN"` ReplicationCapacity string `json:"replicationCapacity"` SnapCgID string `json:"snapCgId"` }
Snapshot is object of lun snapshot
type StoragePool ¶
type StoragePool struct { ASSOCIATEOBJID string `json:"ASSOCIATEOBJID"` DESCRIPTION string `json:"DESCRIPTION"` ENCRYPTDISKTYPE string `json:"ENCRYPTDISKTYPE"` ENGINEIDLIST string `json:"ENGINEIDLIST"` ENGINEINFO string `json:"ENGINEINFO"` FREECAPACITY string `json:"FREECAPACITY"` FREECAPACITYLIST string `json:"FREECAPACITYLIST"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID string `json:"ID"` NAME string `json:"NAME"` OWNERCONTROLLERLIST string `json:"OWNERCONTROLLERLIST"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SPARECAPACITY string `json:"SPARECAPACITY"` SSDDISKNUM string `json:"SSDDISKNUM"` SSDFREECAPACITY string `json:"SSDFREECAPACITY"` SSDHOTSPARESTRATEGY string `json:"SSDHOTSPARESTRATEGY"` SSDSPARECAPACITY string `json:"SSDSPARECAPACITY"` SSDTOTALCAPACITY string `json:"SSDTOTALCAPACITY"` SSDUSEDCAPACITY string `json:"SSDUSEDCAPACITY"` SSDUSEDSPARECAPACITY string `json:"SSDUSEDSPARECAPACITY"` TIER0DISKTYPE string `json:"TIER0DISKTYPE"` TOTALCAPACITY string `json:"TOTALCAPACITY"` TYPE int `json:"TYPE"` USEDCAPACITY string `json:"USEDCAPACITY"` USEDSPARECAPACITY string `json:"USEDSPARECAPACITY"` AbrasionRate string `json:"abrasionRate"` EnduranceBalanceStatus string `json:"enduranceBalanceStatus"` EngineCapacityDetail string `json:"engineCapacityDetail"` RemainLife string `json:"remainLife"` UnbalanceDiskIDList string `json:"unbalanceDiskIdList"` }
StoragePool is top level mapping pool of storage (mainly lun)
type StoragePools ¶
type StoragePools struct { COMPRESSEDCAPACITY string `json:"COMPRESSEDCAPACITY"` COMPRESSINVOLVEDCAPACITY string `json:"COMPRESSINVOLVEDCAPACITY"` COMPRESSIONRATE string `json:"COMPRESSIONRATE"` DATASPACE string `json:"DATASPACE"` DEDUPEDCAPACITY string `json:"DEDUPEDCAPACITY"` DEDUPINVOLVEDCAPACITY string `json:"DEDUPINVOLVEDCAPACITY"` DEDUPLICATIONRATE string `json:"DEDUPLICATIONRATE"` DESCRIPTION string `json:"DESCRIPTION"` ENDINGUPTHRESHOLD string `json:"ENDINGUPTHRESHOLD"` HEALTHSTATUS string `json:"HEALTHSTATUS"` ID int `json:"ID,string"` LUNCONFIGEDCAPACITY string `json:"LUNCONFIGEDCAPACITY"` NAME string `json:"NAME"` PARENTID string `json:"PARENTID"` PARENTNAME string `json:"PARENTNAME"` PARENTTYPE int `json:"PARENTTYPE"` PROVISIONINGLIMIT string `json:"PROVISIONINGLIMIT"` PROVISIONINGLIMITSWITCH string `json:"PROVISIONINGLIMITSWITCH"` REDUCTIONINVOLVEDCAPACITY string `json:"REDUCTIONINVOLVEDCAPACITY"` REPLICATIONCAPACITY string `json:"REPLICATIONCAPACITY"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SAVECAPACITYRATE string `json:"SAVECAPACITYRATE"` SPACEREDUCTIONRATE string `json:"SPACEREDUCTIONRATE"` THINPROVISIONSAVEPERCENTAGE string `json:"THINPROVISIONSAVEPERCENTAGE"` TIER0CAPACITY string `json:"TIER0CAPACITY"` TIER0DISKTYPE string `json:"TIER0DISKTYPE"` TIER0RAIDLV string `json:"TIER0RAIDLV"` TOTALLUNWRITECAPACITY string `json:"TOTALLUNWRITECAPACITY"` TYPE int `json:"TYPE"` USAGETYPE string `json:"USAGETYPE"` USERCONSUMEDCAPACITY string `json:"USERCONSUMEDCAPACITY"` USERCONSUMEDCAPACITYPERCENTAGE string `json:"USERCONSUMEDCAPACITYPERCENTAGE"` USERCONSUMEDCAPACITYTHRESHOLD string `json:"USERCONSUMEDCAPACITYTHRESHOLD"` USERCONSUMEDCAPACITYWITHOUTMETA string `json:"USERCONSUMEDCAPACITYWITHOUTMETA"` USERFREECAPACITY string `json:"USERFREECAPACITY"` USERTOTALCAPACITY string `json:"USERTOTALCAPACITY"` USERWRITEALLOCCAPACITY string `json:"USERWRITEALLOCCAPACITY"` AutoDeleteSwitch string `json:"autoDeleteSwitch"` PoolProtectHighThreshold string `json:"poolProtectHighThreshold"` PoolProtectLowThreshold string `json:"poolProtectLowThreshold"` ProtectSize string `json:"protectSize"` TotalSizeWithoutSnap string `json:"totalSizeWithoutSnap"` }
StoragePools is multimapping of storagepool
type System ¶
type System struct { CACHEWRITEQUOTA string `json:"CACHEWRITEQUOTA"` CONFIGMODEL string `json:"CONFIGMODEL"` DESCRIPTION string `json:"DESCRIPTION"` DOMAINNAME string `json:"DOMAINNAME"` FREEDISKSCAPACITY string `json:"FREEDISKSCAPACITY"` HEALTHSTATUS string `json:"HEALTHSTATUS"` HOTSPAREDISKSCAPACITY string `json:"HOTSPAREDISKSCAPACITY"` ID string `json:"ID"` LOCATION string `json:"LOCATION"` MEMBERDISKSCAPACITY string `json:"MEMBERDISKSCAPACITY"` NAME string `json:"NAME"` PRODUCTMODE string `json:"PRODUCTMODE"` PRODUCTVERSION string `json:"PRODUCTVERSION"` RUNNINGSTATUS string `json:"RUNNINGSTATUS"` SECTORSIZE string `json:"SECTORSIZE"` STORAGEPOOLCAPACITY string `json:"STORAGEPOOLCAPACITY"` STORAGEPOOLFREECAPACITY string `json:"STORAGEPOOLFREECAPACITY"` STORAGEPOOLHOSTSPARECAPACITY string `json:"STORAGEPOOLHOSTSPARECAPACITY"` STORAGEPOOLRAWCAPACITY string `json:"STORAGEPOOLRAWCAPACITY"` STORAGEPOOLUSEDCAPACITY string `json:"STORAGEPOOLUSEDCAPACITY"` THICKLUNSALLOCATECAPACITY string `json:"THICKLUNSALLOCATECAPACITY"` THICKLUNSUSEDCAPACITY string `json:"THICKLUNSUSEDCAPACITY"` THINLUNSALLOCATECAPACITY string `json:"THINLUNSALLOCATECAPACITY"` THINLUNSMAXCAPACITY string `json:"THINLUNSMAXCAPACITY"` THINLUNSUSEDCAPACITY string `json:"THINLUNSUSEDCAPACITY"` TOTALCAPACITY string `json:"TOTALCAPACITY"` TYPE int `json:"TYPE"` UNAVAILABLEDISKSCAPACITY string `json:"UNAVAILABLEDISKSCAPACITY"` USEDCAPACITY string `json:"USEDCAPACITY"` VASAALTERNATENAME string `json:"VASA_ALTERNATE_NAME"` VASASUPPORTBLOCK string `json:"VASA_SUPPORT_BLOCK"` VASASUPPORTFILESYSTEM string `json:"VASA_SUPPORT_FILESYSTEM"` VASASUPPORTPROFILE string `json:"VASA_SUPPORT_PROFILE"` WRITETHROUGHSW string `json:"WRITETHROUGHSW"` WRITETHROUGHTIME string `json:"WRITETHROUGHTIME"` MappedLunsCountCapacity string `json:"mappedLunsCountCapacity"` PatchVersion string `json:"patchVersion"` UnMappedLunsCountCapacity string `json:"unMappedLunsCountCapacity"` UserFreeCapacity string `json:"userFreeCapacity"` Wwn string `json:"wwn"` }
System is system information
type TargetPort ¶
type TargetPort struct { ETHPORTID string `json:"ETHPORTID"` ID string `json:"ID"` TPGT string `json:"TPGT"` TYPE int `json:"TYPE"` }
TargetPort is target port (ex: iSCSI)
type TimeConversion ¶
type TimeConversion int
TimeConversion is type of time
const ( UTC TimeConversion = iota LocalTime )
TimeConversion const
func (TimeConversion) String ¶
func (tc TimeConversion) String() string
String is function compatible for fmt.Stringer