arraysymmetrix

package
v3.0.0-rc21 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2026 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Resize methods
	ResizeExact resizeMethod = iota
	ResizeUp
	ResizeDown
)

Variables

View Source
var (
	// PromptReader is bufio.NewReader(os.Stdin) for testing dangerous command only, normally nil
	//PromptReader *bufio.Reader
	PromptReader = bufio.NewReader(os.Stdin)

	ErrNotFree = errors.New("device is not free")
)
View Source
var (
	DumpDefaultGKCount    = 6
	DumpDefaultConsistent = true
)

Functions

func NewDriver

func NewDriver() array.Driver

Types

type Array

type Array struct {
	*array.Array
	// contains filtered or unexported fields
}

func New

func New() *Array

func (*Array) AddDisk

func (t *Array) AddDisk(ctx context.Context, opt OptAddDisk) (array.Disk, error)

func (*Array) AddMasking

func (t *Array) AddMasking(ctx context.Context, b []byte) (MaskingDump, error)

func (*Array) AddThinDev

func (t *Array) AddThinDev(ctx context.Context, opt OptAddThinDev) (Device, error)

func (*Array) CreatePair

func (t *Array) CreatePair(ctx context.Context, opt OptCreatePair) error

func (*Array) CreateThinDev

func (t *Array) CreateThinDev(ctx context.Context, opt OptAddThinDev) ([]string, error)

func (*Array) DelDisk

func (t *Array) DelDisk(ctx context.Context, opt OptDelDisk) (array.Disk, error)

func (*Array) DelThinDev

func (t *Array) DelThinDev(ctx context.Context, opt OptDelThinDev) (Device, error)

func (*Array) DeletePair

func (t *Array) DeletePair(ctx context.Context, opt OptDeletePair) (*RDF, error)

func (*Array) FreeThinDev

func (t *Array) FreeThinDev(ctx context.Context, opt OptFreeThinDev) error

func (*Array) IsPowerMax

func (t *Array) IsPowerMax() bool

func (*Array) IsThinDevFreed

func (t *Array) IsThinDevFreed(ctx context.Context, sid, devId string) (bool, error)

func (*Array) IsThinDevStatusDeallocating

func (t *Array) IsThinDevStatusDeallocating(ctx context.Context, sid, devId string) (bool, error)

func (*Array) IsThinDevStatusFreeingAll

func (t *Array) IsThinDevStatusFreeingAll(ctx context.Context, sid, devId string) (bool, error)

func (*Array) Log

func (t *Array) Log() *plog.Logger

func (*Array) MapDisk

func (t *Array) MapDisk(ctx context.Context, opt OptMapDisk) (array.Disk, error)

func (*Array) MaskDBFile

func (t *Array) MaskDBFile() (string, error)

func (*Array) PrepareEnv

func (t *Array) PrepareEnv() error

func (*Array) RenameDisk

func (t *Array) RenameDisk(ctx context.Context, opt OptRenameDisk) (Device, error)

func (*Array) ResizeDisk

func (t *Array) ResizeDisk(ctx context.Context, opt OptResizeDisk) (Device, error)

func (*Array) Run

func (t *Array) Run(args []string) error

func (*Array) SetSRDFMode

func (t *Array) SetSRDFMode(ctx context.Context, opt OptSetSRDFMode) error

func (*Array) SymAccessListDevInitiator

func (t *Array) SymAccessListDevInitiator(ctx context.Context, sid, wwn string) ([]InitiatorGroup, error)

func (*Array) SymAccessListDevStorage

func (t *Array) SymAccessListDevStorage(ctx context.Context, sid, devId string) ([]StorageGroup, error)

func (*Array) SymAccessListPort

func (t *Array) SymAccessListPort(ctx context.Context, sid string) ([]PortGroup, error)

func (*Array) SymAccessListViewDetail

func (t *Array) SymAccessListViewDetail(ctx context.Context) ([]MaskingView, error)

func (*Array) SymAccessShowPort

func (t *Array) SymAccessShowPort(ctx context.Context, sid, name string) (ShowPortGroup, error)

func (*Array) SymAccessShowViewDetail

func (t *Array) SymAccessShowViewDetail(ctx context.Context, name string) ([]MaskingView, error)

func (*Array) SymCfgDirectorList

func (t *Array) SymCfgDirectorList(ctx context.Context, s string) ([]Director, error)

func (*Array) SymCfgList

func (t *Array) SymCfgList(ctx context.Context, s string) (SymmInfo, error)

func (*Array) SymCfgPoolList

func (t *Array) SymCfgPoolList(ctx context.Context) ([]DevicePool, error)

func (*Array) SymCfgRDFGList

func (t *Array) SymCfgRDFGList(ctx context.Context, s string) ([]RDFGroup, error)

func (*Array) SymCfgSLOList

func (t *Array) SymCfgSLOList(ctx context.Context) ([]SLO, error)

func (*Array) SymCfgSRPList

func (t *Array) SymCfgSRPList(ctx context.Context) ([]SRP, error)

func (*Array) SymCfgVerifyThinDevStatus

func (t *Array) SymCfgVerifyThinDevStatus(ctx context.Context, sid, devId, status string) (bool, error)

func (*Array) SymDevList

func (t *Array) SymDevList(ctx context.Context, sid string) ([]Device, error)

func (*Array) SymDevListThinDevs

func (t *Array) SymDevListThinDevs(ctx context.Context, sid, devId string) ([]ThinDev, error)

func (*Array) SymDevShow

func (t *Array) SymDevShow(ctx context.Context, sid, devId string) ([]Device, error)

func (*Array) SymDevShowByWWN

func (t *Array) SymDevShowByWWN(ctx context.Context, sid, devId string) ([]Device, error)

func (*Array) SymDiskListDiskGroupSummary

func (t *Array) SymDiskListDiskGroupSummary(ctx context.Context) ([]DiskGroup, error)

func (*Array) SymEnv

func (t *Array) SymEnv() []string

func (*Array) SymSGList

