client

package
v4.6.0 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package client provide client of storage

Package client is a generated GoMock package.

Package client defines Urls of oceanstor storage

Index

Constants

View Source
const (
	// DefaultParallelCount defines default parallel count
	DefaultParallelCount int = 50

	// MaxParallelCount defines max parallel count
	MaxParallelCount int = 1000

	// MinParallelCount defines min parallel count
	MinParallelCount int = 20

	// GetInfoWaitInternal defines wait internal of getting info
	GetInfoWaitInternal = 10

	// QueryCountPerBatch defines query count for each circle of batch operation
	QueryCountPerBatch int = 100

	// IPLockErrorCode defines error code of ip lock
	IPLockErrorCode = 1077949071

	// UserOffline defines error code of user off line
	UserOffline = 1077949069

	// UserUnauthorized defines error code of user unauthorized
	UserUnauthorized = -401

	// SuccessCode defines error code of success
	SuccessCode = int64(0)

	// UrlNotFound defines error msg of url not found
	UrlNotFound = "404_NotFound"
)
View Source
const (
	// ParentTypeFS defines fs type of parent
	ParentTypeFS int = 40

	// ParentTypeDTree defines DTree type of parent
	ParentTypeDTree int = 16445

	// SecurityStyleUnix defines unix style of security
	SecurityStyleUnix int = 3
)
View Source
const (
	// LocalFilesystemMode normal volume
	LocalFilesystemMode string = "0"
	// HyperMetroFilesystemMode hyper metro volume
	HyperMetroFilesystemMode string = "1"
)
View Source
const (
	// QuotaTypeDir defines dir type quota
	QuotaTypeDir int = 1

	// QuotaTypeUser defines user type
	QuotaTypeUser int = 2

	// QuotaTypeUserGroup defines user group type
	QuotaTypeUserGroup int = 3

	// SpaceUnitTypeGB defines GB type of space unit
	SpaceUnitTypeGB int = 3

	// ForceFlagTrue defines force flag true
	ForceFlagTrue bool = true

	// ForceFlagFalse defines force flag false
	ForceFlagFalse bool = false
)
View Source
const SplitCloneFileSystem = "/filesystem_split_switch"

SplitCloneFileSystem provides storage url for split clone filesystem

Variables

View Source
var (
	// WrongPasswordErrorCodes user or password is incorrect
	WrongPasswordErrorCodes = []int64{1077987870, 1077949081, 1077949061}
	// AccountBeenLocked account been locked
	AccountBeenLocked = []int64{1077949070, 1077987871}
)
View Source
var (

	// ClientSemaphore provides semaphore of client
	ClientSemaphore *utils.Semaphore
)

Functions

This section is empty.

Types

type AllowNfsShareAccessRequest

type AllowNfsShareAccessRequest struct {
	Name        string
	ParentID    string
	VStoreID    string
	AccessVal   int
	Sync        int
	AllSquash   int
	RootSquash  int
	AccessKrb5  int
	AccessKrb5i int
	AccessKrb5p int
}

AllowNfsShareAccessRequest used for AllowNfsShareAccess request

type ApplicationType

type ApplicationType interface {
	// GetApplicationTypeByName used for get application type
	GetApplicationTypeByName(ctx context.Context, appType string) (string, error)
}

ApplicationType defines interfaces for application type operations

type BaseClient

type BaseClient struct {
	Client HTTP

	Url  string
	Urls []string

	User            string
	SecretNamespace string
	SecretName      string
	VStoreName      string
	VStoreID        string
	StorageVersion  string
	BackendID       string
	Storage         string
	CurrentSiteWwn  string
	CurrentLifWwn   string
	LastLif         string
	Product         string
	DeviceId        string
	Token           string

	SystemInfoRefreshing uint32
	ReLoginMutex         sync.Mutex
}

BaseClient implements BaseClientInterface

func NewClient

func NewClient(ctx context.Context, param *NewClientConfig) (*BaseClient, error)

NewClient inits a new base client

func (*BaseClient) ActivateLunSnapshot

func (cli *BaseClient) ActivateLunSnapshot(ctx context.Context, snapshotID string) error

ActivateLunSnapshot used for activate lun snapshot

func (*BaseClient) ActivateQos

func (cli *BaseClient) ActivateQos(ctx context.Context, qosID, vStoreID string) error

ActivateQos used for active qos

func (*BaseClient) AddFCInitiatorToHost

func (cli *BaseClient) AddFCInitiatorToHost(ctx context.Context, initiator, hostID string) error

AddFCInitiatorToHost used for add fc initiator to host

func (*BaseClient) AddGroupToMapping

func (cli *BaseClient) AddGroupToMapping(ctx context.Context, groupType int, groupID, mappingID string) error

AddGroupToMapping used for add group to mapping

func (*BaseClient) AddHostToGroup

func (cli *BaseClient) AddHostToGroup(ctx context.Context, hostID, hostGroupID string) error

AddHostToGroup used for add host to group

func (*BaseClient) AddIscsiInitiator

func (cli *BaseClient) AddIscsiInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)

AddIscsiInitiator used for add iscsi initiator

func (*BaseClient) AddIscsiInitiatorToHost

func (cli *BaseClient) AddIscsiInitiatorToHost(ctx context.Context, initiator, hostID string) error

AddIscsiInitiatorToHost used for add iscsi initiator to host

func (*BaseClient) AddLunToGroup

func (cli *BaseClient) AddLunToGroup(ctx context.Context, lunID string, groupID string) error

AddLunToGroup used for add lun to group

func (*BaseClient) AddRoCEInitiator

func (cli *BaseClient) AddRoCEInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)

AddRoCEInitiator used for add RoCE initiator

func (*BaseClient) AddRoCEInitiatorToHost

func (cli *BaseClient) AddRoCEInitiatorToHost(ctx context.Context, initiator, hostID string) error

AddRoCEInitiatorToHost used for add RoCE initiator to host

func (*BaseClient) AllowNfsShareAccess

func (cli *BaseClient) AllowNfsShareAccess(ctx context.Context, req *AllowNfsShareAccessRequest) error

AllowNfsShareAccess used for allow nfs share access

func (*BaseClient) BaseCall

func (cli *BaseClient) BaseCall(ctx context.Context,
	method string,
	url string,
	data map[string]interface{}) (Response, error)

BaseCall provides base call for request

func (*BaseClient) BatchGetQuota

func (cli *BaseClient) BatchGetQuota(ctx context.Context, params map[string]interface{}) ([]interface{}, error)

BatchGetQuota gets quotas filtered by params

func (*BaseClient) Call

func (cli *BaseClient) Call(ctx context.Context,
	method string, url string,
	data map[string]interface{}) (Response, error)

Call provides call for restful request

func (*BaseClient) CloneFileSystem

func (cli *BaseClient) CloneFileSystem(ctx context.Context, name string, allocType int, parentID,
	parentSnapshotID string) (map[string]interface{}, error)

CloneFileSystem used for clone file system

func (*BaseClient) CreateClonePair

func (cli *BaseClient) CreateClonePair(ctx context.Context,
	srcLunID, dstLunID string,
	cloneSpeed int) (map[string]interface{}, error)

CreateClonePair used for create clone pair

func (*BaseClient) CreateDTree

func (cli *BaseClient) CreateDTree(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)

CreateDTree use for create a dTree

func (*BaseClient) CreateFSSnapshot

func (cli *BaseClient) CreateFSSnapshot(ctx context.Context, name, parentID string) (map[string]interface{}, error)

CreateFSSnapshot used for create file system snapshot

