module Telemetry::Snmp::Data

Public Class Methods

connected?() click to toggle source
# File lib/telemetry/snmp/data.rb, line 48
def connected?
  connection.test_connection
end
connection(**opts) click to toggle source
# File lib/telemetry/snmp/data.rb, line 44
def connection(**opts)
  @connection ||= Sequel.connect(**opts.merge(default_credentials))
end
load_models(*models_array) click to toggle source
# File lib/telemetry/snmp/data.rb, line 33
def load_models(*models_array)
  models_array = models if models_array.empty?
  models_array.each do |model|
    require "telemetry/snmp/data/models/#{model}.rb"
  end
end
migration() click to toggle source
# File lib/telemetry/snmp/data.rb, line 18
def migration
  @migration_version = Sequel::Migrator.run(connection, migration_path, use_transactions: true)
end
migration_path() click to toggle source
# File lib/telemetry/snmp/data.rb, line 14
def migration_path
  "#{__dir__}/data/migrations"
end
migration_version() click to toggle source
# File lib/telemetry/snmp/data.rb, line 22
def migration_version
  @migration_version || migration
end
migrations_up_to_date?() click to toggle source
# File lib/telemetry/snmp/data.rb, line 26
def migrations_up_to_date?
  Sequel::Migrator.check_current(connection, migration_path)
  true
rescue Sequel::Migrator::NotCurrentError
  false
end
models() click to toggle source
# File lib/telemetry/snmp/data.rb, line 40
def models
  %w[user device_cred device oid oid_group oid_oid_groups oid_walk user_audit_log]
end
setup_oj_serializer() click to toggle source
# File lib/telemetry/snmp/data.rb, line 52
def setup_oj_serializer
  Sequel::Plugins::Serialization.register_format(:oj_json,
                                                 ->(value) { Oj.dump(value) },
                                                 ->(value) { Oj.load(value.nil? ? 'null' : value) })
end
start!() click to toggle source
# File lib/telemetry/snmp/data.rb, line 58
def start!
  raise 'failed to start db connection' unless connected?

  migration
  setup_oj_serializer

  load_models
end