Public/Port.ps1
# # Copyright 2018, Alexis La Goutte <alexis.lagoutte at gmail dot com> # # SPDX-License-Identifier: Apache-2.0 # function Get-ArubaSWPort { <# .SYNOPSIS Get Port of the Switch .DESCRIPTION Get Port information .EXAMPLE Get-ArubaSWPort Get Port information (name, status, config mode, flow control...) .EXAMPLE Get-ArubaSWPort -port_id 3 Get Port information of port_id 3 #> Param( [Parameter (Mandatory=$false)] [string]$port_id ) Begin { } Process { $url = "rest/v4/ports" $response = invoke-ArubaSWWebRequest -method "GET" -url $url $run = ($response | convertfrom-json).port_element if ( $port_id ) { $run | where-object { $_.id -eq $port_id} } else { $run } } End { } } function Get-ArubaSWPortStatistics { <# .SYNOPSIS Get Port Statistics of the Switch .DESCRIPTION Get Port Statistics .EXAMPLE Get-ArubaSWPortStatistics Get Port statistics (name, packets/bytes/throughtput/error TX or RX...) .EXAMPLE Get-ArubaSWPortStatistics -port_id 3 Get Port statistics of port_id 3 #> Param( [Parameter (Mandatory=$false)] [string]$port_id ) Begin { } Process { $url = "rest/v4/port-statistics" $response = invoke-ArubaSWWebRequest -method "GET" -url $url $run = ($response | convertfrom-json).port_statistics_element if ( $port_id ) { $run | where-object { $_.id -eq $port_id} } else { $run } } End { } } function Set-ArubaSWPort { <# .SYNOPSIS Configure Port information .DESCRIPTION Configurate Port Information (Status, Name, Mode...) .EXAMPLE $port = Get-ArubaSWPort -port_id 3 PS C:\>$port | Set-ArubaSWPort -is_port_enabled -name PowerArubaSW-Port Enable the port 3 and set name/description to PowerArubaSW-Port .EXAMPLE Set-ArubaSWPort -port_id 3 -is_flow_control_enabled:$false -is_dsnoop_port_trusted:$false Disable the flow control and DHCP Snooping Port Trusted on port_id 3 .EXAMPLE $port = Get-ArubaSWPort -port_id 3 PS C:\>$port | Set-ArubaSWPort -config_mode PCM_100HDX Configure port 3 to Mode 100 HDX #> Param( [Parameter (Mandatory=$true, ParameterSetName="port_id")] [string]$port_id, [Parameter (Mandatory=$true, ValueFromPipeline=$true, Position=1, ParameterSetName="port")] #ValidateScript({ Validateport $_ })] [psobject]$port, [Parameter (Mandatory=$false)] [ValidateLength(1,64)] [string]$name, [Parameter (Mandatory=$false)] [switch]$is_port_enabled, [Parameter (Mandatory=$false)] [ValidateSet("PCM_10HDX", "PCM_100HDX", "PCM_10FDX", "PCM_100FDX", "PCM_AUTO", "PCM_1000FDX", "PCM_AUTO_10", "PCM_AUTO_100", "PCM_AUTO_1000", "PCM_AUTO_10G", "PCM_AUTO_10_100", "PCM_AUTO_2500", "PCM_AUTO_5000", "PCM_AUTO_2500_5000", "PCM_AUTO_1000_2500", "PCM_AUTO_1000_2500_5000")] [string]$config_mode, [Parameter (Mandatory=$false)] [switch]$is_flow_control_enabled, [Parameter (Mandatory=$false)] [switch]$is_dsnoop_port_trusted ) Begin { } Process { #get port id from port ps object if($port) { $port_id = $port.id } $url = "rest/v4/ports/${port_id}" $_port = new-Object -TypeName PSObject $_port | add-member -name "id" -membertype NoteProperty -Value $port_id if ( $PsBoundParameters.ContainsKey('name') ) { $_port | add-member -name "name" -membertype NoteProperty -Value $name } if ( $PsBoundParameters.ContainsKey('is_port_enabled') ) { if ( $is_port_enabled ) { $_port | add-member -name "is_port_enabled" -membertype NoteProperty -Value $true } else { $_port | add-member -name "is_port_enabled" -membertype NoteProperty -Value $false } } if ( $PsBoundParameters.ContainsKey('config_mode') ) { $_port | add-member -name "config_mode" -membertype NoteProperty -Value $config_mode } if ( $PsBoundParameters.ContainsKey('is_flow_control_enabled') ) { if ( $is_flow_control_enabled ) { $_port | add-member -name "is_flow_control_enabled" -membertype NoteProperty -Value $true } else { $_port | add-member -name "is_flow_control_enabled" -membertype NoteProperty -Value $false } } if ( $PsBoundParameters.ContainsKey('is_dsnoop_port_trusted') ) { if ( $is_dsnoop_port_trusted ) { $_port | add-member -name "is_dsnoop_port_trusted" -membertype NoteProperty -Value $true } else { $_port | add-member -name "is_dsnoop_port_trusted" -membertype NoteProperty -Value $false } } $response = invoke-ArubaSWWebRequest -method "PUT" -body $_port -url $url $response | convertfrom-json } End { } } |