Public/Ping.ps1
# # Copyright 2018-2020, Alexis La Goutte <alexis dot lagoutte at gmail dot com> # # SPDX-License-Identifier: Apache-2.0 # function Test-ArubaSWPing { <# .SYNOPSIS Send a PING (ICMP) to a target .DESCRIPTION Send a PING (ICMP) to a target Get the status and latency .EXAMPLE Test-ArubaSWPing -ipv4_address 192.2.0.1 Send a PING to IPv4 address 192.2.0.1 .EXAMPLE Test-ArubaSWPing -hostname www.arubanetworks.com Send a PING to hostname www.arubanetworks.com #> Param( [Parameter (Mandatory = $false, ParameterSetName = "ipv4_address")] [ipaddress]$ipv4_address, [Parameter (Mandatory = $false, ParameterSetName = "hostname")] [string]$hostname, [Parameter (Mandatory = $False)] [ValidateNotNullOrEmpty()] [PSObject]$connection = $DefaultArubaSWConnection ) Begin { } Process { $uri = "rest/v4/ping" $dest = New-Object -TypeName PSObject if ($PsBoundParameters.ContainsKey('ipv4_address')) { $ipv4 = New-Object -TypeName PSObject $ipv4 | Add-Member -name "version" -MemberType NoteProperty -Value "IAV_IP_V4" $ipv4 | Add-Member -name "octets" -MemberType NoteProperty -Value $ipv4_address.ToString() $dest | Add-Member -name "ip_address" -Membertype NoteProperty -Value $ipv4 } elseif ($PsBoundParameters.ContainsKey('hostname')) { $dest | Add-Member -name "hostname" -Membertype NoteProperty -Value $hostname } else { throw "You need to use a parameter (-ipv4_address, -hostname)" } $ping = New-Object -TypeName PSObject $ping | Add-Member -name "destination" -Membertype NoteProperty -Value $dest $response = Invoke-ArubaSWWebRequest -method "POST" -body $ping -uri $uri -connection $connection $run = ($response | ConvertFrom-Json) $run } End { } } |