Class: Bosh::Cloudfoundry::Validations::DnsIpMappingValidation
- Inherits:
-
Object
- Object
- Bosh::Cloudfoundry::Validations::DnsIpMappingValidation
- Includes:
- Bosh::Cli::Validation, BoshExtensions
- Defined in:
- lib/bosh/cloudfoundry/validations/dns_ip_mapping_validation.rb
Overview
Validates that domain
is an A record that resolves to expected_ip_addresses
and no other IP addresses.
Usage:
dns_mapping = Bosh::Cloudfoundry::Validations::DnsIpMappingValidation.new("foobar.mycloud.com", "1.2.3.4")
if dns_mapping.valid?
puts "`#{dns_mapping.domain}' maps to #{dns_mapping.ip_address}"
else
puts "Validation errors:"
dns_mapping.errors.each do |error|
puts "- %s" % [error]
end
puts "`#{dns_mapping.domain}' does not map to #{dns_mapping.ip_address}"
end
Instance Attribute Summary collapse
-
#domain ⇒ Object
readonly
Returns the value of attribute domain.
-
#ip_address ⇒ Object
readonly
Returns the value of attribute ip_address.
Instance Method Summary collapse
-
#initialize(domain, ip_address) ⇒ DnsIpMappingValidation
constructor
A new instance of DnsIpMappingValidation.
- #perform_validation(options = {}) ⇒ Object
Constructor Details
#initialize(domain, ip_address) ⇒ DnsIpMappingValidation
Returns a new instance of DnsIpMappingValidation.
27 28 29 30 |
# File 'lib/bosh/cloudfoundry/validations/dns_ip_mapping_validation.rb', line 27 def initialize(domain, ip_address) @domain = domain @ip_address = ip_address end |
Instance Attribute Details
#domain ⇒ Object (readonly)
Returns the value of attribute domain.
24 25 26 |
# File 'lib/bosh/cloudfoundry/validations/dns_ip_mapping_validation.rb', line 24 def domain @domain end |
#ip_address ⇒ Object (readonly)
Returns the value of attribute ip_address.
25 26 27 |
# File 'lib/bosh/cloudfoundry/validations/dns_ip_mapping_validation.rb', line 25 def ip_address @ip_address end |
Instance Method Details
#perform_validation(options = {}) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/bosh/cloudfoundry/validations/dns_ip_mapping_validation.rb', line 32 def perform_validation(={}) resolved_a_records = nil step("Resolve DNS", "Cannot resolve DNS '#{domain}' to an IP address", :fatal) do any_resolved_records, resolved_a_records = resolve_dns(domain) any_resolved_records end step("Resolve DNS '#{domain}' to IP '#{ip_address}'", "DNS '#{domain}' resolves to: #{resolved_a_records.join(', ')}") do resolved_a_records == [ip_address] end end |