diff --git a/Updater/Update-Service.ps1 b/Updater/Update-Service.ps1 index 9c1153e6a021a26815913241a0aa7a9c238076f6..f12c233122a539362d94b4740420ca09adf5df10 100644 --- a/Updater/Update-Service.ps1 +++ b/Updater/Update-Service.ps1 @@ -569,90 +569,98 @@ Exit-IfDirMissing $UploadPathLogs "log file target" # terminates the entire script: Upload-LogFiles -$UpdItems = @() -$ConfigShouldBeUpdated = NewConfig-Available $ConfigPath -$ServiceShouldBeUpdated = ServiceUpdate-Requested -if (-Not ($ConfigShouldBeUpdated -Or $ServiceShouldBeUpdated)) { - Log-Debug "No update action found to be necessary." - Exit -} +try { + $UpdItems = @() + $ConfigShouldBeUpdated = NewConfig-Available $ConfigPath + $ServiceShouldBeUpdated = ServiceUpdate-Requested + if (-Not ($ConfigShouldBeUpdated -Or $ServiceShouldBeUpdated)) { + Log-Debug "No update action found to be necessary." + Exit + } -# define where the configuration is located that should be tested: -$ConfigToTest = $ConfigPath -if ($ConfigShouldBeUpdated) { - $ConfigToTest = $UpdPathConfig - $UpdItems += "configuration files" -} + # define where the configuration is located that should be tested: + $ConfigToTest = $ConfigPath + if ($ConfigShouldBeUpdated) { + $ConfigToTest = $UpdPathConfig + $UpdItems += "configuration files" + } -# define which configuration checker executable to use for testing: -$ConftestExe = "$($InstallationPath)\AutoTxConfigTest.exe" -if ($ServiceShouldBeUpdated) { - $UpdPackage = Find-InstallationPackage - $ConftestExe = "$($UpdPackage)\$($ServiceName)\AutoTxConfigTest.exe" - $UpdItems += "service binaries" -} + # define which configuration checker executable to use for testing: + $ConftestExe = "$($InstallationPath)\AutoTxConfigTest.exe" + if ($ServiceShouldBeUpdated) { + $UpdPackage = Find-InstallationPackage + $ConftestExe = "$($UpdPackage)\$($ServiceName)\AutoTxConfigTest.exe" + $UpdItems += "service binaries" + } -# now we're all set and can run the config test: -$ConfigValid, $ConfigSummary = Config-IsValid $ConftestExe $ConfigToTest + # now we're all set and can run the config test: + $ConfigValid, $ConfigSummary = Config-IsValid $ConftestExe $ConfigToTest -# if we don't have a valid configuration we complain and terminate: -if (-Not ($ConfigValid)) { - Log-Error "Configuration not valid for service, $($Me) terminating!" - Send-MailReport -Subject "Update failed, configuration invalid!" ` - -Body $("An update action was found to be necessary, however the" - "configuration didn't`npass the validator.`n`nThe following" - "summary was generated by the configuration checker:" - "`n`n$($ConfigSummary)") - Exit -} + # if we don't have a valid configuration we complain and terminate: + if (-Not ($ConfigValid)) { + Log-Error "Configuration not valid for service, $($Me) terminating!" + Send-MailReport -Subject "Update failed, configuration invalid!" ` + -Body $("An update action was found to be necessary, however the" + "configuration didn't`npass the validator.`n`nThe following" + "summary was generated by the configuration checker:" + "`n`n$($ConfigSummary)") + Exit + } -# reaching this point means -# (1) something needs to be updated (config, service or both) -# AND -# (2) the config validates with the corresponding service version -Write-Verbose "Required update items:`n> - $($UpdItems -join "`n> - ")`n" + # reaching this point means + # (1) something needs to be updated (config, service or both) + # AND + # (2) the config validates with the corresponding service version + Write-Verbose "Required update items:`n> - $($UpdItems -join "`n> - ")`n" -if ($ConfigShouldBeUpdated) { - $ConfigUpdated = Update-Configuration - if (-Not $ConfigUpdated) { - $msg = "Updating the configuration failed, $($Me) terminating!" - Log-Error $msg - Send-MailReport -Subject "updated failed!" -Body $msg - Exit + if ($ConfigShouldBeUpdated) { + $ConfigUpdated = Update-Configuration + if (-Not $ConfigUpdated) { + $msg = "Updating the configuration failed, $($Me) terminating!" + Log-Error $msg + Send-MailReport -Subject "updated failed!" -Body $msg + Exit + } } -} -if ($ServiceShouldBeUpdated) { - $ServiceUpdated = Update-ServiceBinaries - if (-Not $ServiceUpdated) { - $msg = "Updating the service binaries failed, $($Me) terminating!" - Log-Error $msg - Send-MailReport -Subject "updated failed!" -Body $msg - Exit + if ($ServiceShouldBeUpdated) { + $ServiceUpdated = Update-ServiceBinaries + if (-Not $ServiceUpdated) { + $msg = "Updating the service binaries failed, $($Me) terminating!" + Log-Error $msg + Send-MailReport -Subject "updated failed!" -Body $msg + Exit + } } -} -$UpdSummary = "Updated $($UpdItems -join " and ")." + $UpdSummary = "Updated $($UpdItems -join " and ")." -if ($ServiceRunningBefore) { - Log-Debug "$($UpdSummary) Trying to start the service again..." - Start-MyService -} else { - Log-Debug "$($UpdSummary) Leaving the service stopped, as before." -} + if ($ServiceRunningBefore) { + Log-Debug "$($UpdSummary) Trying to start the service again..." + Start-MyService + } else { + Log-Debug "$($UpdSummary) Leaving the service stopped, as before." + } -$UpdDetails = $("An $($Me) run completed successfully. Updated items:" - "`n> - $($UpdItems -join "`n> - ")") -if ($ConfigUpdated) { - $UpdDetails += "`n`nConfig validation summary:`n$($ConfigSummary)" + $UpdDetails = $("An $($Me) run completed successfully. Updated items:" + "`n> - $($UpdItems -join "`n> - ")") + if ($ConfigUpdated) { + $UpdDetails += "`n`nConfig validation summary:`n$($ConfigSummary)" + } +} +catch { + $UpdDetails = $("Unexpected problem, check logs! $($Me) terminating." + "`n`n$($_.Exception.Message)") + $UpdSummary = "ERROR, unhandled problem occurered!" + Log-Error $UpdDetails } -Send-MailReport -Subject "$UpdSummary" -Body "$UpdDetails" +Send-MailReport -Subject "$UpdSummary" -Body "$UpdDetails" Upload-LogFiles