func (*BaseClient) CreateFileSystem

func (cli *BaseClient) CreateFileSystem(ctx context.Context, params map[string]interface{}) (
	map[string]interface{}, error)

CreateFileSystem used for create file system

func (*BaseClient) CreateHost

func (cli *BaseClient) CreateHost(ctx context.Context, name string) (map[string]interface{}, error)

CreateHost used for create host

func (*BaseClient) CreateHostGroup

func (cli *BaseClient) CreateHostGroup(ctx context.Context, name string) (map[string]interface{}, error)

CreateHostGroup used for create host group

func (*BaseClient) CreateHyperMetroPair

func (cli *BaseClient) CreateHyperMetroPair(ctx context.Context, data map[string]interface{}) (
	map[string]interface{}, error)

CreateHyperMetroPair used for create hyper metro pair

func (*BaseClient) CreateLun

func (cli *BaseClient) CreateLun(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)

CreateLun used for create lun

func (*BaseClient) CreateLunCopy

func (cli *BaseClient) CreateLunCopy(ctx context.Context, name, srcLunID, dstLunID string, copySpeed int) (
	map[string]interface{}, error)

CreateLunCopy used for create lun copy

func (*BaseClient) CreateLunGroup

func (cli *BaseClient) CreateLunGroup(ctx context.Context, name string) (map[string]interface{}, error)

CreateLunGroup used for create lun group

func (*BaseClient) CreateLunSnapshot

func (cli *BaseClient) CreateLunSnapshot(ctx context.Context, name, lunID string) (map[string]interface{}, error)

CreateLunSnapshot used for create lun snapshot

func (*BaseClient) CreateMapping

func (cli *BaseClient) CreateMapping(ctx context.Context, name string) (map[string]interface{}, error)

CreateMapping used for create mapping

func (*BaseClient) CreateNfsShare

func (cli *BaseClient) CreateNfsShare(ctx context.Context,
	params map[string]interface{}) (map[string]interface{}, error)

CreateNfsShare used for create nfs share

func (*BaseClient) CreateQos

func (cli *BaseClient) CreateQos(ctx context.Context, name, objID, objType, vStoreID string, params map[string]int) (
	map[string]interface{}, error)

CreateQos used for create qos

func (*BaseClient) CreateQuota

func (cli *BaseClient) CreateQuota(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)

CreateQuota creates quota by params

func (*BaseClient) CreateReplicationPair

func (cli *BaseClient) CreateReplicationPair(ctx context.Context, data map[string]interface{}) (
	map[string]interface{}, error)

CreateReplicationPair used for create replication pair

func (*BaseClient) DeactivateLunSnapshot

func (cli *BaseClient) DeactivateLunSnapshot(ctx context.Context, snapshotID string) error

DeactivateLunSnapshot used for stop lun snapshot

func (*BaseClient) DeactivateQos

func (cli *BaseClient) DeactivateQos(ctx context.Context, qosID, vStoreID string) error

DeactivateQos used for deactivate qos

func (*BaseClient) Delete

func (cli *BaseClient) Delete(ctx context.Context, url string, data map[string]interface{}) (Response, error)

Delete provides http request of DELETE method

func (*BaseClient) DeleteClonePair

func (cli *BaseClient) DeleteClonePair(ctx context.Context, clonePairID string) error

DeleteClonePair used for delete clone pair

func (*BaseClient) DeleteDTreeByID

func (cli *BaseClient) DeleteDTreeByID(ctx context.Context, vStoreID, dTreeID string) error

DeleteDTreeByID use for delete a dTree

func (*BaseClient) DeleteDTreeByName

func (cli *BaseClient) DeleteDTreeByName(ctx context.Context, parentName, dTreeName, vStoreID string) error

DeleteDTreeByName use for delete a dTree

func (*BaseClient) DeleteFSSnapshot

func (cli *BaseClient) DeleteFSSnapshot(ctx context.Context, snapshotID string) error

DeleteFSSnapshot used for delete file system snapshot by id

func (*BaseClient) DeleteFileSystem

func (cli *BaseClient) DeleteFileSystem(ctx context.Context, params map[string]interface{}) error

DeleteFileSystem used for delete file system

func (*BaseClient) DeleteHost

func (cli *BaseClient) DeleteHost(ctx context.Context, id string) error

DeleteHost used for delete host by id

func (*BaseClient) DeleteHostGroup

func (cli *BaseClient) DeleteHostGroup(ctx context.Context, id string) error

DeleteHostGroup used for delete host group

func (*BaseClient) DeleteHyperMetroPair

func (cli *BaseClient) DeleteHyperMetroPair(ctx context.Context, pairID string, onlineDelete bool) error

DeleteHyperMetroPair used for delete hyper metro pair by pair id

func (*BaseClient) DeleteLun

func (cli *BaseClient) DeleteLun(ctx context.Context, id string) error

DeleteLun used for delete lun by lun id

func (*BaseClient) DeleteLunCopy

func (cli *BaseClient) DeleteLunCopy(ctx context.Context, lunCopyID string) error

DeleteLunCopy used for delete lun copy by id

func (*BaseClient) DeleteLunGroup

func (cli *BaseClient) DeleteLunGroup(ctx context.Context, id string) error

DeleteLunGroup used for delete lun group by lun group id

func (*BaseClient) DeleteLunSnapshot

func (cli *BaseClient) DeleteLunSnapshot(ctx context.Context, snapshotID string) error

DeleteLunSnapshot used for delete lun snapshot

func (*BaseClient) DeleteMapping

func (cli *BaseClient) DeleteMapping(ctx context.Context, id string) error

DeleteMapping used for delete mapping

func (*BaseClient) DeleteNfsShare

func (cli *BaseClient) DeleteNfsShare(ctx context.Context, id, vStoreID string) error

DeleteNfsShare used for delete nfs share by id

func (*BaseClient) DeleteNfsShareAccess

func (cli *BaseClient) DeleteNfsShareAccess(ctx context.Context, accessID, vStoreID string) error

DeleteNfsShareAccess used for delete nfs share access

func (*BaseClient) DeleteQos

func (cli *BaseClient) DeleteQos(ctx context.Context, qosID, vStoreID string) error

DeleteQos used for delete qos

func (*BaseClient) DeleteQuota

func (cli *BaseClient) DeleteQuota(ctx context.Context, quotaID, vStoreID string, forceFlag bool) error

DeleteQuota deletes quota by id

func (*BaseClient) DeleteReplicationPair

func (cli *BaseClient) DeleteReplicationPair(ctx context.Context, pairID string) error

DeleteReplicationPair used for delete replication pair by pair id

func (*BaseClient) DuplicateClient

func (cli *BaseClient) DuplicateClient() *BaseClient

DuplicateClient clone a base client from origin client

func (*BaseClient) ExtendFileSystem

func (cli *BaseClient) ExtendFileSystem(ctx context.Context, fsID string, newCapacity int64) error

ExtendFileSystem used for extend file system by new capacity

func (*BaseClient) ExtendLun

func (cli *BaseClient) ExtendLun(ctx context.Context, lunID string, newCapacity int64) error

ExtendLun used for extend lun

func (*BaseClient) Get

func (cli *BaseClient) Get(ctx context.Context, url string, data map[string]interface{}) (Response, error)

Get provides http request of GET method

func (*BaseClient) GetAllPools

func (cli *BaseClient) GetAllPools(ctx context.Context) (map[string]interface{}, error)

GetAllPools used for get all pools

func (*BaseClient) GetAllRemoteDevices

