Sha256: e6c3f1175fd51801b0733f007981c74b9cb8b05c0b56e6185ce613e32994eb11

Contents?: true

Size: 1.5 KB

Versions: 66

Compression:

Stored size: 1.5 KB

Contents

module Katello
  module EventDaemon
    module Services
      class AgentEventReceiver
        class Handler
          attr_accessor :processed, :failed

          def initialize
            @processed = 0
            @failed = 0
          end

          def handle(message)
            ::Katello::Util::Support.with_db_connection do
              ::Katello::Agent::ClientMessageHandler.new(message).handle
              @processed += 1
            rescue => e
              @failed += 1
              Rails.logger.error("Error handling Katello Agent client message")
              Rails.logger.error(e.message)
              Rails.logger.error(e.backtrace.join("\n"))
            end
          end
        end

        def self.logger
          ::Foreman::Logging.logger('katello/agent')
        end

        def self.run
          fail("Katello agent event receiver already started") if running?

          @thread = Thread.new do
            @handler = Handler.new
            @agent_connection = ::Katello::Agent::Connection.new
            @agent_connection.fetch_agent_messages(@handler)
          end
        end

        def self.close
          @agent_connection&.close
          @thread&.join
        end

        def self.running?
          @agent_connection&.open? && @thread&.status.present?
        end

        def self.status
          {
            running: running?,
            processed_count: @handler&.processed || 0,
            failed_count: @handler&.failed || 0
          }
        end
      end
    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
katello-4.9.2 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.4 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.9.1 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.3 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.9.0 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.7.6 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.2 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.9.0.rc2 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.9.0.rc1 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.1 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.7.5 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.0 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.0.rc2 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.7.4 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.8.0.rc1 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.7.3 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.7.2 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.7.1 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.6.2.1 app/lib/katello/event_daemon/services/agent_event_receiver.rb
katello-4.6.2 app/lib/katello/event_daemon/services/agent_event_receiver.rb