32 lines
1.2 KiB
PowerShell
32 lines
1.2 KiB
PowerShell
[CmdletBinding()]
|
|
param(
|
|
[string]$ConfigPath = ''
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$projectRoot = (Resolve-Path (Join-Path $PSScriptRoot '..')).Path
|
|
if (-not $ConfigPath) { $ConfigPath = Join-Path $projectRoot 'config\migration.psd1' }
|
|
if (-not [System.IO.Path]::IsPathRooted($ConfigPath)) {
|
|
$ConfigPath = Join-Path $projectRoot $ConfigPath
|
|
}
|
|
$config = Import-PowerShellDataFile -LiteralPath $ConfigPath
|
|
$tokenPath = [string]$config.TokenFile
|
|
if (-not [System.IO.Path]::IsPathRooted($tokenPath)) {
|
|
$tokenPath = Join-Path $projectRoot $tokenPath
|
|
}
|
|
$token = (Get-Content -LiteralPath $tokenPath -Raw).Trim()
|
|
$baseUrl = ([string]$config.ServerAUrl).TrimEnd('/')
|
|
$vehicleId = ([string]$config.VehicleId).Trim()
|
|
$headers = @{ Authorization = "Bearer $token" }
|
|
$catalog = Invoke-RestMethod -Uri "$baseUrl/api/v1/vehicles/$vehicleId/modes" `
|
|
-Headers $headers -TimeoutSec 10
|
|
$events = Invoke-RestMethod -Uri "$baseUrl/api/v1/vehicles/$vehicleId/events?after=0" `
|
|
-Headers $headers -TimeoutSec 10
|
|
[pscustomobject]@{
|
|
Passed = $true
|
|
ServerA = $baseUrl
|
|
VehicleId = $catalog.vehicle_id
|
|
PresetModes = @($catalog.modes | Where-Object { $_.origin -eq 'preset' }).Count
|
|
EventSequence = $events.next_sequence
|
|
}
|