func (cli *BaseClient) GetAllRemoteDevices(ctx context.Context) ([]map[string]interface{}, error)

GetAllRemoteDevices used for get all remote devices

func (*BaseClient) GetApplicationTypeByName

func (cli *BaseClient) GetApplicationTypeByName(ctx context.Context, appType string) (string, error)

GetApplicationTypeByName function to get the Application type ID to set the I/O size while creating Volume

func (*BaseClient) GetBackendID

func (cli *BaseClient) GetBackendID() string

GetBackendID get backend id of client

func (*BaseClient) GetClonePairInfo

func (cli *BaseClient) GetClonePairInfo(ctx context.Context, clonePairID string) (map[string]interface{}, error)

GetClonePairInfo used for get clone pair info

func (*BaseClient) GetCurrentLif

func (cli *BaseClient) GetCurrentLif(ctx context.Context) string

GetCurrentLif used for get current lif wwn

func (*BaseClient) GetCurrentLifWwn

func (cli *BaseClient) GetCurrentLifWwn() string

GetCurrentLifWwn used for get current lif wwn

func (*BaseClient) GetCurrentSiteWwn

func (cli *BaseClient) GetCurrentSiteWwn() string

GetCurrentSiteWwn used for get current site wwn

func (*BaseClient) GetDTreeByName

func (cli *BaseClient) GetDTreeByName(ctx context.Context, parentID, parentName, vStoreID, name string) (map[string]interface{}, error)

GetDTreeByName use for get dTree information

func (*BaseClient) GetDeviceSN

func (cli *BaseClient) GetDeviceSN() string

GetDeviceSN used for get device sn

func (cli *BaseClient) GetFCHostLink(ctx context.Context, hostID string) ([]interface{}, error)

GetFCHostLink used for get fc host link by host id

func (*BaseClient) GetFCInitiator

func (cli *BaseClient) GetFCInitiator(ctx context.Context, wwn string) (map[string]interface{}, error)

GetFCInitiator used for get fc initiator by ID::wwn

func (*BaseClient) GetFCInitiatorByID

func (cli *BaseClient) GetFCInitiatorByID(ctx context.Context, wwn string) (map[string]interface{}, error)

GetFCInitiatorByID used for get fc initiator by id(wwn)

func (*BaseClient) GetFCTargetWWNs

func (cli *BaseClient) GetFCTargetWWNs(ctx context.Context, initiatorWWN string) ([]string, error)

GetFCTargetWWNs used for get fc target WWNs

func (*BaseClient) GetFSHyperMetroDomain

func (cli *BaseClient) GetFSHyperMetroDomain(ctx context.Context, domainName string) (map[string]interface{}, error)

GetFSHyperMetroDomain used for get file system hyper metro domain by domain name

func (*BaseClient) GetFSSnapshotByName

func (cli *BaseClient) GetFSSnapshotByName(ctx context.Context, parentID, snapshotName string) (map[string]interface{},
	error)

GetFSSnapshotByName used for get file system snapshot by snapshot name

func (*BaseClient) GetFSSnapshotCountByParentId

func (cli *BaseClient) GetFSSnapshotCountByParentId(ctx context.Context, ParentId string) (int, error)

GetFSSnapshotCountByParentId used for get file system snapshot count by parent id

func (*BaseClient) GetFileSystemByID

func (cli *BaseClient) GetFileSystemByID(ctx context.Context, id string) (map[string]interface{}, error)

GetFileSystemByID used for get file system by id

func (*BaseClient) GetFileSystemByName

func (cli *BaseClient) GetFileSystemByName(ctx context.Context, name string) (map[string]interface{}, error)

GetFileSystemByName used for get file system by name

func (*BaseClient) GetHostByName

func (cli *BaseClient) GetHostByName(ctx context.Context, name string) (map[string]interface{}, error)

GetHostByName used to get host by name

func (*BaseClient) GetHostGroupByName

func (cli *BaseClient) GetHostGroupByName(ctx context.Context, name string) (map[string]interface{}, error)

GetHostGroupByName used for get host group by name

func (*BaseClient) GetHostLunId

func (cli *BaseClient) GetHostLunId(ctx context.Context, hostID, lunID string) (string, error)

GetHostLunId used for get host lun id

func (*BaseClient) GetHyperMetroDomain

func (cli *BaseClient) GetHyperMetroDomain(ctx context.Context, domainID string) (map[string]interface{}, error)

GetHyperMetroDomain used for get hyper metro domain by domain id

func (*BaseClient) GetHyperMetroDomainByName

func (cli *BaseClient) GetHyperMetroDomainByName(ctx context.Context, name string) (map[string]interface{}, error)

GetHyperMetroDomainByName used for get hyper metro domain by name

func (*BaseClient) GetHyperMetroPair

func (cli *BaseClient) GetHyperMetroPair(ctx context.Context, pairID string) (map[string]interface{}, error)

GetHyperMetroPair used for get hyper metro pair by pair id

func (*BaseClient) GetHyperMetroPairByLocalObjID

func (cli *BaseClient) GetHyperMetroPairByLocalObjID(ctx context.Context, objID string) (map[string]interface{}, error)

GetHyperMetroPairByLocalObjID used for get hyper metro pair by local object id

func (cli *BaseClient) GetISCSIHostLink(ctx context.Context, hostID string) ([]interface{}, error)

GetISCSIHostLink used for get iscsi host link

func (*BaseClient) GetIscsiInitiator

func (cli *BaseClient) GetIscsiInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)

GetIscsiInitiator used for get iscsi initiator

func (*BaseClient) GetIscsiInitiatorByID

func (cli *BaseClient) GetIscsiInitiatorByID(ctx context.Context, initiator string) (map[string]interface{}, error)

GetIscsiInitiatorByID used for get iscsi initiator by id

func (*BaseClient) GetIscsiTgtPort

func (cli *BaseClient) GetIscsiTgtPort(ctx context.Context) ([]interface{}, error)

GetIscsiTgtPort used for get iscsi target port

func (*BaseClient) GetLicenseFeature

func (cli *BaseClient) GetLicenseFeature(ctx context.Context) (map[string]int, error)

GetLicenseFeature used for get license feature

func (*BaseClient) GetLogicPort

func (cli *BaseClient) GetLogicPort(ctx context.Context, addr string) (*Lif, error)

GetLogicPort gets logic port information by port address

func (*BaseClient) GetLunByID

func (cli *BaseClient) GetLunByID(ctx context.Context, id string) (map[string]interface{}, error)

GetLunByID used for get lun by id

func (*BaseClient) GetLunByName

func (cli *BaseClient) GetLunByName(ctx context.Context, name string) (map[string]interface{}, error)

GetLunByName used for get lun by name

func (*BaseClient) GetLunCopyByID

func (cli *BaseClient) GetLunCopyByID(ctx context.Context, lunCopyID string) (map[string]interface{}, error)

GetLunCopyByID used for get lun copy by id

func (*BaseClient) GetLunCopyByName

func (cli *BaseClient) GetLunCopyByName(ctx context.Context, name string) (map[string]interface{}, error)

GetLunCopyByName used for get lun copy by name

func (*BaseClient) GetLunCountOfHost

func (cli *BaseClient) GetLunCountOfHost(ctx context.Context, hostID string) (int64, error)

GetLunCountOfHost used for get lun count of host

func (*BaseClient) GetLunCountOfMapping

func (cli *BaseClient) GetLunCountOfMapping(ctx context.Context, mappingID string) (int64, error)

GetLunCountOfMapping used for get lun count of mapping by mapping id

