class Fog::OpenStack::DNS::V2::Mock
Public Class Methods
data()
click to toggle source
# File lib/fog/openstack/dns/v2.rb, line 79 def self.data @data ||= Hash.new do |hash, key| hash[key] = { :zones => [{ "id" => "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3", "pool_id" => "572ba08c-d929-4c70-8e42-03824bb24ca2", "project_id" => "4335d1f0-f793-11e2-b778-0800200c9a66", "name" => "example.org.", "email" => "joe@example.org", "ttl" => 7200, "serial" => 1_404_757_531, "status" => "ACTIVE", "action" => "NONE", "description" => "This is an example zone.", "masters" => [], "type" => "PRIMARY", "transferred_at" => '', "version" => 1, "created_at" => "2014-07-07T18:25:31.275934", "updated_at" => '', "links" => { "self" => "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3" } }], :pools => { "metadata" => { "total_count" => 2 }, "links" => { "self" => "http://127.0.0.1:9001/v2/pools" }, "pools" => [ { "description" => '', "id" => "794ccc2c-d751-44fe-b57f-8894c9f5c842", "project_id" => '', "created_at" => "2015-02-18T22:18:58.000000", "attributes" => '', "ns_records" => [ { "hostname" => "ns1.example.org.", "priority" => 1 } ], "links" => { "self" => "http://127.0.0.1:9001/v2/pools/794ccc2c-d751-44fe-b57f-8894c9f5c842" }, "name" => "default", "updated_at" => "2015-02-19T15:59:44.000000" }, { "description" => '', "id" => "d1716333-8c16-490f-85ee-29af36907605", "project_id" => "noauth-project", "created_at" => "2015-02-23T21:56:33.000000", "attributes" => '', "ns_records" => [ { "hostname" => "ns2.example.org.", "priority" => 1 } ], "links" => { "self" => "http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605" }, "name" => "example_pool", "updated_at" => '' } ] }, :quota => { "api_export_size" => 1000, "recordset_records" => 20, "zone_records" => 500, "zone_recordsets" => 500, "zones" => 100 }, :recordsets => { "recordsets" => [{ "description" => "This is an example record set.", "links" => { "self" => "https://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets/f7b10e9b-0cae-4a91-b162-562bc6096648" }, "updated_at" => '', "records" => [ "10.1.0.2" ], "ttl" => 3600, "id" => "f7b10e9b-0cae-4a91-b162-562bc6096648", "name" => "example.org.", "project_id" => "4335d1f0-f793-11e2-b778-0800200c9a66", "zone_id" => "2150b1bf-dee2-4221-9d85-11f7886fb15f", "zone_name" => "example.com.", "created_at" => "2014-10-24T19:59:44.000000", "version" => 1, "type" => "A", "status" => "ACTIVE", "action" => "NONE" }], "links" => { "self" => "http://127.0.0.1:9001/v2/recordsets?limit=1", "next" => "http://127.0.0.1:9001/v2/recordsets?limit=1&marker=45fd892d-7a67-4f65-9df0-87273f228d6c" }, "metadata" => { "total_count" => 2 } }, :zone_transfer_requests => { "transfer_requests" => [ { "created_at" => "2014-07-17T20:34:40.882579", "description" => "This was created by the requesting project", "id" => "f2ad17b5-807a-423f-a991-e06236c247be", "key" => "9Z2R50Y0", "project_id" => "1", "status" => "ACTIVE", "target_project_id" => "123456", "updated_at" => nil, "zone_id" => "6b78734a-aef1-45cd-9708-8eb3c2d26ff8", "zone_name" => "qa.dev.example.com.", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/f2ad17b5-807a-423f-a991-e06236c247be" } }, { "description" => "This is scoped to the requesting project", "id" => "efd2d720-b0c4-43d4-99f7-d9b53e08860d", "zone_id" => "2c4d5e37-f823-4bee-9859-031cb44f80e7", "zone_name" => "subdomain.example.com.", "status" => "ACTIVE", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests/efd2d720-b0c4-43d4-99f7-d9b53e08860d" } } ], "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_requests" } }, :zone_transfer_accepts => { "metadata" => { "total_count" => 2 }, "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts" }, "transfer_accepts" => [ { "status" => "COMPLETE", "zone_id" => "8db93d1a-59e3-4143-a393-5821abea0a46", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/afb4222b-18b3-44b3-9f54-e0dfdba1be44", "zone" => "http://127.0.0.1:9001/v2/zones/8db93d1a-59e3-4143-a393-5821abea0a46" }, "created_at" => "2016-06-01 05:35:35", "updated_at" => "2016-06-01 05:35:35", "key" => nil, "project_id" => "85604ecfb5334b50bd40ca53fc1d710f", "id" => "afb4222b-18b3-44b3-9f54-e0dfdba1be44", "zone_transfer_request_id" => "d223f7ef-77a6-459e-abd3-b4dbc97338e7" }, { "status" => "COMPLETE", "zone_id" => "925bfc45-8901-4aca-aa12-18afaf0879e2", "links" => { "self" => "http://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/ecbc7091-c498-4ec4-9893-68b06297fe50", "zone" => "http://127.0.0.1:9001/v2/zones/925bfc45-8901-4aca-aa12-18afaf0879e2" }, "created_at" => "2016-06-01 10:06:36", "updated_at" => "2016-06-01 10:06:37", "key" => nil, "project_id" => "85604ecfb5334b50bd40ca53fc1d710f", "id" => "ecbc7091-c498-4ec4-9893-68b06297fe50", "zone_transfer_request_id" => "94cf9bd3-4137-430b-bf75-4e690430258c" } ] } } end end
new(options = {})
click to toggle source
# File lib/fog/openstack/dns/v2.rb, line 264 def initialize(options = {}) @openstack_username = options[:openstack_username] @openstack_tenant = options[:openstack_tenant] @openstack_auth_uri = URI.parse(options[:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse(options[:openstack_auth_url]) management_url.port = 9001 management_url.path = '/v2' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == options[:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => options[:openstack_username], 'email' => "#{options[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end
reset()
click to toggle source
# File lib/fog/openstack/dns/v2.rb, line 260 def self.reset @data = nil end
Public Instance Methods
create_recordset(zone_id, name, type, records, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/create_recordset.rb, line 29 def create_recordset(zone_id, name, type, records, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 202 recordset = data[:recordsets]["recordsets"].first.dup recordset_id = recordset["id"] recordset["zone_id"] = zone_id recordset["name"] = name recordset["type"] = type recordset["records"] = records recordset["status"] = "PENDING" recordset["action"] = "CREATE" recordset["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{recordset_id}" response.body = recordset.merge(options) response end
create_zone(name, email, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/create_zone.rb, line 28 def create_zone(name, email, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] response = Excon::Response.new response.status = 202 zone = data[:zones].first.dup zone["name"] = name zone["email"] = email zone["status"] = "PENDING" zone["action"] = "CREATE" response.body = zone.merge(options) response end
create_zone_transfer_accept(key, zone_transfer_request_id)
click to toggle source
# File lib/fog/openstack/dns/v2/requests/create_zone_transfer_accept.rb, line 25 def create_zone_transfer_accept(key, zone_transfer_request_id) response = Excon::Response.new response.status = 200 response.body = data[:zone_transfer_accepts]["transfer_accepts"].first response end
create_zone_transfer_request(zone_id, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/create_zone_transfer_request.rb, line 24 def create_zone_transfer_request(zone_id, options = {}) response = Excon::Response.new response.status = 201 response.body = data[:zone_transfer_requests]["transfer_requests"].first response end
credentials()
click to toggle source
# File lib/fog/openstack/dns/v2.rb, line 298 def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end
data()
click to toggle source
# File lib/fog/openstack/dns/v2.rb, line 290 def data self.class.data[@openstack_username] end
delete_recordset(zone_id, id, _options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/delete_recordset.rb, line 18 def delete_recordset(zone_id, id, _options = {}) response = Excon::Response.new response.status = 202 recordset = data[:recordset_updated] || data[:recordsets]["recordsets"].first.dup recordset["zone_id"] = zone_id recordset["id"] = id recordset["status"] = "PENDING" recordset["action"] = "DELETE" recordset["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{id}" response.body = recordset response end
delete_zone(id, _options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/delete_zone.rb, line 18 def delete_zone(id, _options = {}) response = Excon::Response.new response.status = 202 zone = data[:zone_updated] || data[:zones].first.dup zone["id"] = id zone["status"] = "PENDING" zone["action"] = "DELETE" zone["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{id}" response.body = zone response end
delete_zone_transfer_request(zone_transfer_request_id)
click to toggle source
# File lib/fog/openstack/dns/v2/requests/delete_zone_transfer_request.rb, line 17 def delete_zone_transfer_request(zone_transfer_request_id) response = Excon::Response.new response.status = 204 response end
get_pool(id, _options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/get_pool.rb, line 18 def get_pool(id, _options = {}) response = Excon::Response.new response.status = 200 pool = data[:pool_updated] || data[:pools]['pools'].first pool['id'] = id response.body = pool response end
get_quota(_project_id = nil)
click to toggle source
# File lib/fog/openstack/dns/v2/requests/get_quota.rb, line 19 def get_quota(_project_id = nil) response = Excon::Response.new response.status = 200 response.body = data[:quota_updated] || data[:quota] response end
get_recordset(zone_id, id)
click to toggle source
# File lib/fog/openstack/dns/v2/requests/get_recordset.rb, line 18 def get_recordset(zone_id, id) response = Excon::Response.new response.status = 200 recordset = data[:recordset_updated] || data[:recordsets]["recordsets"].first recordset["zone_id"] = zone_id recordset["id"] = id recordset["action"] = "NONE" recordset["status"] = "ACTIVE" recordset["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{id}" response.body = recordset response end
get_zone(id, _options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/get_zone.rb, line 18 def get_zone(id, _options = {}) response = Excon::Response.new response.status = 200 zone = data[:zone_updated] || data[:zones].first zone["id"] = id response.body = zone response end
get_zone_transfer_accept(zone_transfer_accept_id)
click to toggle source
# File lib/fog/openstack/dns/v2/requests/get_zone_transfer_accept.rb, line 16 def get_zone_transfer_accept(zone_transfer_accept_id) response = Excon::Response.new response.status = 200 accept = data[:zone_transfer_accepts]["transfer_accepts"].first accept["id"] = zone_transfer_accept_id response.body = accept response end
get_zone_transfer_request(zone_transfer_request_id)
click to toggle source
# File lib/fog/openstack/dns/v2/requests/get_zone_transfer_request.rb, line 17 def get_zone_transfer_request(zone_transfer_request_id) response = Excon::Response.new response.status = 200 request = data[:zone_transfer_requests]["transfer_requests"].first request["id"] = zone_transfer_request_id response.body = request response end
list_pools(_options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/list_pools.rb, line 20 def list_pools(_options = {}) response = Excon::Response.new response.status = 200 response.body = data[:pools] response end
list_recordsets(zone_id = nil, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/list_recordsets.rb, line 35 def list_recordsets(zone_id = nil, options = {}) if zone_id.kind_of?(Hash) options = zone_id zone_id = nil end zone_id = options.delete(:zone_id) if zone_id.nil? response = Excon::Response.new response.status = 200 data[:recordsets]["recordsets"].each do |rs| rs["zone_id"] = zone_id unless zone_id.nil? end response.body = data[:recordsets] response end
list_zone_transfer_accepts(options={})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/list_zone_transfer_accepts.rb, line 17 def list_zone_transfer_accepts(options={}) response = Excon::Response.new response.status = 200 response.body = data[:zone_transfer_accepts]["transfer_accepts"] response end
list_zone_transfer_requests(options={})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/list_zone_transfer_requests.rb, line 17 def list_zone_transfer_requests(options={}) response = Excon::Response.new response.status = 200 response.body = data[:zone_transfer_requests]["transfer_requests"] response end
list_zones(_options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/list_zones.rb, line 20 def list_zones(_options = {}) response = Excon::Response.new response.status = 200 response.body = {'zones' => data[:zones]} response end
reset_data()
click to toggle source
# File lib/fog/openstack/dns/v2.rb, line 294 def reset_data self.class.data.delete(@openstack_username) end
update_quota(_project_id, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/update_quota.rb, line 20 def update_quota(_project_id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:quota_updated] = data[:quota].merge(options) response = Excon::Response.new response.status = 200 response.body = data[:quota_updated] response end
update_recordset(zone_id, id, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/update_recordset.rb, line 20 def update_recordset(zone_id, id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:recordset_updated] = data[:recordsets]["recordsets"].first.merge(options) data[:recordset_updated]["zone_id"] = zone_id data[:recordset_updated]["id"] = id data[:recordset_updated]["status"] = "PENDING" data[:recordset_updated]["action"] = "UPDATE" data[:recordset_updated]["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{zone_id}/recordsets/#{id}" response = Excon::Response.new response.status = 202 response.body = data[:recordset_updated] response end
update_zone(id, options = {})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/update_zone.rb, line 20 def update_zone(id, options = {}) # stringify keys options = Hash[options.map { |k, v| [k.to_s, v] }] data[:zone_updated] = data[:zones].first.merge(options) data[:zone_updated]["id"] = id data[:zone_updated]["status"] = "PENDING" data[:zone_updated]["action"] = "UPDATE" data[:zone_updated]["links"]["self"] = "https://127.0.0.1:9001/v2/zones/#{id}" response = Excon::Response.new response.status = 202 response.body = data[:zone_updated] response end
update_zone_transfer_request(zone_transfer_request_id,description,options={})
click to toggle source
# File lib/fog/openstack/dns/v2/requests/update_zone_transfer_request.rb, line 23 def update_zone_transfer_request(zone_transfer_request_id,description,options={}) response = Excon::Response.new response.status = 200 request = data[:zone_transfer_requests]["transfer_requests"] request.id = zone_transfer_request_id request.description =description response.body = request response end