Private/class-OceanStorNFSShare.ps1
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingCmdletAliases', '')] class OceanStorNFSShare { hidden [pscustomobject]${Session} hidden [pscustomobject]${WebSession} [string]${Id} [string]${Name} [string]${Share Path} [string]${Type} [string]${Character Enconding} [string]${Description} [string]${Audit Items} [string]${Enable Snapshot Visible} [string]${FileSystem ID} [string]${NFS Lock Policy} [string]${vStore ID} [string]${vStore Name} OceanStorNFSShare ([array]$NFSShare, [pscustomobject]$WebSession) { $this.Session = $WebSession $this.WebSession = $WebSession $this.{Id} = $NFSShare.ID $this.{Name} = $NFSShare.NAME $this.{Share Path} = $NFSShare.SHAREPATH $this.{Type} = $NFSShare.TYPE switch ($NFSShare.CHARACTERENCODING) { 0 {$this.{Character Enconding} = "UTF-8"} 11 {$this.{Character Enconding} = "ZH"} 12 {$this.{Character Enconding} = "GBK"} 13 {$this.{Character Enconding} = "EUC-TW"} 14 {$this.{Character Enconding} = "BIG5"} 21 {$this.{Character Enconding} = "EUC-JP"} 22 {$this.{Character Enconding} = "JIS"} 23 {$this.{Character Enconding} = "S-JIS"} 30 {$this.{Character Enconding} = "DE"} 31 {$this.{Character Enconding} = "PT"} 32 {$this.{Character Enconding} = "ES"} 33 {$this.{Character Enconding} = "FR"} 34 {$this.{Character Enconding} = "IT"} 40 {$this.{Character Enconding} = "KO"} } $this.{Description} = $NFSShare.DESCRIPTION $this.{FileSystem ID} = $NFSShare.FSID $this.{Audit Items} = $NFSShare.AUDITITEMS #TODO switch ($NFSShare.ENABLESHOWSNAPSHOT) { true {$this.{Enable Snapshot Visible} = "enabled"} false {$this.{Enable Snapshot Visible} = "disabled"} } switch ($NFSShare.LOCKPOLICY) { 0 {$this.{NFS Lock Policy} = "Advisoring Locking"} 1 {$this.{NFS Lock Policy} = "Mandatory Locking"} } $this.{vStore ID} = $NFSShare.vstoreId $this.{vStore Name} = $NFSShare.vstoreName } [psobject] Delete() { return Remove-DMNfsShare -WebSession $this.Session -SharePath $this.'Share Path' -Confirm:$false } } |