func (t *Array) SymSGList(ctx context.Context, sid string) ([]SGInfo, error)

func (*Array) SymSGShow

func (t *Array) SymSGShow(ctx context.Context, sid, name string) ([]SGInfo, error)

func (*Array) UnmapDisk

func (t *Array) UnmapDisk(ctx context.Context, opt OptUnmapDisk) (array.Disk, error)

type BackEndDisk

type BackEndDisk struct {
	XMLName   xml.Name `xml:"Disk" json:"-"`
	Director  string   `xml:"director" json:"director"`
	Interface string   `xml:"interface" json:"interface"`
	TID       string   `xml:"tid" json:"tid"`
}

type CascadedViewNames

type CascadedViewNames struct {
	XMLName   xml.Name `xml:"Cascaded_View_Names" json:"-"`
	ViewCount int      `xml:"view_count" json:"view_count"`
	ViewNames []string `xml:"view_name" json:"view_name"`
}

type DevBackEnd

type DevBackEnd struct {
	XMLName xml.Name `xml:"Back_End" json:"-"`
}

type DevCapacity

type DevCapacity struct {
	XMLName   xml.Name `xml:"Capacity" json:"-"`
	Megabytes int64    `xml:"megabytes" json:"megabytes"`
	Gigabytes float32  `xml:"gigabytes" json:"gigabytes"`
	Terabytes float32  `xml:"terabytes" json:"terabytes"`
}

type DevFlags

type DevFlags struct {
	XMLName       xml.Name      `xml:"Flags" json:"-"`
	WORMProtected nullable.Bool `xml:"worm_protected" json:"worm_protected"`
	ACLX          nullable.Bool `xml:"aclx" json:"aclx"`
	Meta          nullable.Bool `xml:"meta" json:"meta"`
}

type DevFrontEnd

type DevFrontEnd struct {
	XMLName xml.Name     `xml:"Front_End" json:"-"`
	Port    FrontEndPort `xml:"Port" json:"Port"`
}

type DevInfo

type DevInfo struct {
	XMLName       xml.Name `xml:"Dev_Info" json:"-"`
	DevName       string   `xml:"dev_name" json:"dev_name"`
	SRPName       string   `xml:"srp_name" json:"srp_name"`
	Configuration string   `xml:"configuration" json:"configuration"`
	Status        string   `xml:"status" json:"status"`
	SnapvxSource  bool     `xml:"snapvx_source" json:"snapvx_source"`
	SnapvxTarget  bool     `xml:"snapvx_target" json:"snapvx_target"`
}

type DevPortInfo

type DevPortInfo struct {
	XMLName xml.Name `xml:"dev_port_info" json:"-"`
	Port    int      `xml:"port" json:"port"`
	HostLUN string   `xml:"host_lun" json:"host_lun"`
}

type Device

type Device struct {
	XMLName  xml.Name    `xml:"Device" json:"-"`
	DevInfo  DevInfo     `xml:"Dev_Info" json:"Dev_Info"`
	Flags    DevFlags    `xml:"Flags" json:"Flags"`
	Capacity DevCapacity `xml:"Capacity" json:"Capacity"`
	FrontEnd DevFrontEnd `xml:"Front_End" json:"Front_End"`
	BackEnd  DevBackEnd  `xml:"Back_End" json:"Back_End"`
	RDF      *RDF        `xml:"RDF" json:"RDF"`
	Product  *Product    `xml:"Product" json:"Product"`
}

type DevicePool

type DevicePool struct {
	XMLName       xml.Name         `xml:"DevicePool" json:"-"`
	Name          string           `xml:"pool_name" json:"pool_name"`
	Type          string           `xml:"pool_type" json:"pool_type"`
	DiskLocation  string           `xml:"disk_location" json:"pool_location"`
	Technology    string           `xml:"technology" json:"technology"`
	DevEmulation  string           `xml:"dev_emulation" json:"dev_emulation"`
	Configuration string           `xml:"configuration" json:"configuration"`
	Devs          int              `xml:"pool_devs" json:"pool_devs"`
	State         string           `xml:"pool_state" json:"pool_state"`
	Totals        DevicePoolTotals `xml:"Totals" json:"totals"`
}

type DevicePoolTotals

type DevicePoolTotals struct {
	XMLName           xml.Name `xml:"Totals" json:"-"`
	TotalTracks       int64    `xml:"total_tracks" json:"total_tracks"`
	TotalUsedTracks   int64    `xml:"total_used_tracks" json:"total_used_tracks"`
	TotalFreeTracks   int64    `xml:"total_free_tracks" json:"total_free_tracks"`
	TotalTracksMB     float32  `xml:"total_tracks_mb" json:"total_tracks_mb"`
	TotalUsedTracksMB float32  `xml:"total_used_tracks_mb" json:"total_used_tracks_mb"`
	TotalFreeTracksMB float32  `xml:"total_free_tracks_mb" json:"total_free_tracks_mb"`
	TotalTracksGB     float32  `xml:"total_tracks_gb" json:"total_tracks_gb"`
	TotalUsedTracksGB float32  `xml:"total_used_tracks_gb" json:"total_used_tracks_gb"`
	TotalFreeTracksGB float32  `xml:"total_free_tracks_gb" json:"total_free_tracks_gb"`
	TotalTracksTB     float32  `xml:"total_tracks_tb" json:"total_tracks_tb"`
	TotalUsedTracksTB float32  `xml:"total_used_tracks_tb" json:"total_used_tracks_tb"`
	TotalFreeTracksTB float32  `xml:"total_free_tracks_tb" json:"total_free_tracks_tb"`
	PercentFull       int      `xml:"percent_full" json:"percent_full"`
}

type DirInfo

type DirInfo struct {
	XMLName   xml.Name `xml:"Dir_Info" json:"-"`
	Id        string   `xml:"id" json:"id"`
	Type      string   `xml:"type" json:"type"`
	Status    string   `xml:"status" json:"status"`
	Cores     int      `xml:"cores" json:"cores"`
	EngineNum int      `xml:"engine_num" json:"engine_num"`
	Ports     int      `xml:"ports" json:"ports"`
	Number    int      `xml:"number" json:"number"`
	Slot      int      `xml:"slot" json:"slot"`
}