func (*BaseClient) GetLunGroupByName

func (cli *BaseClient) GetLunGroupByName(ctx context.Context, name string) (map[string]interface{}, error)

GetLunGroupByName used for get lun group by name

func (*BaseClient) GetLunSnapshotByName

func (cli *BaseClient) GetLunSnapshotByName(ctx context.Context, name string) (map[string]interface{}, error)

GetLunSnapshotByName used for get lun snapshot by name

func (*BaseClient) GetMappingByName

func (cli *BaseClient) GetMappingByName(ctx context.Context, name string) (map[string]interface{}, error)

GetMappingByName used for get mapping by name

func (*BaseClient) GetNFSServiceSetting

func (cli *BaseClient) GetNFSServiceSetting(ctx context.Context) (map[string]bool, error)

GetNFSServiceSetting used for get nfs service setting

func (*BaseClient) GetNfsShareAccess

func (cli *BaseClient) GetNfsShareAccess(ctx context.Context,
	parentID, name, vStoreID string) (map[string]interface{}, error)

GetNfsShareAccess used for get nfs share access

func (*BaseClient) GetNfsShareAccessCount

func (cli *BaseClient) GetNfsShareAccessCount(ctx context.Context, parentID, vStoreID string) (int64, error)

GetNfsShareAccessCount used for get nfs share access count by id

func (*BaseClient) GetNfsShareAccessRange

func (cli *BaseClient) GetNfsShareAccessRange(ctx context.Context, parentID, vStoreID string, startRange,
	endRange int64) ([]interface{}, error)

GetNfsShareAccessRange used for get nfs share access

func (*BaseClient) GetNfsShareByPath

func (cli *BaseClient) GetNfsShareByPath(ctx context.Context, path, vStoreID string) (map[string]interface{}, error)

GetNfsShareByPath used for get nfs share by path

func (*BaseClient) GetPoolByName

func (cli *BaseClient) GetPoolByName(ctx context.Context, name string) (map[string]interface{}, error)

GetPoolByName used for get pool by name

func (*BaseClient) GetQosByID

func (cli *BaseClient) GetQosByID(ctx context.Context, qosID, vStoreID string) (map[string]interface{}, error)

GetQosByID used for get qos by id

func (*BaseClient) GetQosByName

func (cli *BaseClient) GetQosByName(ctx context.Context, name, vStoreID string) (map[string]interface{}, error)

GetQosByName used for get qos by name

func (*BaseClient) GetQuota

func (cli *BaseClient) GetQuota(ctx context.Context, quotaID, vStoreID string, spaceUnitType uint32) (map[string]interface{}, error)

GetQuota gets quota info by id

func (*BaseClient) GetRemoteDeviceBySN

func (cli *BaseClient) GetRemoteDeviceBySN(ctx context.Context, sn string) (map[string]interface{}, error)

GetRemoteDeviceBySN used for get remote device by sn

func (*BaseClient) GetReplicationPairByID

func (cli *BaseClient) GetReplicationPairByID(ctx context.Context, pairID string) (map[string]interface{}, error)

GetReplicationPairByID used for get replication pair by pair id

func (*BaseClient) GetReplicationPairByResID

func (cli *BaseClient) GetReplicationPairByResID(ctx context.Context, resID string, resType int) (
	[]map[string]interface{}, error)

GetReplicationPairByResID used for get replication

func (*BaseClient) GetReplicationvStorePairByvStore

func (cli *BaseClient) GetReplicationvStorePairByvStore(ctx context.Context,
	vStoreID string) (map[string]interface{}, error)

GetReplicationvStorePairByvStore used for get replication vstore pair by vstore id

func (*BaseClient) GetRequest

func (cli *BaseClient) GetRequest(ctx context.Context,
	method string, url string,
	data map[string]interface{}) (*http.Request, error)

GetRequest return the request info

func (*BaseClient) GetRoCEInitiator

func (cli *BaseClient) GetRoCEInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)

GetRoCEInitiator used for get RoCE initiator

func (*BaseClient) GetRoCEInitiatorByID

func (cli *BaseClient) GetRoCEInitiatorByID(ctx context.Context, initiator string) (map[string]interface{}, error)

GetRoCEInitiatorByID used for get RoCE initiator by id

func (*BaseClient) GetRoCEPortalByIP

func (cli *BaseClient) GetRoCEPortalByIP(ctx context.Context, tgtPortal string) (map[string]interface{}, error)

GetRoCEPortalByIP used for get RoCE portal by ip

func (*BaseClient) GetStorageVersion

func (cli *BaseClient) GetStorageVersion() string

GetStorageVersion used for get storage version

func (*BaseClient) GetSystem

func (cli *BaseClient) GetSystem(ctx context.Context) (map[string]interface{}, error)

GetSystem used for get system info

func (*BaseClient) GetVStorePairs

func (cli *BaseClient) GetVStorePairs(ctx context.Context) ([]interface{}, error)

GetVStorePairs used for get vStore pairs

func (*BaseClient) GetvStoreByName

func (cli *BaseClient) GetvStoreByName(ctx context.Context, name string) (map[string]interface{}, error)

GetvStoreByName used for get vstore info by vstore name

func (*BaseClient) GetvStoreID

func (cli *BaseClient) GetvStoreID() string

GetvStoreID used for get vstore ID in *BaseClient

func (*BaseClient) GetvStoreName

func (cli *BaseClient) GetvStoreName() string

GetvStoreName used for get vstore name in *BaseClient

func (*BaseClient) GetvStorePairByID

func (cli *BaseClient) GetvStorePairByID(ctx context.Context, pairID string) (map[string]interface{}, error)

GetvStorePairByID used for get vstore pair by pair id

func (*BaseClient) IsSupportContainer

func (cli *BaseClient) IsSupportContainer(ctx context.Context) bool

IsSupportContainer used to determine whether labels are supported. If 404 is returned when a PV label is queried, the container service is not supported.

func (*BaseClient) Login

func (cli *BaseClient) Login(ctx context.Context) error

Login login and set data from response

func (*BaseClient) Logout

func (cli *BaseClient) Logout(ctx context.Context)

Logout logout

func (*BaseClient) MakeLunName

func (cli *BaseClient) MakeLunName(name string) string

MakeLunName v3/v5 storage support 1 to 31 characters

func (*BaseClient) Post

func (cli *BaseClient) Post(ctx context.Context, url string, data map[string]interface{}) (Response, error)

Post provides http request of POST method

func (*BaseClient) Put

func (cli *BaseClient) Put(ctx context.Context, url string, data map[string]interface{}) (Response, error)

Put provides http request of PUT method

func (*BaseClient) QueryAssociateHostGroup

func (cli *BaseClient) QueryAssociateHostGroup(ctx context.Context, objType int, objID string) ([]interface{}, error)

QueryAssociateHostGroup used for query associate host group

func (*BaseClient) QueryAssociateLunGroup

func (cli *BaseClient) QueryAssociateLunGroup(ctx context.Context, objType int, objID string) ([]interface{}, error)

QueryAssociateLunGroup used for query associate lun group by object type and object id

func (*BaseClient) QueryFCInitiatorByHost

func (cli *BaseClient) QueryFCInitiatorByHost(ctx context.Context, hostID string) ([]interface{}, error)

QueryFCInitiatorByHost used for get fc initiator by host id

func (*BaseClient) ReLogin

func (cli *BaseClient) ReLogin(ctx context.Context) error

ReLogin logout and login again

func (*BaseClient) RemoveGroupFromMapping

