dorado

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2021 License: MIT Imports: 22 Imported by: 1

Documentation

Index

Constants

View Source
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

View Source
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

View Source
const (
	StatusNormal           = 1
	StatusSynchronizing    = 23
	StatusInvalid          = 35
	StatusPause            = 41
	StatusForcedStart      = 93
	StatusToBeSynchronized = 100
)

For HyperMetroPair RUNNINGSTATUS

View Source
const (
	StatusVolumeReady      = 27
	StatusLunCopyReady     = 40
	StatusSnapshotActive   = 43
	StatusSnapshotInactive = 45
)

For a some RUNNNINGSTATUS

View Source
const (
	ErrorCodeUnAuthorized  = -401
	ErrorCodeUserIsOffline = 1077949069
)

Dorado return Error Codes

View Source
const (
	StatusHealth = 1
)

For HEALTHSTATUS status

Variables

View Source
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

View Source
var (
	DefaultCopyTimeoutSecond = 180
	DefaultHTTPRetryCount    = 10
)

Default values

View Source
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 EncodeLunName

func EncodeLunName(u uuid.UUID) string

EncodeLunName encode name for LUN Name

func EncodeSnapshotName

func EncodeSnapshotName(u uuid.UUID) string

EncodeSnapshotName encode compatible name

func ToFilter

func ToFilter(param, value string) string

ToFilter convert to REST API's filter

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

func (c *Client) AttachVolume(ctx context.Context, hyperMetroPairID, hostname, iqn string) error

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

func (c *Client) DeleteHyperMetroPair(ctx context.Context, hyperMetroPairID string) error

DeleteHyperMetroPair delete HyperMetroPair. must be suspend HyperMetro Pair before call this method.

func (*Client) DeleteVolume

func (c *Client) DeleteVolume(ctx context.Context, hyperMetroPairID string) error

DeleteVolume delete HyperMetroPair

func (*Client) DetachVolume

func (c *Client) DetachVolume(ctx context.Context, hyperMetroPairID string) error

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

func (c *Client) SetToken() error

SetToken set iBaseToken from REST API.

func (*Client) SuspendHyperMetroPair

func (c *Client) SuspendHyperMetroPair(ctx context.Context, hyperMetroPairID string) error

SuspendHyperMetroPair suspend HyperMetro sync.

func (*Client) SyncHyperMetroPair

func (c *Client) SyncHyperMetroPair(ctx context.Context, hyperMetroPairID string) error

SyncHyperMetroPair start to sync HyperMetro.

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

func (d *Device) ActivateSnapshot(ctx context.Context, snapshotID int) error

ActivateSnapshot activate snapshot

func (*Device) AssociateHost

func (d *Device) AssociateHost(ctx context.Context, hostgroupID, hostID int) error

AssociateHost associate hostID to hostgroupID.

func (*Device) AssociateLun

func (d *Device) AssociateLun(ctx context.Context, lungroupID, lunID int) error

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

func (d *Device) CreateCloneLUN(ctx context.Context, lunID int, lunName uuid.UUID) (*LUN, error)

CreateCloneLUN create clone LUN

func (*Device) CreateHost

func (d *Device) CreateHost(ctx context.Context, hostname string) (*Host, error)

CreateHost create host object.

func (*Device) CreateHostGroup

func (d *Device) CreateHostGroup(ctx context.Context, hostname string) (*HostGroup, error)

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

func (d *Device) CreateInitiator(ctx context.Context, iqn string) (*Initiator, error)

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

func (d *Device) CreateLUNCopy(ctx context.Context, sourceLUNID, targetLUNID int) (*LunCopy, error)

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

func (d *Device) CreateLunGroup(ctx context.Context, hostname string) (*LunGroup, error)

CreateLunGroup create lun group Host : HostGroup : LunGroup is 1:1:1. lun group will create the same name as a host.

func (*Device) CreateMappingView

func (d *Device) CreateMappingView(ctx context.Context, hostname string) (*MappingView, error)

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

func (d *Device) DeleteHost(ctx context.Context, hostID int) error

DeleteHost delete host object.

func (*Device) DeleteHostGroup

func (d *Device) DeleteHostGroup(ctx context.Context, hostGroupID int) error

DeleteHostGroup delete hostgroup object.

func (*Device) DeleteHostGroupWithHost

func (d *Device) DeleteHostGroupWithHost(ctx context.Context, hostgroupID int) error

