Sha256: d2218265e806521e1458b6e956106cf26e9314977338eb2920625a3790708f33

Contents?: true

Size: 648 Bytes

Versions: 1

Compression:

Stored size: 648 Bytes

Contents

module Easymon
  class ActiveRecordMysqlWriteableCheck
    attr_accessor :klass

    def initialize(klass, makara = false)
      self.klass = klass
      @query = "SELECT @@read_only"
      # Trick makara into using the primary db
      @query += " for UPDATE" if makara
    end

    def check
      check_status = database_writeable?
      if check_status
        message = "@@read_only is 0"
      else
        message = "@@read_only is 1"
      end
      [check_status, message]
    end

    private
      def database_writeable?
        klass.connection.execute(@query).entries.flatten.first == 0
      rescue
        false
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
easymon-1.6.1 lib/easymon/checks/active_record_mysql_writeable_check.rb