func (cli *BaseClient) RemoveGroupFromMapping(ctx context.Context, groupType int, groupID, mappingID string) error

RemoveGroupFromMapping used for remove group from mapping

func (*BaseClient) RemoveHostFromGroup

func (cli *BaseClient) RemoveHostFromGroup(ctx context.Context, hostID, hostGroupID string) error

RemoveHostFromGroup used for remove host from group

func (*BaseClient) RemoveLunFromGroup

func (cli *BaseClient) RemoveLunFromGroup(ctx context.Context, lunID, groupID string) error

RemoveLunFromGroup used for remove lun from group

func (*BaseClient) SafeBaseCall

func (cli *BaseClient) SafeBaseCall(ctx context.Context,
	method string,
	url string,
	data map[string]interface{}) (Response, error)

SafeBaseCall provides base call for request

func (*BaseClient) SafeCall

func (cli *BaseClient) SafeCall(ctx context.Context,
	method string, url string,
	data map[string]interface{}) (Response, error)

SafeCall provides call for restful request

func (*BaseClient) SafeDelete

func (cli *BaseClient) SafeDelete(ctx context.Context, url string, data map[string]interface{}) (Response, error)

SafeDelete provides http request of DELETE method

func (*BaseClient) SafeDeleteFileSystem

func (cli *BaseClient) SafeDeleteFileSystem(ctx context.Context, params map[string]interface{}) error

SafeDeleteFileSystem used for delete file system

func (*BaseClient) SafeDeleteNfsShare

func (cli *BaseClient) SafeDeleteNfsShare(ctx context.Context, id, vStoreID string) error

SafeDeleteNfsShare used for delete nfs share by id

func (*BaseClient) SetSystemInfo

func (cli *BaseClient) SetSystemInfo(ctx context.Context) error

SetSystemInfo set system info the mutex lock is required for re-login. Therefore, the internal query of the login interface cannot be performed.

func (*BaseClient) SplitCloneFS

func (cli *BaseClient) SplitCloneFS(ctx context.Context,
	fsID, vStoreId string,
	splitSpeed int,
	isDeleteParentSnapshot bool) error

SplitCloneFS used to split clone

func (*BaseClient) SplitReplicationPair

func (cli *BaseClient) SplitReplicationPair(ctx context.Context, pairID string) error

SplitReplicationPair used for split replication pair by pair id

func (*BaseClient) StartLunCopy

func (cli *BaseClient) StartLunCopy(ctx context.Context, lunCopyID string) error

StartLunCopy used for start lun copy

func (*BaseClient) StopCloneFSSplit

func (cli *BaseClient) StopCloneFSSplit(ctx context.Context, fsID string) error

StopCloneFSSplit used for stop clone split

func (*BaseClient) StopHyperMetroPair

func (cli *BaseClient) StopHyperMetroPair(ctx context.Context, pairID string) error

StopHyperMetroPair used for stop hyper metro pair

func (*BaseClient) StopLunCopy

func (cli *BaseClient) StopLunCopy(ctx context.Context, lunCopyID string) error

StopLunCopy used for stop lun copy

func (*BaseClient) SyncClonePair

func (cli *BaseClient) SyncClonePair(ctx context.Context, clonePairID string) error

SyncClonePair used for synchronize clone pair

func (*BaseClient) SyncHyperMetroPair

func (cli *BaseClient) SyncHyperMetroPair(ctx context.Context, pairID string) error

SyncHyperMetroPair used for synchronize hyper metro pair

func (*BaseClient) SyncReplicationPair

func (cli *BaseClient) SyncReplicationPair(ctx context.Context, pairID string) error

SyncReplicationPair used for synchronize replication pair

func (*BaseClient) UpdateFCInitiator

func (cli *BaseClient) UpdateFCInitiator(ctx context.Context, wwn string, alua map[string]interface{}) error

UpdateFCInitiator used for update fc initiator

func (*BaseClient) UpdateFileSystem

func (cli *BaseClient) UpdateFileSystem(ctx context.Context, fsID string, params map[string]interface{}) error

UpdateFileSystem used for update file system

func (*BaseClient) UpdateHost

func (cli *BaseClient) UpdateHost(ctx context.Context, id string, alua map[string]interface{}) error

UpdateHost used for update host

func (*BaseClient) UpdateIscsiInitiator

func (cli *BaseClient) UpdateIscsiInitiator(ctx context.Context, initiator string, alua map[string]interface{}) error

UpdateIscsiInitiator used for update iscsi initiator

func (*BaseClient) UpdateLun

func (cli *BaseClient) UpdateLun(ctx context.Context, lunID string, params map[string]interface{}) error

UpdateLun used for update lun

func (*BaseClient) UpdateQos

func (cli *BaseClient) UpdateQos(ctx context.Context, qosID, vStoreID string, params map[string]interface{}) error

UpdateQos used for update qos

func (*BaseClient) UpdateQuota

func (cli *BaseClient) UpdateQuota(ctx context.Context, quotaID string, params map[string]interface{}) error

UpdateQuota updates quota by id

func (*BaseClient) ValidateLogin

func (cli *BaseClient) ValidateLogin(ctx context.Context) error

ValidateLogin validates the login info

type BaseClientInterface

type BaseClientInterface interface {
	ApplicationType
	Clone
	FC
	Filesystem
	FSSnapshot
	Host
	HyperMetro
	Iscsi
	Lun
	LunCopy
	LunSnapshot
	Mapping
	Qos
	Replication
	RoCE
	System
	VStore
	DTree
	OceanStorQuota
	Container
	LIF

	Call(ctx context.Context, method string, url string, data map[string]interface{}) (Response, error)
	SafeCall(ctx context.Context, method string, url string, data map[string]interface{}) (Response, error)
	BaseCall(ctx context.Context, method string, url string, data map[string]interface{}) (Response, error)
	SafeBaseCall(ctx context.Context, method string, url string, data map[string]interface{}) (Response, error)
	Get(ctx context.Context, url string, data map[string]interface{}) (Response, error)
	Post(ctx context.Context, url string, data map[string]interface{}) (Response, error)
	Put(ctx context.Context, url string, data map[string]interface{}) (Response, error)
	Delete(ctx context.Context, url string, data map[string]interface{}) (Response, error)
	SafeDelete(ctx context.Context, url string, data map[string]interface{}) (Response, error)
	GetRequest(ctx context.Context, method string, url string, data map[string]interface{}) (*http.Request, error)
	DuplicateClient() *BaseClient
	Login(ctx context.Context) error
	Logout(ctx context.Context)
	ReLogin(ctx context.Context) error
	GetBackendID() string
}

BaseClientInterface defines interfaces for base client operations

type Clone

type Clone interface {
	// DeleteClonePair used for delete clone pair
	DeleteClonePair(ctx context.Context, clonePairID string) error
	// GetClonePairInfo used for get clone pair info
	GetClonePairInfo(ctx context.Context, clonePairID string) (map[string]interface{}, error)
	// CreateClonePair used for create clone pair
	CreateClonePair(ctx context.Context, srcLunID, dstLunID string, cloneSpeed int) (map[string]interface{}, error)
	// SyncClonePair used for synchronize clone pair
	SyncClonePair(ctx context.Context, clonePairID string) error
	// StopCloneFSSplit used for stop clone split
	StopCloneFSSplit(ctx context.Context, fsID string) error
	// SplitCloneFS used to split clone
	SplitCloneFS(ctx context.Context, fsID, vStoreId string, splitSpeed int, isDeleteParentSnapshot bool) error
	// CloneFileSystem used for clone file system
	CloneFileSystem(ctx context.Context, name string, allocType int, parentID, parentSnapshotID string) (
		map[string]interface{}, error)
}

