27 lines
761 B
Ruby
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
|