type DirPort

type DirPort struct {
	XMLName  xml.Name    `xml:"Port" json:"-"`
	PortInfo DirPortInfo `xml:"Port_Info" json:"Port_Info"`
}

type DirPortInfo

type DirPortInfo struct {
	XMLName         xml.Name `xml:"Port_Info" json:"-"`
	Port            int      `xml:"port" json:"port"`
	PortWWN         string   `xml:"port_wwn" json:"port_wwn"`
	PortStatus      string   `xml:"port_status" json:"port_status"`
	NegociatedSpeed string   `xml:"negociated_speed" json:"negociated_speed"`
	MaximumSpeed    string   `xml:"maximum_speed" json:"maximum_speed"`
}

type Director

type Director struct {
	XMLName xml.Name  `xml:"Director" json:"-"`
	DirInfo DirInfo   `xml:"Dir_Info" json:"Dir_Info"`
	Ports   []DirPort `xml:"Port" json:"ports"`
}

type DirectorIdentification

type DirectorIdentification struct {
	XMLName xml.Name `xml:"Director_Identification" json:"-"`
	Dir     string   `xml:"dir" json:"dir"`
	Port    int      `xml:"port" json:"port"`
	PortWWN string   `xml:"port_wwn" json:"port_wwn"`
}

type DiskGroup

type DiskGroup struct {
	XMLName         xml.Name        `xml:"Disk_Group" json:"-"`
	DiskGroupInfo   DiskGroupInfo   `xml:"Disk_Group_Info" json:"Disk_Group_Info"`
	DiskGroupTotals DiskGroupTotals `xml:"Disk_Group_Totals" json:"Disk_Group_Totals"`
}

type DiskGroupInfo

type DiskGroupInfo struct {
	XMLName                xml.Name `xml:"Disk_Group_Info" json:"-"`
	DiskGroupNumber        int      `xml:"disk_group_number" json:"disk_group_number"`
	DiskGroupName          string   `xml:"disk_group_name" json:"disk_group_name"`
	DiskLocation           string   `xml:"disk_location" json:"disk_location"`
	DisksSelected          int      `xml:"disks_selected" json:"disks_selected"`
	Technology             string   `xml:"technology" json:"technology"`
	Speed                  int      `xml:"speed" json:"speed"`
	FormFactor             string   `xml:"form_factor" json:"form_factor"`
	HyperSizeMegabytes     int64    `xml:"hyper_size_megabytes" json:"hyper_size_megabytes"`
	HyperSizeGigabytes     float64  `xml:"hyper_size_gigabytes" json:"hyper_size_gigabytes"`
	HyperSizeTerabytes     float64  `xml:"hyper_size_terabytes" json:"hyper_size_terabytes"`
	MaxHypersPerDisk       int      `xml:"max_hypers_per_disk" json:"max_hypers_per_disk"`
	DiskSizeMegabytes      int64    `xml:"disk_size_megabytes" json:"disk_size_megabytes"`
	DiskSizeGigabytes      float64  `xml:"disk_size_gigabytes" json:"disk_size_gigabytes"`
	DiskSizeTerabytes      float64  `xml:"disk_size_terabytes" json:"disk_size_terabytes"`
	RatedDiskSizeGigabytes int64    `xml:"rated_disk_size_gigabytes" json:"rated_disk_size_gigabytes"`
	RatedDiskSizeTerabytes float64  `xml:"rated_disk_size_terabytes" json:"rated_disk_size_terabytes"`
}

type DiskGroupSummaryTotals

type DiskGroupSummaryTotals struct {
	XMLName xml.Name `xml:"Disk_Group_Summary_Totals" json:"-"`
	Units   string   `xml:"units" json:"units"`
	Total   int64    `xml:"total" json:"total"`
	Free    int64    `xml:"free" json:"free"`
	Actual  int64    `xml:"actual" json:"actual"`
}

type DiskGroupTotals

type DiskGroupTotals struct {
	XMLName xml.Name `xml:"Disk_Group_Totals" json:"-"`
	Units   string   `xml:"units" json:"units"`
	Total   int64    `xml:"total" json:"total"`
	Free    int64    `xml:"free" json:"free"`
	Actual  int64    `xml:"actual" json:"actual"`
}

type FrontEndPort

type FrontEndPort struct {
	XMLName  xml.Name     `xml:"Port" json:"-"`
	Name     string       `xml:"pd_name" json:"pd_name"`
	Director string       `xml:"director" json:"director"`
	Port     nullable.Int `xml:"port" json:"port"`
}

type Initiator

type Initiator struct {
	XMLName      xml.Name `xml:"Initiator" json:"-"`
	WWN          *string  `xml:"wwn" json:"wwn"`
	UserPortName string   `xml:"user_port_name" json:"user_port_name"`
	UserNodeName string   `xml:"user_node_name" json:"user_node_name"`
}

type InitiatorGroup

type InitiatorGroup struct {
	XMLName   xml.Name           `xml:"Initiator_Group" json:"-"`
	GroupInfo InitiatorGroupInfo `xml:"Group_Info" json:"Group_Info"`
}

type InitiatorGroupInfo

type InitiatorGroupInfo struct {
	XMLName       xml.Name      `xml:"Group_Info" json:"-"`
	GroupName     string        `xml:"group_name" json:"group_name"`
	ConsistentLUN string        `xml:"consistent_lun" json:"consistent_lun"`
	DevCount      int           `xml:"dev_count" json:"dev_count"`
	SGCount       int           `xml:"sg_count" json:"sg_count"`
	ViewCount     int           `xml:"view_count" json:"view_count"`
	LastUpdated   string        `xml:"last_updated" json:"last_updated"`
	MaskViewNames MaskViewNames `xml:"Mask_View_Names" json:"Mask_View_Names"`
	Status        string        `xml:"status" json:"status"`
}

