Private/class-OceanStorQuorumServer.ps1
|
class OceanStorQuorumServer { hidden [pscustomobject]$Session hidden [pscustomobject]$WebSession hidden [object]$Raw [string]$Id [string]$Name [string]$Description [string]${Running Status} [string]${Running Status Code} [string]${Primary IP Address} [string]${Primary Port} [string]${Secondary IP Address} [string]${Secondary Port} [string]${Device SN} [string]$Username OceanStorQuorumServer([object]$Source, [pscustomobject]$WebSession) { $this.Session = $WebSession $this.WebSession = $WebSession $this.Raw = $Source $this.Id = [OceanStorQuorumServer]::GetString($Source, @('ID', 'id')) $this.Name = [OceanStorQuorumServer]::GetString($Source, @('NAME', 'name')) $this.Description = [OceanStorQuorumServer]::GetString($Source, @('DESCRIPTION', 'description')) $this.{Running Status Code} = [OceanStorQuorumServer]::GetString($Source, @('RUNNINGSTATUS', 'runningStatus')) $this.{Running Status} = [OceanStorQuorumServer]::ConvertRunningStatus($this.{Running Status Code}) $this.{Primary IP Address} = [OceanStorQuorumServer]::GetString($Source, @('SERVERIPA')) $this.{Primary Port} = [OceanStorQuorumServer]::GetString($Source, @('SERVERPORTA')) $this.{Secondary IP Address} = [OceanStorQuorumServer]::GetString($Source, @('SERVERIPB')) $this.{Secondary Port} = [OceanStorQuorumServer]::GetString($Source, @('SERVERPORTB')) $this.{Device SN} = [OceanStorQuorumServer]::GetString($Source, @('DEVICESN')) $this.Username = [OceanStorQuorumServer]::GetString($Source, @('USERNAME')) } static [object] GetValue([object]$Source, [string[]]$Names) { if ($null -eq $Source) { return $null } foreach ($name in $Names) { $property = $Source.PSObject.Properties[$name] if ($null -ne $property) { return $property.Value } } return $null } static [string] GetString([object]$Source, [string[]]$Names) { $value = [OceanStorQuorumServer]::GetValue($Source, $Names) if ($null -eq $value) { return $null } return [string]$value } # RUNNINGSTATUS enum per OceanStor Dorado 6.1.6 REST Interface Reference # section 4.9.8 (quorum_server): 27 = online, 28 = offline. static [string] ConvertRunningStatus([string]$Code) { switch ($Code) { '27' { return 'Online' } '28' { return 'Offline' } default { return $Code } } return $Code } } |