Clone defines interfaces for clone operations

type Container

type Container interface {
	IsSupportContainer(ctx context.Context) bool
}

Container interface of container service

type DTree

type DTree interface {
	// CreateDTree use for create a dTree
	CreateDTree(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)
	// GetDTreeByName use for get dTree information
	GetDTreeByName(ctx context.Context, parentID, parentName, vStoreID, name string) (map[string]interface{}, error)
	// DeleteDTreeByID use for delete a dTree
	DeleteDTreeByID(ctx context.Context, vStoreID, dTreeID string) error
	// DeleteDTreeByName use for delete a dTree by name
	DeleteDTreeByName(ctx context.Context, parentName, dTreeName, vStoreID string) error
}

DTree defines interfaces for DTree operations

type FC

type FC interface {
	// QueryFCInitiatorByHost used for get fc initiator by host id
	QueryFCInitiatorByHost(ctx context.Context, hostID string) ([]interface{}, error)
	// GetFCInitiator used for get fc initiator
	GetFCInitiator(ctx context.Context, wwn string) (map[string]interface{}, error)
	// GetFCInitiatorByID used for get fc initiator by id(wwn)
	GetFCInitiatorByID(ctx context.Context, wwn string) (map[string]interface{}, error)
	// UpdateFCInitiator used for update fc initiator
	UpdateFCInitiator(ctx context.Context, wwn string, alua map[string]interface{}) error
	// AddFCInitiatorToHost used for add fc initiator to host
	AddFCInitiatorToHost(ctx context.Context, initiator, hostID string) error
	// GetFCTargetWWNs used for get fc target WWNs
	GetFCTargetWWNs(ctx context.Context, initiatorWWN string) ([]string, error)
	// GetFCHostLink used for get fc host link by host id
	GetFCHostLink(ctx context.Context, hostID string) ([]interface{}, error)
}

FC defines interfaces for fc operations

type FSSnapshot

type FSSnapshot interface {
	// DeleteFSSnapshot used for delete file system snapshot by id
	DeleteFSSnapshot(ctx context.Context, snapshotID string) error
	// CreateFSSnapshot used for create file system snapshot
	CreateFSSnapshot(ctx context.Context, name, parentID string) (map[string]interface{}, error)
	// GetFSSnapshotByName used for get file system snapshot by snapshot name
	GetFSSnapshotByName(ctx context.Context, parentID, snapshotName string) (map[string]interface{}, error)
	// GetFSSnapshotCountByParentId used for get file system snapshot count by parent id
	GetFSSnapshotCountByParentId(ctx context.Context, ParentId string) (int, error)
}

FSSnapshot defines interfaces for file system operations

type Filesystem

type Filesystem interface {
	// GetFileSystemByName used for get file system by name
	GetFileSystemByName(ctx context.Context, name string) (map[string]interface{}, error)
	// GetFileSystemByID used for get file system by id
	GetFileSystemByID(ctx context.Context, id string) (map[string]interface{}, error)
	// GetNfsShareByPath used for get nfs share by path
	GetNfsShareByPath(ctx context.Context, path, vStoreID string) (map[string]interface{}, error)
	// GetNfsShareAccess used for get nfs share access
	GetNfsShareAccess(ctx context.Context, parentID, name, vStoreID string) (map[string]interface{}, error)
	// GetNfsShareAccessCount used for get nfs share access count by id
	GetNfsShareAccessCount(ctx context.Context, parentID, vStoreID string) (int64, error)
	// GetNfsShareAccessRange used for get nfs share access
	GetNfsShareAccessRange(ctx context.Context, parentID, vStoreID string, startRange, endRange int64) ([]interface{}, error)
	// CreateFileSystem used for create file system
	CreateFileSystem(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)
	// UpdateFileSystem used for update file system
	UpdateFileSystem(ctx context.Context, fsID string, params map[string]interface{}) error
	// ExtendFileSystem used for extend file system by new capacity
	ExtendFileSystem(ctx context.Context, fsID string, newCapacity int64) error
	// AllowNfsShareAccess used for allow nfs share access
	AllowNfsShareAccess(ctx context.Context, req *AllowNfsShareAccessRequest) error
	// CreateNfsShare used for create nfs share
	CreateNfsShare(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)
	// DeleteFileSystem used for delete file system
	DeleteFileSystem(ctx context.Context, params map[string]interface{}) error
	// SafeDeleteFileSystem used for delete file system
	SafeDeleteFileSystem(ctx context.Context, params map[string]interface{}) error
	// DeleteNfsShareAccess used for delete nfs share access
	DeleteNfsShareAccess(ctx context.Context, accessID, vStoreID string) error
	// DeleteNfsShare used for delete nfs share by id
	DeleteNfsShare(ctx context.Context, id, vStoreID string) error
	// SafeDeleteNfsShare used for delete nfs share by id
	SafeDeleteNfsShare(ctx context.Context, id, vStoreID string) error
	// GetNFSServiceSetting used for get nfs service setting
	GetNFSServiceSetting(ctx context.Context) (map[string]bool, error)
}

Filesystem defines interfaces for file system operations

type FilesystemResponse

type FilesystemResponse struct {
	// ID is the id of the filesystem
	ID string `json:"ID,omitempty"`
	// NAME is the name of the filesystem
	NAME string `json:"NAME,omitempty"`
	// CAPACITY is the capacity of the filesystem
	CAPACITY string `json:"CAPACITY,omitempty"`
	// FileSystemMode is the mode of the filesystem, "0" means local filesystem, and "1" means hyper metro filesystem
	FileSystemMode string `json:"fileSystemMode,omitempty"`
	// HyperMetroPairIds is the hyper metro pair ids of filesystem
	HyperMetroPairIds []string `json:"-"`
}

FilesystemResponse is the response of get filesystem request

type HTTP

type HTTP interface {
	Do(req *http.Request) (*http.Response, error)
}

HTTP defines for http request process

type Host

type Host interface {
	// QueryAssociateHostGroup used for query associate host group
	QueryAssociateHostGroup(ctx context.Context, objType int, objID string) ([]interface{}, error)
	// GetHostByName used to get host by name
	GetHostByName(ctx context.Context, name string) (map[string]interface{}, error)
	// GetHostGroupByName used for get host group by name
	GetHostGroupByName(ctx context.Context, name string) (map[string]interface{}, error)
	// DeleteHost used for delete host by id
	DeleteHost(ctx context.Context, id string) error
	// DeleteHostGroup used for delete host group
	DeleteHostGroup(ctx context.Context, id string) error
	// CreateHost used for create  host
	CreateHost(ctx context.Context, name string) (map[string]interface{}, error)
	// UpdateHost used for update host
	UpdateHost(ctx context.Context, id string, alua map[string]interface{}) error
	// AddHostToGroup used for add host to group
	AddHostToGroup(ctx context.Context, hostID, hostGroupID string) error
	// CreateHostGroup used for create host group
	CreateHostGroup(ctx context.Context, name string) (map[string]interface{}, error)
	// RemoveHostFromGroup used for remove host from group
	RemoveHostFromGroup(ctx context.Context, hostID, hostGroupID string) error
}

Host defines interfaces for host operations

type HyperMetro

