$g_backendUrl = "http://localhost:56783/"
$g_kilnRepositories = "C:\KilnRepositories"
function Get-URL([string] $url){
(New-Object net.webclient).DownloadString($url)
}
function LogOrWrite($msg, $logFile = ""){
if ($logFile -ne "") {
write "$(Get-Date -format o) $msg" | out-file -append $logFile
}
else {
write $msg
}
}
function Test-KilnVersion(){
try {
$resp = Get-Url(($g_backendUrl + "version"))
return ($resp.length -gt 0)
}
catch {
return $False
}
}
function Test-KilnDiff([string] $sRepoGUID, [string] $sChangeset1, [string] $sChangeset2){
try {
$url =$g_backendUrl + "repo/" + $sRepoGUID + "/diff/" + $sChangeset1 + ":" + $sChangeset2 + "?format=json&ignorews=True&maxsize=100000&timeout=10"
$resp = Get-Url($url)
return ($resp.length -gt 0)
}
catch {
return $False
}
}
function Get-ProcessStats([string] $service, [string] $logFile){
try {
$measure = get-process $service -ErrorAction Stop | Measure-Object WorkingSet -sum
LogOrWrite "The process $service has $($measure.Count) instances with a total WorkingSet of: $($measure.Sum)" $logFile
}
catch {
LogOrWrite "The process $service is not currently running." $logFile
}
}
function Get-MiniRedisSize([string] $kilnRepositoriesDir = $g_kilnrepositories, [string] $logFile = ""){
try {
$kilnRepo = (Resolve-Path $kilnRepositoriesDir -ErrorAction Stop).path
}
catch {
LogOrWrite "Could not find Kiln Repositories Directory: $kilnRepositoriesDir" $logFile
return
}
try {
$miniRedis = (Resolve-Path ($kilnRepo + "\miniredis.db") -ErrorAction Stop).path
}
catch {
LogOrWrite "Could not find miniredis.db file in $kilnRepo" $logFile
return
}
$lenMiniRedis = (get-childitem -path $miniRedis).length
LogOrWrite "The size of miniredis.db is: $lenMiniRedis" $logFile
return $lenMiniRedis
}
function Check-KilnBackend([string] $sRepoGUID, [string] $sChangeset1, [string] $sChangeset2, [string] $logFile = ""){
if (-Not ((Test-KilnVersion) -and (Test-KilnDiff $sRepoGUID $sChangeset1 $sChangeset2))){
#Restart the Kiln storage Service because something bad happened
LogOrWrite "Something is wrong. Restarting Kiln Storage Service" $logFile
Restart-Service "KilnStorageService"
return $False
}
else {
LogOrWrite "Kiln backend is OK" $logFile
return $True
}
}
|
Loading...