type InitiatorList

type InitiatorList struct {
	XMLName    xml.Name    `xml:"Initiator_List" json:"-"`
	Initiators []Initiator `xml:"Initiator" json:"Initiator"`
}

type MaskViewNames

type MaskViewNames struct {
	XMLName   xml.Name `xml:"Mask_View_Names" json:"-"`
	ViewCount int      `xml:"view_count" json:"view_count"`
	ViewNames []string `xml:"view_name" json:"view_name"`
}

type MaskingDump

type MaskingDump struct {
	InitiatorGroups []MaskingDumpIG   `json:"ig"`
	StorageGroups   []MaskingDumpSG   `json:"sg"`
	Gatekeepers     []MaskingDumpGK   `json:"gk"`
	Devices         []MaskingDumpDev  `json:"dev"`
	Views           []MaskingDumpView `json:"mv"`
}

Dump/Restore of masking views

type MaskingDumpDev

type MaskingDumpDev struct {
	Name         string   `json:"name"`
	Size         string   `json:"size"`
	StorageGroup string   `json:"sg"`
	Results      []Result `json:"result"`
}

Dump/Restore of masking views

type MaskingDumpGK

type MaskingDumpGK struct {
	StorageGroup string   `json:"sg"`
	Count        *int     `json:"count"`
	Results      []Result `json:"result"`
}

Dump/Restore of masking views

type MaskingDumpIG

type MaskingDumpIG struct {
	Name            string   `json:"name"`
	HBAIds          []string `json:"hba_ids"`
	InitiatorGroups []string `json:"igs"`
	Consistent      *bool    `json:"consistent"`
	Results         []Result `json:"result"`
}

Dump/Restore of masking views

type MaskingDumpSG

type MaskingDumpSG struct {
	Name          string   `json:"name"`
	SRP           string   `json:"srp"`
	SLO           string   `json:"slo"`
	StorageGroups []string `json:"sg"`
	Results       []Result `json:"result"`
}

Dump/Restore of masking views

type MaskingDumpView

type MaskingDumpView struct {
	Name                string   `json:"name"`
	PortIds             []string `json:"pg"`
	StorageGroupNames   []string `json:"sgs"`
	InitiatorGroupNames []string `json:"igs"`
	Results             []Result `json:"result"`
}

Dump/Restore of masking views

type MaskingView

type MaskingView struct {
	XMLName  xml.Name `xml:"Masking_View" json:"-"`
	ViewInfo ViewInfo `xml:"View_Info" json:"View_Info"`
}

type OptAddDisk

type OptAddDisk struct {
	Name     string
	Size     string
	SID      string
	SG       string
	SLO      string
	SRP      string
	SRDF     bool
	SRDFMode string
	SRDFType string
	RDFG     string
	Mappings array.Mappings
}

type OptAddThinDev

type OptAddThinDev struct {
	Name     string
	RDFG     string
	Size     string
	SG       string
	SLO      string
	SRDF     bool
	SRDFMode string
	SRDFType string
	SID      string
}

type OptCreatePair

type OptCreatePair struct {
	Pair       string
	RDFG       string
	Invalidate string
	SID        string
	SRDFMode   string
	SRDFType   string
}

type OptDelDisk

type OptDelDisk struct {
	Dev string
	SID string
}

type OptDelThinDev

type OptDelThinDev struct {
	Dev string
	SID string
}

type OptDeletePair

type OptDeletePair struct {
	Dev string
	SID string
}

type OptFreeThinDev

type OptFreeThinDev struct {
	SID string
	Dev string
}

type OptMapDisk

type OptMapDisk struct {
	Dev      string
	SID      string
	SLO      string
	SRP      string
	SG       string
	Mappings array.Mappings
}

type OptRenameDisk

type OptRenameDisk struct {
	Dev  string
	Name string
	SID  string
}

type OptResizeDisk

type OptResizeDisk struct {
	Dev   string
	SID   string
	Size  string
	Force bool
}

type OptSetSRDFMode

type OptSetSRDFMode struct {
	SRDFMode string
	Dev      string
	SID      string
}

type OptUnmapDisk

type OptUnmapDisk struct {
	Dev string
	SID string
}

type PortGroup

type PortGroup struct {
	XMLName   xml.Name      `xml:"Port_Group" json:"-"`
	GroupInfo PortGroupInfo `xml:"Group_Info" json:"Group_Info"`
}

type PortGroupInfo

type PortGroupInfo struct {
	XMLName       xml.Name      `xml:"Group_Info" json:"-"`
	GroupName     string        `xml:"group_name" json:"group_name"`
	PortCount     int           `xml:"port_count" json:"port_count"`
	ViewCount     int           `xml:"view_count" json:"view_count"`
	LastUpdated   string        `xml:"last_updated" json:"last_updated"`
	MaskViewNames MaskViewNames `xml:"Mask_View_Names" json:"Mask_View_Names"`
}

type PortInfo

type PortInfo struct {
	XMLName                 xml.Name                 `xml:"port_info" json:"-"`
	DirectorIdentifications []DirectorIdentification `xml:"Director_Identification" json:"Director_Identification"`
}

type Product

type Product struct {
	XMLName  xml.Name `xml:"Product" json:"-"`
	Vendor   string   `xml:"vendor" json:"vendor"`
	Name     string   `xml:"name" json:"name"`
	Revision string   `xml:"revision" json:"revision"`
	SerialId string   `xml:"serial_id" json:"serial_id"`
	SymId    string   `xml:"symid" json:"symid"`
	WWN      string   `xml:"wwn" json:"wwn"`
	DeviceId string   `xml:"device_id" json:"device_id"`
}

type RDF

type RDF struct {
	XMLName  xml.Name  `xml:"RDF" json:"-"`
	Info     RDFInfo   `xml:"RDF_Info" json:"RDF_Info"`
	Mode     RDFMode   `xml:"Mode" json:"Mode"`
	Link     RDFLink   `xml:"Link" json:"Link"`
	Local    RDFLocal  `xml:"Local" json:"Local"`
	Remote   RDFRemote `xml:"Remote" json:"Remote"`
	RDFAInfo RDFAInfo  `xml:"RdfaInfo" json:"RdfaInfo"`
}

