Public/Get-TraverseTestStatus.ps1
function Get-TraverseTestStatus { <# .SYNOPSIS Retrieves Traverse Test status based on specified criteria. .DESCRIPTION This command leverages the Traverse APIs to get the current status of a device. #> [CmdletBinding(DefaultParameterSetName="deviceName")] param ( [Parameter(ParameterSetName="deviceName",Mandatory)][String]$DeviceName, #Specify the individual serial number of the test you wish to retrieve [Parameter(ParameterSetName="testSerial",ValueFromPipelineByPropertyName,Mandatory)][Alias("serialNumber")][int]$TestSerial, #Only retrieve tests that match the specified status criteria [ValidateSet('OK','Warning','Critical','Unknown','Unreachable','Suspended')][String]$status ) # Param #region JSON process { $argumentList = @{} switch ($PSCmdlet.ParameterSetName) { "deviceName" { $argumentList.searchCriterias = @(@{ SearchOption = "DEVICE_NAME" SearchTerms = $DeviceName }) } "testSerial" { $argumentList.searchCriterias = @(@{ SearchOption = "TEST_SERIAL_NUMBER" SearchTerms = $TestSerial }) } } (Invoke-TraverseCommand -API JSON "test/getStatuses" $argumentList -Verbose:($PSBoundParameters['Verbose'] -eq $true)) } #endregion JSON #region BVEAPI <# #THis section is how you would get this info with the BVE API, unfortuantely it does not as of 7.x return results in proper JSON. #Preserving for when this gets fixed. process { $argumentList = @{} switch ($PSCmdlet.ParameterSetName) { "testName" { $argumentList.testName = $Name $argumentList.deviceName = $DeviceName } "deviceName" { $argumentList.deviceName = $DeviceName } "testSerial" {$argumentList.testSerial = $testSerial} } if ($Username) {$argumentList.userName = $UserName} if ($status) {$argumentList.status = $status} (Invoke-TraverseCommand test.status $argumentList -Verbose:($PSBoundParameters['Verbose'] -eq $true)) } #> #endregion BVEAPI } #Get-TraverseDevice |