DeleteHostGroupWithHost delete hostgroup object and host (same name) object.

func (*Device) DeleteInitiator

func (d *Device) DeleteInitiator(ctx context.Context, iqn string) error

DeleteInitiator delete initiator.

func (*Device) DeleteLUN

func (d *Device) DeleteLUN(ctx context.Context, lunID int) error

DeleteLUN delete lun object (also include data)

func (*Device) DeleteLUNCopy

func (d *Device) DeleteLUNCopy(ctx context.Context, luncopyID int) error

DeleteLUNCopy delete lun copy object

func (*Device) DeleteLunGroup

func (d *Device) DeleteLunGroup(ctx context.Context, lungroupID int) error

DeleteLunGroup delete lun group

func (*Device) DeleteMappingView

func (d *Device) DeleteMappingView(ctx context.Context, mappingviewID int) error

DeleteMappingView delete mapping view object

func (*Device) DeleteSnapshot

func (d *Device) DeleteSnapshot(ctx context.Context, snapshotID int) error

DeleteSnapshot delete snapshot

func (*Device) DetachVolume

func (d *Device) DetachVolume(ctx context.Context, lunID int) error

DetachVolume delete mapping from host in device

func (*Device) DisAssociateHost

func (d *Device) DisAssociateHost(ctx context.Context, hostgroupID, hostID int) error

DisAssociateHost delete associate hostID from hostgroupID.

func (*Device) DisAssociateLun

func (d *Device) DisAssociateLun(ctx context.Context, lungroupID, lunID int) error

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

func (d *Device) ExpandLUN(ctx context.Context, lunID int, newLunSizeGb int) error

ExpandLUN expand lun capacity

func (*Device) GetAssociateLUNs

func (d *Device) GetAssociateLUNs(ctx context.Context, query *SearchQuery) ([]LUN, error)

GetAssociateLUNs get lun objects that associated object (ex: host)

func (*Device) GetAssociateLunGroups

func (d *Device) GetAssociateLunGroups(ctx context.Context, query *SearchQuery) ([]LunGroup, error)

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

func (d *Device) GetHost(ctx context.Context, hostID int) (*Host, error)

GetHost get host object by host ID.

func (*Device) GetHostAssociatedLUNs

func (d *Device) GetHostAssociatedLUNs(ctx context.Context, hostID int) ([]LUN, error)

GetHostAssociatedLUNs get LUNs associated specific host

func (*Device) GetHostGroup

func (d *Device) GetHostGroup(ctx context.Context, hostgroupID int) (*HostGroup, error)

GetHostGroup get hostgroup object by id.

func (*Device) GetHostGroupForce

func (d *Device) GetHostGroupForce(ctx context.Context, hostname string) (*HostGroup, *Host, error)

GetHostGroupForce get hostgroup object and host object. create hostgroup and host object if not exists.

func (*Device) GetHostGroups

func (d *Device) GetHostGroups(ctx context.Context, query *SearchQuery) ([]HostGroup, error)

GetHostGroups get hostgroup objects by query.

func (*Device) GetHostLUNID

func (d *Device) GetHostLUNID(ctx context.Context, lunID, hostID int) (int, error)

GetHostLUNID get LUN ID per host.

func (*Device) GetHosts

func (d *Device) GetHosts(ctx context.Context, query *SearchQuery) ([]Host, error)

GetHosts get host objects query by SearchQuery.

func (*Device) GetHyperMetroDomains

func (d *Device) GetHyperMetroDomains(ctx context.Context, query *SearchQuery) ([]HyperMetroDomain, error)

GetHyperMetroDomains get HyperMetroDomain objects in device.

func (*Device) GetInitiator

func (d *Device) GetInitiator(ctx context.Context, iqn string) (*Initiator, error)

GetInitiator get initiator by id.

func (*Device) GetInitiatorForce

func (d *Device) GetInitiatorForce(ctx context.Context, iqn string) (*Initiator, error)

GetInitiatorForce get initiator and create initiator if not exists.

func (*Device) GetInitiators

func (d *Device) GetInitiators(ctx context.Context, query *SearchQuery) ([]Initiator, error)

GetInitiators search initiators. you must use encodeIqn when to search iqn. ex: initiators, err := d.GetInitiators(ctx, NewSearchQueryId(encodeIqn(iqn)))

func (*Device) GetLUN