type RDFAInfo

type RDFAInfo struct {
	XMLName xml.Name `xml:"RdfaInfo" json:"-"`
}

type RDFGroup

type RDFGroup struct {
	XMLName          xml.Name `xml:"RdfGroup" json:"-"`
	RAGroupNum       int      `xml:"ra_group_num" json:"ra_group_num"`
	RemoteRAGroupNum int      `xml:"remote_ra_group_num" json:"remote_ra_group_num"`
	RemoteSymId      string   `xml:"remote_symid" json:"remote_symid"`
	RDFMetro         string   `xml:"rdf_metro" json:"rdf_metro"`
	RDFGroupType     string   `xml:"rdf_group_type" json:"rdf_group_type"`
}

type RDFInfo

type RDFInfo struct {
	XMLName                       xml.Name  `xml:"RDF_Info" json:"-"`
	PairState                     string    `xml:"pair_state" json:"pair_state"`
	SuspendState                  string    `xml:"suspend_state" json:"suspend_state"`
	ConsistencyState              string    `xml:"consistency_state" json:"consistency_state"`
	ConsistencyExemptState        string    `xml:"consistency_exempt_state" json:"consistency_exempt_state"`
	ConfigRDFAWPaceExemptState    string    `xml:"config_rdfa_wpace_exempt_state" json:"config_rdfa_wpace_exempt_state"`
	EffectiveRDFAWPaceExemptState string    `xml:"effective_rdfa_wpace_exempt_state" json:"effective_rdfa_wpace_exempt_state"`
	WPaceInfo                     WPaceInfo `xml:"WPace_Info" json:"WPace_Info"`
	R1Invalids                    int       `xml:"r1_invalids" json:"r1_invalids"`
	R2Invalids                    int       `xml:"r2_invalids" json:"r2_invalids"`
	R2LargerThanR1                bool      `xml:"r2_larger_than_r1" json:"r2_larger_than_r1"`
	R1R2DeviceSize                string    `xml:"r1_r2_device_size" json:"r1_r2_device_size"`
	PairedWithDiskless            bool      `xml:"paired_with_diskless" json:"paired_with_diskless"`
	PairedWithConcurrent          bool      `xml:"paired_with_concurrent" json:"paired_with_concurrent"`
	PairedWithCascaded            bool      `xml:"paired_with_cascaded" json:"paired_with_cascaded"`
	ThickThinRelationship         bool      `xml:"thick_thin_relationship" json:"thick_thin_relationship"`
	R2NotReadIfInvalid            string    `xml:"r2_not_ready_if_invalid" json:"r2_not_ready_if_invalid"`
	PairConfiguration             string    `xml:"pair_configuration" json:"pair_configuration"`
}
type RDFLink struct {
	XMLName                  xml.Name `xml:"Link" json:"-"`
	Configuration            string   `xml:"configuration" json:"configuration"`
	Domino                   string   `xml:"domino" json:"domino"`
	PreventAutomaticRecovery string   `xml:"prevent_automatic_recovery" json:"prevent_automatic_recovery"`
}

type RDFLocal

type RDFLocal struct {
	XMLName    xml.Name `xml:"Local" json:"-"`
	DevName    string   `xml:"dev_name" json:"dev_name"`
	Type       string   `xml:"type" json:"type"`
	RAGroupNum int      `xml:"ra_group_num" json:"ra_group_num"`
	State      string   `xml:"state" json:"state"`
}

type RDFMode

type RDFMode struct {
	XMLName                    xml.Name `xml:"Mode" json:"-"`
	Mode                       string   `xml:"mode" json:"mode"`
	AdaptativeCopy             string   `xml:"adaptative_copy" json:"adaptative_copy"`
	AdaptativeCopyWritePending string   `xml:"adaptative_copy_write_pending" json:"adaptative_copy_write_pending"`
	AdaptativeCopySkew         int      `xml:"adaptative_copy_skew" json:"adaptative_copy_skew"`
	DeviceDomino               string   `xml:"device_domino" json:"device_domino"`
	StarMode                   bool     `xml:"star_mode" json:"star_mode"`
	SqarMode                   bool     `xml:"sqar_mode" json:"sqar_mode"`
}

type RDFRemote

type RDFRemote struct {
	XMLName     xml.Name `xml:"Remote" json:"-"`
	DevName     string   `xml:"dev_name" json:"dev_name"`
	RemoteSymid string   `xml:"remote_symid" json:"remote_symid"`
	WWN         string   `xml:"wwn" json:"wwn"`
	State       string   `xml:"state" json:"state"`
}

type RDFStatus

type RDFStatus struct {
	XMLName              xml.Name `xml:"Status" json:"-"`
	RDF                  string   `xml:"rdf" json:"rdf"`
	RA                   string   `xml:"ra" json:"ra"`
	SA                   string   `xml:"sa" json:"sa"`
	Link                 string   `xml:"link" json:"link"`
	LinkStatusChangeTime string   `xml:"link_status_change_time" json:"link_status_change_time"`
}

type Result

type Result struct {
	Cmd []string `json:"cmd"`
	Ret int      `json:"ret"`
	Out string   `json:"out"`
	Err string   `json:"err"`
}

Dump/Restore of masking views

type SG

type SG struct {
	XMLName xml.Name `xml:"SG" json:"-"`
	SGInfos []SGInfo `xml:"SG_Info" json:"SG_Info"`
}

type SGChildInfo

type SGChildInfo struct {
	XMLName    xml.Name  `xml:"SG_Child_info" json:"-"`
	ChildCount int       `xml:"child_count" json:"child_count"`
	SG         []SGShort `xml:"SG" json:"SG"`
}

type SGInfo

