Class: SprinkleDNS::MockClient

Inherits:
Object
  • Object
show all
Defined in:
lib/sprinkle_dns/providers/mock_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hosted_zones = []) ⇒ MockClient

Returns a new instance of MockClient.



7
8
9
# File 'lib/sprinkle_dns/providers/mock_client.rb', line 7

def initialize(hosted_zones = [])
  @hosted_zones = hosted_zones
end

Instance Attribute Details

#hosted_zonesObject (readonly)

Returns the value of attribute hosted_zones.



5
6
7
# File 'lib/sprinkle_dns/providers/mock_client.rb', line 5

def hosted_zones
  @hosted_zones
end

Instance Method Details

#change_hosted_zones(hosted_zones, configuration) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/sprinkle_dns/providers/mock_client.rb', line 35

def change_hosted_zones(hosted_zones, configuration)
  change_requests = []

  hosted_zones.each do |hosted_zone|
    changes = EntryPolicyService.new(hosted_zone, configuration).compile

    if changes.any?
      change_requests << MockChangeRequest.new(hosted_zone, 0, rand(3..15), false)
    end
  end

  change_requests
end

#check_change_requests(change_requests) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/sprinkle_dns/providers/mock_client.rb', line 49

def check_change_requests(change_requests)
  change_requests.reject{|cr| cr.in_sync}.each do |change_request|
    change_request.tries += 1
    change_request.in_sync = change_request.tries >= change_request.tries_needed
  end

  change_requests
end

#create_hosted_zones(hosted_zones) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/sprinkle_dns/providers/mock_client.rb', line 25

def create_hosted_zones(hosted_zones)
  change_requests = []

  hosted_zones.each do |hosted_zone|
    change_requests << MockChangeRequest.new(hosted_zone, 0, rand(3..15), false)
  end

  change_requests
end

#fetch_hosted_zones(filter: []) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/sprinkle_dns/providers/mock_client.rb', line 11

def fetch_hosted_zones(filter: [])
  if filter.empty?
    return []
  end

  @hosted_zones.each do |hz|
    hz.resource_record_sets.each do |entry|
      entry.persisted!
    end
  end

  @hosted_zones.select{|hz| filter.include?(hz.name)}
end