Functions/Get-RPLaunch.ps1
|
<# .SYNOPSIS Get a specific report portal launch. .DESCRIPTION Use the id of the launch to get the current status of the launch object. #> function Get-RPLaunch { [CmdletBinding(DefaultParameterSetName = 'All')] param ( # The report portal service. [Parameter(Mandatory = $false)] [PSTypeName('ReportPortal.Session')] $Session, # Optional launch id. [Parameter(Mandatory = $true, ParameterSetName = 'Id')] [System.String] $Id ) $Session = Test-RPSession -Session $Session $launches = [System.Collections.ArrayList]::new() if ($PSCmdlet.ParameterSetName -eq 'All') { Write-Verbose 'Get all report portal launches' for ($i = 1; $i -eq 1 -or $i -le $launchResult.page.totalPages; $i++) { $launchResult = Invoke-RPRequest -Session $Session -Method 'Get' -Path 'launch' -PageNumber $i -PageSize 50 -ErrorAction 'Stop' $launchResult.content | ForEach-Object { $launches.Add($_) | Out-Null } } } if ($PSCmdlet.ParameterSetName -eq 'Id') { Write-Verbose ('Get the report portal launch with id {0}' -f $Id) $launchResult = Invoke-RPRequest -Session $Session -Method 'Get' -Path "launch/$Id" -ErrorAction 'Stop' $launches.Add($launchResult) | Out-Null } foreach ($launch in $launches) { # The end time is not present in the launch object as long as the launch # is running. Return $null in this case. $endTime = $null if ($launch.PSObject.Properties.Name -contains 'endTime') { $endTime = $launch.endTime } [PSCustomObject] @{ PSTypeName = 'ReportPortal.Launch' Id = $launch.id Guid = $launch.uuid Name = $launch.name Type = 'Launch' Number = $launch.number Status = $launch.status StartTime = $launch.startTime EndTime = $endTime } } } |