type SGInfo struct {
	XMLName  xml.Name `xml:"SG_Info" json:"-"`
	Name     string   `xml:"name" json:"name"`
	SLOName  string   `xml:"SLO_name" json:"SLO_name"`
	SRPName  string   `xml:"SRP_name" json:"SRP_name"`
	SymID    string   `xml:"symid" json:"symid"`
	NumOfGKs int      `xml:"Num_of_GKS" json:"Num_of_GKS"`
}

type SGShort

type SGShort struct {
	XMLName   xml.Name `xml:"SG" json:"-"`
	GroupName string   `xml:"group_name" json:"group_name"`
	Status    string   `xml:"Status" json:"Status"`
}

type SLO

type SLO struct {
	XMLName xml.Name `xml:"SLO" json:"-"`
	SLOInfo SLOInfo  `xml:"SLO_Info" json:"SLO_Info"`
}

type SLOInfo

type SLOInfo struct {
	XMLName  xml.Name `xml:"SLO_Info" json:"-"`
	Name     string   `xml:"name" json:"name"`
	BaseName string   `xml:"base_name" json:"base_name"`
}

type SRP

type SRP struct {
	XMLName xml.Name `xml:"SRP" json:"-"`
	SRPInfo SRPInfo  `xml:"SRP_Info" json:"SRP_Info"`
}

type SRPInfo

type SRPInfo struct {
	XMLName                           xml.Name           `xml:"SRP_Info" json:"-"`
	Name                              string             `xml:"name" json:"name"`
	DefaultSRP                        string             `xml:"default_SRP" json:"default_SRP"`
	EffectiveUsedCapacityPct          int                `xml:"effective_used_capacity_pct" json:"effective_used_capacity_pct"`
	UsedCapacityGigabytes             float64            `xml:"used_capacity_gigabytes" json:"used_capacity_gigabytes"`
	UsedCapacityTerabytes             float64            `xml:"used_capacity_terabytes" json:"used_capacity_terabytes"`
	AllocatedCapacityGigabytes        float64            `xml:"allocated_capacity_gigabytes" json:"allocated_capacity_gigabytes"`
	AllocatedCapacityTerabytes        float64            `xml:"allocated_capacity_terabytes" json:"allocated_capacity_terabytes"`
	FreeCapacityGigabytes             float64            `xml:"free_capacity_gigabytes" json:"free_capacity_gigabytes"`
	FreeCapacityTerabytes             float64            `xml:"free_capacity_terabytes" json:"free_capacity_terabytes"`
	UsableCapacityGigabytes           float64            `xml:"usable_capacity_gigabytes" json:"usable_capacity_gigabytes"`
	UsableCapacityTerabytes           float64            `xml:"usable_capacity_terabytes" json:"usable_capacity_terabytes"`
	SubscribedCapacityGigabytes       float64            `xml:"subscribed_capacity_gigabytes" json:"subscribed_capacity_gigabytes"`
	SubscribedCapacityTerabytes       float64            `xml:"subscribed_capacity_terabytes" json:"subscribed_capacity_terabytes"`
	UserSubscribedCapacityGigabytes   float64            `xml:"user_subscribed_capacity_gigabytes" json:"user_subscribed_capacity_gigabytes"`
	UserSubscribedCapacityTerabytes   float64            `xml:"user_subscribed_capacity_terabytes" json:"user_subscribed_capacity_terabytes"`
	SystemSubscribedCapacityGigabytes float64            `xml:"system_subscribed_capacity_gigabytes" json:"system_subscribed_capacity_gigabytes"`
	SystemSubscribedCapacityTerabytes float64            `xml:"system_subscribed_capacity_terabytes" json:"system_subscribed_capacity_terabytes"`
	SubscribedCapacityPct             nullable.Int       `xml:"subscribed_capacity_pct" json:"subscribed_capacity_pct"`
	ResvCap                           int                `xml:"resv_cap" json:"resv_cap"`
	DiskGroups                        []SRPInfoDiskGroup `xml:"DiskGroup" json:"disk_groups"`
}

type SRPInfoDiskGroup

type SRPInfoDiskGroup struct {
	XMLName       xml.Name             `xml:"Disk_Group" json:"-"`
	DiskGroupInfo SRPInfoDiskGroupInfo `xml:"Disk_Group_Info" json:"Disk_Group_Info"`
}

type SRPInfoDiskGroupInfo

type SRPInfoDiskGroupInfo struct {
	XMLName                 xml.Name `xml:"Disk_Group_Info" json:"-"`
	DiskGroupNumber         int      `xml:"disk_group_number" json:"disk_group_number"`
	DiskGroupName           string   `xml:"disk_group_name" json:"disk_group_name"`
	DiskGroupStatus         string   `xml:"disk_group_status" json:"disk_group_status"`
	Technology              string   `xml:"technology" json:"technology"`
	DiskLocation            string   `xml:"disk_location" json:"disk_location"`
	Speed                   string   `xml:"speed" json:"speed"`
	FBAPct                  int      `xml:"fba_pct" json:"fba_pct"`
	CKDPct                  int      `xml:"ckd_pct" json:"ckd_pct"`
	UsableCapacityGigabytes float64  `xml:"usable_capacity_gigabytes" json:"usable_capacity_gigabytes"`
	UsableCapacityTerabytes float64  `xml:"usable_capacity_terabytes" json:"usable_capacity_terabytes"`
	Product                 string   `xml:"product" json:"product"`
	ArrayId                 string   `xml:"array_id" json:"array_id"`
}

type ShowPortGroup

type ShowPortGroup struct {
	XMLName   xml.Name          `xml:"Port_Group" json:"-"`
	GroupInfo ShowPortGroupInfo `xml:"Group_Info" json:"Group_Info"`
}

func (ShowPortGroup) HasAllPortOf

func (t ShowPortGroup) HasAllPortOf(tgtIds []string) bool

func (ShowPortGroup) HasPort

func (t ShowPortGroup) HasPort(tgtId string) bool

type ShowPortGroupInfo

