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

27 lines
761 B
Ruby

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