type HyperMetro interface {
	// GetHyperMetroDomainByName used for get hyper metro domain by name
	GetHyperMetroDomainByName(ctx context.Context, name string) (map[string]interface{}, error)
	// GetHyperMetroDomain used for get hyper metro domain by domain id
	GetHyperMetroDomain(ctx context.Context, domainID string) (map[string]interface{}, error)
	// GetFSHyperMetroDomain used for get file system hyper metro domain by domain name
	GetFSHyperMetroDomain(ctx context.Context, domainName string) (map[string]interface{}, error)
	// GetHyperMetroPair used for get hyper metro pair by pair id
	GetHyperMetroPair(ctx context.Context, pairID string) (map[string]interface{}, error)
	// GetHyperMetroPairByLocalObjID used for get hyper metro pair by local object id
	GetHyperMetroPairByLocalObjID(ctx context.Context, objID string) (map[string]interface{}, error)
	// DeleteHyperMetroPair used for delete hyper metro pair by pair id
	DeleteHyperMetroPair(ctx context.Context, pairID string, onlineDelete bool) error
	// CreateHyperMetroPair used for create hyper metro pair
	CreateHyperMetroPair(ctx context.Context, data map[string]interface{}) (map[string]interface{}, error)
	// SyncHyperMetroPair used for synchronize hyper metro pair
	SyncHyperMetroPair(ctx context.Context, pairID string) error
	// StopHyperMetroPair used for stop hyper metro pair
	StopHyperMetroPair(ctx context.Context, pairID string) error
}

HyperMetro defines interfaces for hyper metro operations

type Iscsi

type Iscsi interface {
	// GetIscsiInitiator used for get iscsi initiator
	GetIscsiInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)
	// GetIscsiInitiatorByID used for get iscsi initiator by id
	GetIscsiInitiatorByID(ctx context.Context, initiator string) (map[string]interface{}, error)
	// UpdateIscsiInitiator used for update iscsi initiator
	UpdateIscsiInitiator(ctx context.Context, initiator string, alua map[string]interface{}) error
	// AddIscsiInitiator used for add iscsi initiator
	AddIscsiInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)
	// AddIscsiInitiatorToHost used for add iscsi initiator to host
	AddIscsiInitiatorToHost(ctx context.Context, initiator, hostID string) error
	// GetIscsiTgtPort used for get iscsi target port
	GetIscsiTgtPort(ctx context.Context) ([]interface{}, error)
	// GetISCSIHostLink used for get iscsi host link
	GetISCSIHostLink(ctx context.Context, hostID string) ([]interface{}, error)
}

Iscsi defines interfaces for iscsi operations

type LIF

type LIF interface {
	// GetLogicPort get current lif info, the storage interface is called
	GetLogicPort(ctx context.Context, addr string) (*Lif, error)
	// GetCurrentLifWwn get current lif wwn, the storage interface is not called
	GetCurrentLifWwn() string
	// GetCurrentLif get current lif
	GetCurrentLif(ctx context.Context) string
}

LIF defines interfaces for lif operations

type Lif

type Lif struct {
	HomeSiteWwn string `json:"HOMESITEWWN"`
}

Lif holds the logic port information

type Lun

type Lun interface {
	// QueryAssociateLunGroup used for query associate lun group by object type and object id
	QueryAssociateLunGroup(ctx context.Context, objType int, objID string) ([]interface{}, error)
	// GetLunByName used for get lun by name
	GetLunByName(ctx context.Context, name string) (map[string]interface{}, error)
	// MakeLunName create lun name based on different storage models
	MakeLunName(name string) string
	// GetLunByID used for get lun by id
	GetLunByID(ctx context.Context, id string) (map[string]interface{}, error)
	// GetLunGroupByName used for get lun group by name
	GetLunGroupByName(ctx context.Context, name string) (map[string]interface{}, error)
	// GetLunCountOfHost used for get lun count of host
	GetLunCountOfHost(ctx context.Context, hostID string) (int64, error)
	// GetLunCountOfMapping used for get lun count of mapping by mapping id
	GetLunCountOfMapping(ctx context.Context, mappingID string) (int64, error)
	// DeleteLunGroup used for delete lun group by lun group id
	DeleteLunGroup(ctx context.Context, id string) error
	// DeleteLun used for delete lun by lun id
	DeleteLun(ctx context.Context, id string) error
	// RemoveLunFromGroup used for remove lun from group
	RemoveLunFromGroup(ctx context.Context, lunID, groupID string) error
	// ExtendLun used for extend lun
	ExtendLun(ctx context.Context, lunID string, newCapacity int64) error
	// CreateLun used for create lun
	CreateLun(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)
	// GetHostLunId used for get host lun id
	GetHostLunId(ctx context.Context, hostID, lunID string) (string, error)
	// UpdateLun used for update lun
	UpdateLun(ctx context.Context, lunID string, params map[string]interface{}) error
	// AddLunToGroup used for add lun to group
	AddLunToGroup(ctx context.Context, lunID string, groupID string) error
	// CreateLunGroup used for create lun group
	CreateLunGroup(ctx context.Context, name string) (map[string]interface{}, error)
}

Lun defines interfaces for lun operations

type LunCopy

type LunCopy interface {
	// GetLunCopyByID used for get lun copy by id
	GetLunCopyByID(ctx context.Context, lunCopyID string) (map[string]interface{}, error)
	// GetLunCopyByName used for get lun copy by name
	GetLunCopyByName(ctx context.Context, name string) (map[string]interface{}, error)
	// DeleteLunCopy used for delete lun copy by id
	DeleteLunCopy(ctx context.Context, lunCopyID string) error
	// CreateLunCopy used for create lun copy
	CreateLunCopy(ctx context.Context, name, srcLunID, dstLunID string, copySpeed int) (map[string]interface{}, error)
	// StartLunCopy used for start lun copy
	StartLunCopy(ctx context.Context, lunCopyID string) error
	// StopLunCopy used for stop lun copy
	StopLunCopy(ctx context.Context, lunCopyID string) error
}

LunCopy defines interfaces for lun copy operations

type LunSnapshot

type LunSnapshot interface {
	// GetLunSnapshotByName used for get lun snapshot by name
	GetLunSnapshotByName(ctx context.Context, name string) (map[string]interface{}, error)
	// DeleteLunSnapshot used for delete lun snapshot
	DeleteLunSnapshot(ctx context.Context, snapshotID string) error
	// CreateLunSnapshot used for create lun snapshot
	CreateLunSnapshot(ctx context.Context, name, lunID string) (map[string]interface{}, error)
	// ActivateLunSnapshot used for activate lun snapshot
	ActivateLunSnapshot(ctx context.Context, snapshotID string) error
	// DeactivateLunSnapshot used for stop lun snapshot
	DeactivateLunSnapshot(ctx context.Context, snapshotID string) error
}

LunSnapshot defines interfaces for lun snapshot operations

type Mapping

type Mapping interface {
	// DeleteMapping used for delete mapping
	DeleteMapping(ctx context.Context, id string) error
	// GetMappingByName used for get mapping by name
	GetMappingByName(ctx context.Context, name string) (map[string]interface{}, error)
	// RemoveGroupFromMapping used for remove group from mapping
	RemoveGroupFromMapping(ctx context.Context, groupType int, groupID, mappingID string) error
	// CreateMapping used for create mapping
	CreateMapping(ctx context.Context, name string) (map[string]interface{}, error)
	// AddGroupToMapping used for add group to mapping
	AddGroupToMapping(ctx context.Context, groupType int, groupID, mappingID string) error
}

Mapping defines interfaces for mapping operations

type MockHTTPClient

type MockHTTPClient struct {
	// contains filtered or unexported fields
}

MockHTTPClient is a mock of HTTPClient interface.