type ShowPortGroupInfo struct {
	XMLName                 xml.Name                 `xml:"Group_Info" json:"-"`
	GroupName               string                   `xml:"group_name" json:"group_name"`
	LastUpdated             string                   `xml:"last_updated" json:"last_updated"`
	DirectorIdentifications []DirectorIdentification `xml:"Director_Identification" json:"Director_Identification"`
}

type StorageGroup

type StorageGroup struct {
	XMLName   xml.Name         `xml:"Storage_Group" json:"-"`
	GroupInfo StorageGroupInfo `xml:"Group_Info" json:"Group_Info"`
}

type StorageGroupInfo

type StorageGroupInfo struct {
	XMLName           xml.Name          `xml:"Group_Info" json:"-"`
	GroupName         string            `xml:"group_name" json:"group_name"`
	DevCount          int               `xml:"dev_count" json:"dev_count"`
	SGCount           int               `xml:"sg_count" json:"sg_count"`
	ViewCount         int               `xml:"view_count" json:"view_count"`
	LastUpdated       string            `xml:"last_updated" json:"last_updated"`
	MaskViewNames     MaskViewNames     `xml:"Mask_View_Names" json:"Mask_View_Names"`
	CascadedViewNames CascadedViewNames `xml:"Cascaded_View_Names" json:"Cascaded_View_Names"`
	Status            string            `xml:"status" json:"status"`
}

type SymmInfo

type SymmInfo struct {
	XMLName          xml.Name `xml:"Symm_Info" json:"-"`
	SymId            string   `xml:"symid" json:"symid"`
	Attachment       string   `xml:"attachment" json:"attachment"`
	Model            string   `xml:"model" json:"model"`
	MicrocodeVersion string   `xml:"microcode_version" json:"microcode_version"`
	CacheMegabytes   int64    `xml:"cache_megabytes" json:"cache_megabytes"`
	PhysicalDevices  int      `xml:"physical_devices" json:"physical_devices"`
}

type SymmInfoShort

type SymmInfoShort struct {
	XMLName xml.Name `xml:"Symm_Info" json:"-"`
	SymId   string   `xml:"symid" json:"symid"`
}

type ThinDev

type ThinDev struct {
	XMLName              xml.Name `xml:"Device" json:"-"`
	DevName              string   `xml:"dev_name" json:"dev_name"`
	DevEmul              string   `xml:"dev_emul" json:"dev_emul"`
	MultiPool            string   `xml:"multi_pool" json:"multi_pool"`
	SharedTracks         int64    `xml:"shared_tracks" json:"shared_tracks"`
	PersistTracks        int64    `xml:"persist_tracks" json:"persist_tracks"`
	TotalTracks          int64    `xml:"total_tracks" json:"total_tracks"`
	AllocTracks          int64    `xml:"alloc_tracks" json:"alloc_tracks"`
	UnreducibleTracks    int64    `xml:"unreducible_tracks" json:"unreducible_tracks"`
	WrittenTracks        int64    `xml:"written_tracks" json:"written_tracks"`
	CompressedTracks     int64    `xml:"compressed_tracks" json:"compressed_tracks"`
	ExclusiveAllocTracks int64    `xml:"exclusive_alloc_tracks" json:"exclusive_alloc_tracks"`
}

type ViewDevice

type ViewDevice struct {
	XMLName     xml.Name      `xml:"Device" json:"-"`
	DevName     string        `xml:"dev_name" json:"dev_name"`
	DevPortInfo []DevPortInfo `xml:"dev_port_info" json:"dev_port_info"`
}

type ViewInfo

type ViewInfo struct {
	XMLName       xml.Name      `xml:"View_Info" json:"-"`
	Name          string        `xml:"view_name" json:"view_name"`
	LastUpdated   string        `xml:"last_updated" json:"last_updated"`
	InitGrpName   string        `xml:"init_grpname" json:"init_grpname"`
	PortGrpName   string        `xml:"port_grpname" json:"port_grpname"`
	StorGrpName   string        `xml:"stor_grpname" json:"stor_grpname"`
	PortInfo      PortInfo      `xml:"port_info" json:"port_info"`
	SGChildInfo   SGChildInfo   `xml:"SG_Child_info" json:"SG_Child_info"`
	InitiatorList InitiatorList `xml:"Initiator_List" json:"Initiator_List"`
	Devices       []ViewDevice  `xml:"Device" json:"Device"`
}

type WPaceInfo

type WPaceInfo struct {
	XMLName                       xml.Name `xml:"WPace_Info" json:"-"`
	PacingCapable                 string   `xml:"pacing_capable" json:"pacing_capable"`
	ConfigRDFAWPaceExemptState    string   `xml:"config_rdfa_wpace_exempt_state" json:"config_rdfa_wpace_exempt_state"`
	EffectiveRDFAWPaceExemptState string   `xml:"effective_rdfa_wpace_exempt_state" json:"effective_rdfa_wpace_exempt_state"`
	RDFAWPaceState                string   `xml:"rdfa_wpace_state" json:"rdfa_wpace_state"`
	RDFADevPaceState              string   `xml:"rdfa_devpace_state" json:"rdfa_devpace_state"`
}

type XSymAccessListDevInitiator