func (d *Device) GetLUN(ctx context.Context, lunID int) (*LUN, error)

GetLUN get lun object by id

func (*Device) GetLUNCopy

func (d *Device) GetLUNCopy(ctx context.Context, lunCopyID int) (*LunCopy, error)

GetLUNCopy get lun copy by id

func (*Device) GetLUNCopys

func (d *Device) GetLUNCopys(ctx context.Context, query *SearchQuery) ([]LunCopy, error)

GetLUNCopys get lun copy objects by query

func (*Device) GetLUNs

func (d *Device) GetLUNs(ctx context.Context, query *SearchQuery) ([]LUN, error)

GetLUNs get lun objects by query

func (*Device) GetLunGroup

func (d *Device) GetLunGroup(ctx context.Context, lungroupID int) (*LunGroup, error)

GetLunGroup get lun group by id

func (*Device) GetLunGroupByLunID

func (d *Device) GetLunGroupByLunID(ctx context.Context, lunID int) (*LunGroup, error)

GetLunGroupByLunID get associated lun group by lun id.

func (*Device) GetLunGroupForce

func (d *Device) GetLunGroupForce(ctx context.Context, hostname string) (*LunGroup, error)

GetLunGroupForce get lun group, and create lun group if not exist.

func (*Device) GetLunGroups

func (d *Device) GetLunGroups(ctx context.Context, query *SearchQuery) ([]LunGroup, error)

GetLunGroups get lun groups by query

func (*Device) GetMappingView

func (d *Device) GetMappingView(ctx context.Context, mappingviewID int) (*MappingView, error)

GetMappingView get mapping view object by id

func (*Device) GetMappingViewForce

func (d *Device) GetMappingViewForce(ctx context.Context, hostname string) (*MappingView, error)

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

func (d *Device) GetPortGroup(ctx context.Context, portgroupID int) (*PortGroup, error)

GetPortGroup get port group by id

func (*Device) GetPortGroups

func (d *Device) GetPortGroups(ctx context.Context, query *SearchQuery) ([]PortGroup, error)

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

func (d *Device) GetPortalIPAddresses(ctx context.Context, portgroupID int) ([]string, error)

GetPortalIPAddresses get iSCSI portal IP addresses that associated port group. return only IPv4 address.

func (*Device) GetSnapshot

func (d *Device) GetSnapshot(ctx context.Context, snapshotID int) (*Snapshot, error)

GetSnapshot get snapshot by id

func (*Device) GetSnapshots

func (d *Device) GetSnapshots(ctx context.Context, query *SearchQuery) ([]Snapshot, error)

GetSnapshots get snapshots by query

func (*Device) GetStoragePool

func (d *Device) GetStoragePool(ctx context.Context, storagePoolID int) (*StoragePool, error)

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

func (d *Device) GetSystem(ctx context.Context) (*System, error)

GetSystem get system information

func (*Device) GetTargetIQNs

func (d *Device) GetTargetIQNs(ctx context.Context) ([]string, error)

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

func (d *Device) SplitCloneLUN(ctx context.Context, cloneLUNID int) error

SplitCloneLUN start to split LUN Clone

func (*Device) StartLUNCopy

func (d *Device) StartLUNCopy(ctx context.Context, luncopyID int) error

StartLUNCopy start to copy lun

func (*Device) StartLUNCopyWithWait

func (d *Device) StartLUNCopyWithWait(ctx context.Context, luncopyID int, timeoutCount int) error

StartLUNCopyWithWait start luncopy and wait to copy

func (*Device) StopSnapshot

func (d *Device) StopSnapshot(ctx context.Context, snapshotID int) error

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

func (ErrorResp) Error

func (e ErrorResp) Error() error

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

func (*LunGroup) IsAssociated

func (lg *LunGroup) IsAssociated() bool

IsAssociated return boolean

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 Session

type Session struct {
	IBaseToken string `json:"iBaseToken"`
	DeviceID   string `json:"deviceid"`
}

Session is response of /sessions

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

type UpdateInitiatorParam

type UpdateInitiatorParam struct {
	USECHAP    string `json:"USECHAP"`
	PARENTTYPE string `json:"PARENTTYPE"`
	TYPE       string `json:"TYPE"`
	ID         string `json:"ID"`
	PARENTID   string `json:"PARENTID"`
}

UpdateInitiatorParam is parameter for UpdateInitiator

Jump to

Keyboard shortcuts

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