func NewMockHTTPClient

func NewMockHTTPClient(ctrl *gomock.Controller) *MockHTTPClient

NewMockHTTPClient creates a new mock instance.

func (*MockHTTPClient) Do

func (m *MockHTTPClient) Do(req *http.Request) (*http.Response, error)

Do mocks base method.

func (*MockHTTPClient) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

type MockHTTPClientMockRecorder

type MockHTTPClientMockRecorder struct {
	// contains filtered or unexported fields
}

MockHTTPClientMockRecorder is the mock recorder for MockHTTPClient.

func (*MockHTTPClientMockRecorder) Do

func (mr *MockHTTPClientMockRecorder) Do(req interface{}) *gomock.Call

Do indicates an expected call of Do.

type NewClientConfig

type NewClientConfig struct {
	Urls            []string
	User            string
	SecretName      string
	SecretNamespace string
	VstoreName      string
	ParallelNum     string
	BackendID       string
	UseCert         bool
	CertSecretMeta  string
	Storage         string
	Name            string
}

NewClientConfig stores the information needed to create a new OceanStor client

type OceanStorQuota

type OceanStorQuota interface {
	// CreateQuota use for create quota for dTree or file system
	CreateQuota(ctx context.Context, params map[string]interface{}) (map[string]interface{}, error)
	// UpdateQuota use for update a quota
	UpdateQuota(ctx context.Context, quotaID string, params map[string]interface{}) error
	// GetQuota use for get quota information
	GetQuota(ctx context.Context, quotaID, vStoreID string, spaceUnitType uint32) (map[string]interface{}, error)
	// BatchGetQuota use for get quota information
	BatchGetQuota(ctx context.Context, params map[string]interface{}) ([]interface{}, error)
	// DeleteQuota use for delete a quota
	DeleteQuota(ctx context.Context, quotaID, vStoreID string, forceFlag bool) error
}

OceanStorQuota defines interfaces for quota operations

type OceanstorSystem

type OceanstorSystem 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"`
	PointRelease                 string `json:"pointRelease"`
	ProductModeString            string `json:"productModeString"`
	UnMappedLunsCountCapacity    string `json:"unMappedLunsCountCapacity"`
	UserFreeCapacity             string `json:"userFreeCapacity"`
	Wwn                          string `json:"wwn"`
	ApolloVersion                string `json:"apolloVersion"`
}

OceanstorSystem holds the system information of Oceanstor storage

type Qos

type Qos interface {
	// GetQosByName used for get qos by name
	GetQosByName(ctx context.Context, name, vStoreID string) (map[string]interface{}, error)
	// GetQosByID used for get qos by id
	GetQosByID(ctx context.Context, qosID, vStoreID string) (map[string]interface{}, error)
	// DeleteQos used for delete qos
	DeleteQos(ctx context.Context, qosID, vStoreID string) error
	// CreateQos used for create qos
	CreateQos(ctx context.Context, name, objID, objType, vStoreID string, params map[string]int) (map[string]interface{}, error)
	// UpdateQos used for update qos
	UpdateQos(ctx context.Context, qosID, vStoreID string, params map[string]interface{}) error
	// ActivateQos used for active qos
	ActivateQos(ctx context.Context, qosID, vStoreID string) error
	// DeactivateQos used for deactivate qos
	DeactivateQos(ctx context.Context, qosID, vStoreID string) error
}

Qos defines interfaces for qos operations

type Replication

type Replication interface {
	// GetReplicationPairByResID used for get replication
	GetReplicationPairByResID(ctx context.Context, resID string, resType int) ([]map[string]interface{}, error)
	// GetReplicationPairByID used for get replication pair by pair id
	GetReplicationPairByID(ctx context.Context, pairID string) (map[string]interface{}, error)
	// GetReplicationvStorePairByvStore used for get replication vstore pair by vstore id
	GetReplicationvStorePairByvStore(ctx context.Context, vStoreID string) (map[string]interface{}, error)
	// DeleteReplicationPair used for delete replication pair by pair id
	DeleteReplicationPair(ctx context.Context, pairID string) error
	// CreateReplicationPair used for create replication pair
	CreateReplicationPair(ctx context.Context, data map[string]interface{}) (map[string]interface{}, error)
	// SyncReplicationPair used for synchronize replication pair
	SyncReplicationPair(ctx context.Context, pairID string) error
	// SplitReplicationPair used for split replication pair by pair id
	SplitReplicationPair(ctx context.Context, pairID string) error
}

Replication defines interfaces for replication operations

type Response

type Response struct {
	Error map[string]interface{} `json:"error"`
	Data  interface{}            `json:"data,omitempty"`
}

Response defines response of request

func (*Response) AssertErrorCode

func (resp *Response) AssertErrorCode() error

AssertErrorCode asserts if error code represents success

func (*Response) GetData

func (resp *Response) GetData(val any) error

GetData converts interface{} type data to specific type

type RoCE

type RoCE interface {
	// GetRoCEInitiator used for get RoCE initiator
	GetRoCEInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)
	// GetRoCEInitiatorByID used for get RoCE initiator by id
	GetRoCEInitiatorByID(ctx context.Context, initiator string) (map[string]interface{}, error)
	// AddRoCEInitiator used for add RoCE initiator
	AddRoCEInitiator(ctx context.Context, initiator string) (map[string]interface{}, error)
	// AddRoCEInitiatorToHost used for add RoCE initiator to host
	AddRoCEInitiatorToHost(ctx context.Context, initiator, hostID string) error
	// GetRoCEPortalByIP used for get RoCE portal by ip
	GetRoCEPortalByIP(ctx context.Context, tgtPortal string) (map[string]interface{}, error)
}

RoCE defines interfaces for RoCE operations

type System

type System interface {
	// GetPoolByName used for get pool by name
	GetPoolByName(ctx context.Context, name string) (map[string]interface{}, error)
	// GetAllPools used for get all pools
	GetAllPools(ctx context.Context) (map[string]interface{}, error)
	// GetSystem used for get system info
	GetSystem(ctx context.Context) (map[string]interface{}, error)
	// GetLicenseFeature used for get license feature
	GetLicenseFeature(ctx context.Context) (map[string]int, error)
	// GetRemoteDeviceBySN used for get remote device by sn
	GetRemoteDeviceBySN(ctx context.Context, sn string) (map[string]interface{}, error)
	// GetAllRemoteDevices used for get all remote devices
	GetAllRemoteDevices(ctx context.Context) ([]map[string]interface{}, error)
	// GetDeviceSN used for get device sn
	GetDeviceSN() string
	// GetStorageVersion used for get storage version
	GetStorageVersion() string
	// GetCurrentSiteWwn used for get current site wwn
	GetCurrentSiteWwn() string
	// SetSystemInfo set system info
	SetSystemInfo(ctx context.Context) error
}

System defines interfaces for system operations

type VStore

type VStore interface {
	// GetvStoreName used for get vstore name in *BaseClient
	GetvStoreName() string
	// GetvStoreID used for get vstore ID in *BaseClient
	GetvStoreID() string
	// GetvStoreByName used for get vstore info by vstore name
	GetvStoreByName(ctx context.Context, name string) (map[string]interface{}, error)
	// GetvStorePairByID used for get vstore pair by pair id
	GetvStorePairByID(ctx context.Context, pairID string) (map[string]interface{}, error)
	// GetVStorePairs used for vStore pairs
	GetVStorePairs(ctx context.Context) ([]interface{}, error)
}

VStore defines interfaces for vstore operations

Jump to

Keyboard shortcuts

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