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