class Fog::DNS::Google::Mock
Public Class Methods
data(api_version)
click to toggle source
# File lib/fog/google/dns.rb, line 61 def self.data(api_version) @data ||= {} end
new(options)
click to toggle source
# File lib/fog/google/dns.rb, line 57 def initialize(options) shared_initialize(options[:google_project], GOOGLE_DNS_API_VERSION, GOOGLE_DNS_BASE_URL) end
reset()
click to toggle source
# File lib/fog/google/dns.rb, line 65 def self.reset @data = nil end
Public Instance Methods
create_change(zone_name_or_id, additions = [], deletions = [])
click to toggle source
# File lib/fog/google/requests/dns/create_change.rb, line 26 def create_change(zone_name_or_id, additions = [], deletions = []) if self.data[:managed_zones].has_key?(zone_name_or_id) zone = self.data[:managed_zones][zone_name_or_id] else zone = self.data[:managed_zones].values.find { |zone| zone['name'] = zone_name_or_id } end unless zone raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist." end deletions.each do |del| rrset = self.data[:resource_record_sets][zone['id']].reject! { |r| r['name'] == del['name'] && r['type'] == del['type'] } unless rrset raise Fog::Errors::NotFound, "The 'entity.change.deletions[0]' resource named '#{del['name']} ('#{del['type']})' does not exist." end end additions.each do |add| self.data[:resource_record_sets][zone['id']] << add end id = self.data[:changes][zone['id']].max_by { |c| c['id'] }['id'] data = { 'kind' => 'dns#change', 'id' => (id.to_i + 1).to_s, 'startTime' => DateTime.now.strftime('%FT%T.%LZ'), 'status' => 'done', 'additions' => additions, 'deletions' => deletions, } self.data[:changes][zone['id']] << data build_excon_response(data) end
create_managed_zone(name, dns_name, description)
click to toggle source
# File lib/fog/google/requests/dns/create_managed_zone.rb, line 27 def create_managed_zone(name, dns_name, description) id = Fog::Mock.random_numbers(19).to_s data = { 'kind' => 'dns#managedZone', 'id' => id, 'creationTime' => DateTime.now.strftime('%FT%T.%LZ'), 'name' => name, 'dnsName' => dns_name, 'description' => description, 'nameServers' => [ 'ns-cloud-e1.googledomains.com.', 'ns-cloud-e2.googledomains.com.', 'ns-cloud-e3.googledomains.com.', 'ns-cloud-e4.googledomains.com.', ], } self.data[:managed_zones][id] = data self.data[:resource_record_sets][id] = [ { 'kind' => 'dns#resourceRecordSet', 'name' => dns_name, 'type' => 'NS', 'ttl' => 21600, 'rrdatas' => [ 'ns-cloud-c1.googledomains.com.', 'ns-cloud-c2.googledomains.com.', 'ns-cloud-c3.googledomains.com.', 'ns-cloud-c4.googledomains.com.', ] }, { 'kind' => 'dns#resourceRecordSet', 'name' => dns_name, 'type' => 'SOA', 'ttl' => 21600, 'rrdatas' => [ 'ns-cloud-c1.googledomains.com. dns-admin.google.com. 0 21600 3600 1209600 300', ] }, ] self.data[:changes][id] = [ { 'kind' => 'dns#change', 'id' => '0', 'startTime' => DateTime.now.strftime('%FT%T.%LZ'), 'status' => 'done', 'additions' => self.data[:resource_record_sets][id], }, ] build_excon_response(data) end
data(project=@project)
click to toggle source
# File lib/fog/google/dns.rb, line 69 def data(project=@project) self.class.data(api_version)[project] ||= { :managed_zones => {}, :resource_record_sets => {}, :changes => {}, } end
delete_managed_zone(name_or_id)
click to toggle source
# File lib/fog/google/requests/dns/delete_managed_zone.rb, line 21 def delete_managed_zone(name_or_id) if self.data[:managed_zones].has_key?(name_or_id) self.data[:managed_zones].delete(name_or_id) elsif zone = self.data[:managed_zones].values.find { |zone| zone['name'] = name_or_id } self.data[:managed_zones].delete(zone['id']) else raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{name_or_id}' does not exist." end build_excon_response(nil) end
get_change(zone_name_or_id, identity)
click to toggle source
# File lib/fog/google/requests/dns/get_change.rb, line 22 def get_change(zone_name_or_id, identity) if self.data[:managed_zones].has_key?(zone_name_or_id) zone = self.data[:managed_zones][zone_name_or_id] else zone = self.data[:managed_zones].values.find { |zone| zone['name'] = zone_name_or_id } end unless zone raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist." end unless data = self.data[:changes][zone['id']].find { |c| c['id'] == identity } raise Fog::Errors::NotFound, "The 'parameters.changeId' resource named '#{identity}' does not exist." end build_excon_response(data) end
get_managed_zone(name_or_id)
click to toggle source
# File lib/fog/google/requests/dns/get_managed_zone.rb, line 21 def get_managed_zone(name_or_id) if self.data[:managed_zones].has_key?(name_or_id) data = self.data[:managed_zones][name_or_id] else data = self.data[:managed_zones].values.find { |zone| zone['name'] = name_or_id } end unless data raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{name_or_id}' does not exist." end build_excon_response(data) end
get_project(identity)
click to toggle source
# File lib/fog/google/requests/dns/get_project.rb, line 21 def get_project(identity) body = { 'kind' => 'dns#project', 'number' => Fog::Mock.random_numbers(12).to_s, 'id' => identity, 'quota' => { 'kind' => 'dns#quota', 'managedZones' => 100, 'rrsetsPerManagedZone' => 10000, 'rrsetAdditionsPerChange' => 100, 'rrsetDeletionsPerChange'=>100, 'totalRrdataSizePerChange' => 10000, 'resourceRecordsPerRrset' => 20, } } build_excon_response(body) end
list_changes(zone_name_or_id)
click to toggle source
# File lib/fog/google/requests/dns/list_changes.rb, line 21 def list_changes(zone_name_or_id) if self.data[:managed_zones].has_key?(zone_name_or_id) zone = self.data[:managed_zones][zone_name_or_id] else zone = self.data[:managed_zones].values.find { |zone| zone['name'] == zone_name_or_id } end unless zone raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist." end body = { 'kind' => 'dns#changesListResponse', 'changes' => self.data[:changes][zone['id']], } build_excon_response(body) end
list_managed_zones()
click to toggle source
# File lib/fog/google/requests/dns/list_managed_zones.rb, line 20 def list_managed_zones() body = { 'kind' => 'dns#managedZonesListResponse', 'managedZones' => self.data[:managed_zones].values, } build_excon_response(body) end
list_resource_record_sets(zone_name_or_id, options = {})
click to toggle source
# File lib/fog/google/requests/dns/list_resource_record_sets.rb, line 25 def list_resource_record_sets(zone_name_or_id, options = {}) if self.data[:managed_zones].has_key?(zone_name_or_id) zone = self.data[:managed_zones][zone_name_or_id] else zone = self.data[:managed_zones].values.find { |zone| zone['name'] = zone_name_or_id } end unless zone raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist." end rrsets = self.data[:resource_record_sets][zone['id']] if options.has_key?(:name) && options.has_key?(:type) rrsets.delete_if { |rrset| rrset['name'] != options[:name] || rrset['type'] != options[:type] } end body = { 'kind' => 'dns#resourceRecordSetsListResponse', 'rrsets' => rrsets, } build_excon_response(body) end
reset_data()
click to toggle source
# File lib/fog/google/dns.rb, line 77 def reset_data self.class.data(api_version).delete(@project) end