Sha256: bfa3f20c73657494ea44c7f138feb6640781af702365a78ab8c9f9c7963fe8fa

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

module CC
  module Analyzer
    class Engine
      EngineFailure = Class.new(StandardError)
      EngineTimeout = Class.new(StandardError)

      class ContainerLog
        def initialize(name, inner_log)
          @name = name
          @inner_log = inner_log
        end

        def started(image, name)
          @inner_log.started(image, name)

          Analyzer.statsd.increment("cli.engines.started")
        end

        def timed_out(image, name, timeout)
          @inner_log.timed_out(image, name, timeout)

          Analyzer.statsd.increment("cli.engines.result.error")
          Analyzer.statsd.increment("cli.engines.result.error.timeout")
          Analyzer.statsd.increment("cli.engines.names.#{@name}.result.error")
          Analyzer.statsd.increment("cli.engines.names.#{@name}.result.error.timeout")

          raise EngineTimeout, "engine #{@name} ran past #{timeout} seconds and was killed"
        end

        def finished(image, name, status, stderr)
          @inner_log.finished(image, name, status, stderr)

          Analyzer.statsd.increment("cli.engines.finished")

          if status.success?
            Analyzer.statsd.increment("cli.engines.result.success")
            Analyzer.statsd.increment("cli.engines.names.#{@name}.result.success")
          else
            Analyzer.statsd.increment("cli.engines.result.error")
            Analyzer.statsd.increment("cli.engines.names.#{@name}.result.error")

            raise EngineFailure, "engine #{@name} failed with status #{status.exitstatus} and stderr \n#{stderr}"
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
codeclimate-0.2.9 lib/cc/analyzer/engine/container_log.rb