Public/Watch-P1ServerModel.ps1
function Watch-P1ServerModel { <# .Synopsis Watch the model versions on PlannerOne server. .Description Display for each environment loaded in PlannerOne the real model and cache versions. .Parameter HostName The hostname to query (default localhost) .Parameter ServicePort The hostname port of REST Service (default 80) .Example Watch-P1ServerModel -ServicePort 8073 #> [cmdletbinding()] param( [string] $HostName, [int] $ServicePort ) Process { if ($HostName -eq "") { $HostName = "localhost" } if ($ServicePort -eq 0) { $ServicePort = 80 } $url = 'http://' + $HostName + ':' + $ServicePort + '/Services/cache/all' $serviceUrl = FixUrl $url $auto = $true $continue = $true while($continue) { clear $lastRefresh = Get-Date echo "$lastRefresh - Version format: Planning | Static | Dynamic" $state = (wget $serviceUrl).Content $stateObj = $state | ConvertFrom-Json $displayArray = @() foreach ($env in $stateObj) { if ($env.Id.EnvironmentId.Kind -eq 1) { $kind = "PS" } else { $kind = "RP" } if ($env.Id.Nature -eq 1) { $nature = "Working" } else { $nature = "Published" } $real = Get-PlanningVersion $env.RealPlanningVersion $vo = Get-PlanningVersion $env.VOVersion $ro = Get-PlanningVersion $env.ReadOnlyVersion $displayObj = New-Object System.Object $displayObj | Add-Member -type NoteProperty -name Product -value $kind $displayObj | Add-Member -type NoteProperty -name Name -value $env.Id.EnvironmentId.Name $displayObj | Add-Member -type NoteProperty -name Group -value $env.Id.EnvironmentId.PlanningGroupContainer $displayObj | Add-Member -type NoteProperty -name Nature -value $nature $displayObj | Add-Member -type NoteProperty -name Real_Version -value $real $displayObj | Add-Member -type NoteProperty -name Cache_VOVersion -value $vo $displayObj | Add-Member -type NoteProperty -name Cache_ReadOnlyVersion -value $ro $displayArray += $displayObj } $displayArray | Format-Table echo "ESCAPE: Quit | R: Refresh | A: Auto-Refresh (5s): $auto" $counter = 0 if ($auto) { while(![console]::KeyAvailable -and ($counter++ -lt 10)) { [Threading.Thread]::Sleep( 500 ) } } if ([console]::KeyAvailable -or !$auto) { $x = [System.Console]::ReadKey() switch ($x.key) { # http://msdn.microsoft.com/en-us/library/system.consolekey(v=vs.110).aspx Escape { $continue = $false } R { } A { $auto = !$auto } } } } Write-Output "Watch end" } } |