Class: Gitlab::Database::LoadBalancing::Resolver
- Inherits:
-
Object
- Object
- Gitlab::Database::LoadBalancing::Resolver
- Defined in:
- lib/gitlab/database/load_balancing/resolver.rb
Constant Summary collapse
- FAR_FUTURE_TTL =
100.years.from_now
- UnresolvableNameserverError =
Class.new(StandardError)
- Response =
Class.new do attr_reader :address, :ttl def initialize(address:, ttl:) raise ArgumentError unless ttl.present? && address.present? @address = address @ttl = ttl end end
Instance Method Summary collapse
-
#initialize(nameserver) ⇒ Resolver
constructor
A new instance of Resolver.
- #resolve ⇒ Object
Constructor Details
#initialize(nameserver) ⇒ Resolver
Returns a new instance of Resolver.
25 26 27 |
# File 'lib/gitlab/database/load_balancing/resolver.rb', line 25 def initialize(nameserver) @nameserver = nameserver end |
Instance Method Details
#resolve ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/gitlab/database/load_balancing/resolver.rb', line 29 def resolve address = ip_address || ip_address_from_hosts_file || ip_address_from_dns unless address raise UnresolvableNameserverError, "could not resolve #{@nameserver}" end address end |