type XSymAccessListDevInitiator struct {
	XMLName   xml.Name                            `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymAccessListDevInitiatorSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymAccessListDevInitiatorSymmetrix

type XSymAccessListDevInitiatorSymmetrix struct {
	XMLName         xml.Name         `xml:"Symmetrix" json:"-"`
	SymmInfo        SymmInfoShort    `xml:"Symm_Info" json:"Symm_Info"`
	InitiatorGroups []InitiatorGroup `xml:"Initiator_Group" json:"Initiator_Group"`
}

type XSymAccessListDevStorage

type XSymAccessListDevStorage struct {
	XMLName   xml.Name                          `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymAccessListDevStorageSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymAccessListDevStorageSymmetrix

type XSymAccessListDevStorageSymmetrix struct {
	XMLName       xml.Name       `xml:"Symmetrix" json:"-"`
	SymmInfo      SymmInfoShort  `xml:"Symm_Info" json:"Symm_Info"`
	StorageGroups []StorageGroup `xml:"Storage_Group" json:"Storage_Group"`
}

type XSymAccessListPort

type XSymAccessListPort struct {
	XMLName   xml.Name                    `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymAccessListPortSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymAccessListPortSymmetrix

type XSymAccessListPortSymmetrix struct {
	XMLName    xml.Name      `xml:"Symmetrix" json:"-"`
	SymmInfo   SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
	PortGroups []PortGroup   `xml:"Port_Group" json:"Port_Group"`
}

type XSymAccessListViewDetail

type XSymAccessListViewDetail struct {
	XMLName   xml.Name                          `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymAccessListViewDetailSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymAccessListViewDetailSymmetrix

type XSymAccessListViewDetailSymmetrix struct {
	XMLName      xml.Name      `xml:"Symmetrix" json:"-"`
	SymmInfo     SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
	MaskingViews []MaskingView `xml:"Masking_View" json:"Masking_View"`
}

type XSymAccessShowPort

type XSymAccessShowPort struct {
	XMLName   xml.Name                    `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymAccessShowPortSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymAccessShowPortSymmetrix

type XSymAccessShowPortSymmetrix struct {
	XMLName   xml.Name      `xml:"Symmetrix" json:"-"`
	SymmInfo  SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
	PortGroup ShowPortGroup `xml:"Port_Group" json:"Port_Group"`
}

type XSymCfgDirList

type XSymCfgDirList struct {
	XMLName   xml.Name                `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymCfgDirListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymCfgDirListSymmetrix

type XSymCfgDirListSymmetrix struct {
	XMLName   xml.Name   `xml:"Symmetrix" json:"-"`
	Directors []Director `xml:"Director" json:"directors"`
}

type XSymCfgList

type XSymCfgList struct {
	XMLName   xml.Name             `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymCfgListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymCfgListSymmetrix

type XSymCfgListSymmetrix struct {
	XMLName  xml.Name `xml:"Symmetrix" json:"-"`
	SymmInfo SymmInfo `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymCfgPoolList

type XSymCfgPoolList struct {
	XMLName   xml.Name                 `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymCfgPoolListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymCfgPoolListSymmetrix

type XSymCfgPoolListSymmetrix struct {
	XMLName     xml.Name      `xml:"Symmetrix" json:"-"`
	DevicePools []DevicePool  `xml:"DevicePool" json:"device_pools"`
	SymmInfo    SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymCfgRDFGList

type XSymCfgRDFGList struct {
	XMLName   xml.Name                 `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymCfgRDFGListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymCfgRDFGListSymmetrix

type XSymCfgRDFGListSymmetrix struct {
	XMLName   xml.Name      `xml:"Symmetrix" json:"-"`
	RDFGroups []RDFGroup    `xml:"RdfGroup" json:"rdf_groups"`
	SymmInfo  SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymCfgSLOList

type XSymCfgSLOList struct {
	XMLName   xml.Name                `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymCfgSLOListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymCfgSLOListSymmetrix

type XSymCfgSLOListSymmetrix struct {
	XMLName  xml.Name      `xml:"Symmetrix" json:"-"`
	SLOs     []SLO         `xml:"SLO" json:"SLO"`
	SymmInfo SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymCfgSRPList

type XSymCfgSRPList struct {
	XMLName   xml.Name                `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymCfgSRPListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymCfgSRPListSymmetrix

type XSymCfgSRPListSymmetrix struct {
	XMLName  xml.Name      `xml:"Symmetrix" json:"-"`
	SRPs     []SRP         `xml:"SRP" json:"SRP"`
	SymmInfo SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymDevList

type XSymDevList struct {
	XMLName   xml.Name             `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymDevListSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymDevListSymmetrix

type XSymDevListSymmetrix struct {
	XMLName  xml.Name      `xml:"Symmetrix" json:"-"`
	Devices  []Device      `xml:"Device" json:"devices"`
	SymmInfo SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymDevListThinDevs

type XSymDevListThinDevs struct {
	XMLName   xml.Name                     `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymDevListThinDevsSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymDevListThinDevsSymmetrix

type XSymDevListThinDevsSymmetrix struct {
	XMLName  xml.Name      `xml:"Symmetrix" json:"-"`
	SymmInfo SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
	ThinDevs []ThinDev     `xml:"ThinDevs" json:"ThinDevs"`
}

type XSymDevShow

type XSymDevShow struct {
	XMLName   xml.Name             `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymDevShowSymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymDevShowSymmetrix

type XSymDevShowSymmetrix struct {
	XMLName  xml.Name      `xml:"Symmetrix" json:"-"`
	Devices  []Device      `xml:"Device" json:"Device"`
	SymmInfo SymmInfoShort `xml:"Symm_Info" json:"Symm_Info"`
}

type XSymDiskListDiskGroupSummary

type XSymDiskListDiskGroupSummary struct {
	XMLName   xml.Name                              `xml:"SymCLI_ML" json:"-"`
	Symmetrix XSymDiskListDiskGroupSummarySymmetrix `xml:"Symmetrix" json:"Symmetrix"`
}

type XSymDiskListDiskGroupSummarySymmetrix

type XSymDiskListDiskGroupSummarySymmetrix struct {
	XMLName                xml.Name               `xml:"Symmetrix" json:"-"`
	DiskGroups             []DiskGroup            `xml:"Disk_Group" json:"Disk_Group"`
	SymmInfo               SymmInfoShort          `xml:"Symm_Info" json:"Symm_Info"`
	DiskGroupSummaryTotals DiskGroupSummaryTotals `xml:"Disk_Group_Summary_Totals" json:"Disk_Group_Summary_Totals"`
}

type XSymSGList

type XSymSGList struct {
	XMLName xml.Name `xml:"SymCLI_ML" json:"-"`
	SG      SG       `xml:"SG" json:"SG"`
}

Jump to

Keyboard shortcuts

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