l4d.tools/app/jobs/restart_server_job.rb
2026-01-18 19:00:07 +01:00

28 lines
822 B
Ruby

class RestartServerJob < ApplicationJob
queue_as :default
def perform(server_id)
server = Server.find(server_id)
log "Restarting server: #{server.name}"
begin
log "Calling SystemdManager.restart..."
L4dServer::SystemdManager.restart(server)
log "SystemdManager.restart completed successfully"
server.update(status: :starting)
log "Server status updated to starting"
Activity.log(server.user, "restarted", "Server", server.id, {})
log "Activity logged"
rescue StandardError => e
log "ERROR: Failed to restart server: #{e.message}"
log "Backtrace: #{e.backtrace.first(3).join("\n")}"
server.update(status: :failed)
Activity.log(server.user, "restart_failed", "Server", server.id, { error: e.message })
raise
end
end
end