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 Get-Date $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" } $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 Cache_ReadOnlyVersion -value $env.ReadOnlyVersion $displayObj | Add-Member -type NoteProperty -name Cache_VOVersion -value $env.VOVersion $displayObj | Add-Member -type NoteProperty -name Real_Version -value $env.RealPlanningVersion.Version $displayObj | Add-Member -type NoteProperty -name Real_StaticVersion -value $env.RealPlanningVersion.StaticDataVersion $displayObj | Add-Member -type NoteProperty -name Real_DynamicVersion -value $env.RealPlanningVersion.DynamicDataVersion $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" } } |