Class: Kitsune::Kit::Adapters::FakeProvider
- Defined in:
- lib/kitsune/kit/adapters/fake_provider.rb
Instance Attribute Summary collapse
-
#calls ⇒ Object
readonly
Returns the value of attribute calls.
-
#dns_records ⇒ Object
readonly
Returns the value of attribute dns_records.
-
#servers ⇒ Object
readonly
Returns the value of attribute servers.
Instance Method Summary collapse
- #create_server(spec:) ⇒ Object
- #delete_dns_record(id:, zone:) ⇒ Object
- #delete_server(id:) ⇒ Object
- #find_dns_record(zone:, name:, type:) ⇒ Object
- #find_server(name:, tags: []) ⇒ Object
- #find_server_by_id(id:) ⇒ Object
-
#initialize(servers: [], dns_records: [], failures: {}) ⇒ FakeProvider
constructor
A new instance of FakeProvider.
- #upsert_dns_record(record:) ⇒ Object
- #validate_credentials! ⇒ Object
- #validate_server_spec!(spec:) ⇒ Object
- #wait_until_ready(id:, timeout:) ⇒ Object
Constructor Details
#initialize(servers: [], dns_records: [], failures: {}) ⇒ FakeProvider
Returns a new instance of FakeProvider.
12 13 14 15 16 17 18 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 12 def initialize(servers: [], dns_records: [], failures: {}) super() @servers = servers.dup @dns_records = dns_records.dup @failures = failures @calls = [] end |
Instance Attribute Details
#calls ⇒ Object (readonly)
Returns the value of attribute calls.
10 11 12 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 10 def calls @calls end |
#dns_records ⇒ Object (readonly)
Returns the value of attribute dns_records.
10 11 12 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 10 def dns_records @dns_records end |
#servers ⇒ Object (readonly)
Returns the value of attribute servers.
10 11 12 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 10 def servers @servers end |
Instance Method Details
#create_server(spec:) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 44 def create_server(spec:) record(:create_server, spec: spec) fail_if_requested!(:create_server) server = ServerRecord.new( id: SecureRandom.uuid, name: spec.fetch(:name), status: "new", public_ip: nil, region: spec.fetch(:region), size: spec.fetch(:size), image: spec.fetch(:image), tags: spec.fetch(:tags, []) ) @servers << server server end |
#delete_dns_record(id:, zone:) ⇒ Object
91 92 93 94 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 91 def delete_dns_record(id:, zone:) record(:delete_dns_record, id: id, zone: zone) !!@dns_records.reject! { |record| record.id == id && record.zone == zone } end |
#delete_server(id:) ⇒ Object
72 73 74 75 76 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 72 def delete_server(id:) record(:delete_server, id: id) fail_if_requested!(:delete_server) !!@servers.reject! { |server| server.id == id } end |
#find_dns_record(zone:, name:, type:) ⇒ Object
78 79 80 81 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 78 def find_dns_record(zone:, name:, type:) record(:find_dns_record, zone: zone, name: name, type: type) @dns_records.find { |record| record.zone == zone && record.name == name && record.type == type } end |
#find_server(name:, tags: []) ⇒ Object
32 33 34 35 36 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 32 def find_server(name:, tags: []) record(:find_server, name: name, tags: ) fail_if_requested!(:find_server) @servers.find { |server| server.name == name && (.empty? || ( - server.).empty?) } end |
#find_server_by_id(id:) ⇒ Object
38 39 40 41 42 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 38 def find_server_by_id(id:) record(:find_server_by_id, id: id) fail_if_requested!(:find_server_by_id) @servers.find { |server| server.id.to_s == id.to_s } end |
#upsert_dns_record(record:) ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 83 def upsert_dns_record(record:) record(:upsert_dns_record, record: record) existing = find_dns_record(zone: record.zone, name: record.name, type: record.type) saved = record.with(id: existing&.id || SecureRandom.uuid) existing ? @dns_records[@dns_records.index(existing)] = saved : @dns_records << saved saved end |
#validate_credentials! ⇒ Object
20 21 22 23 24 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 20 def validate_credentials! record(:validate_credentials) fail_if_requested!(:validate_credentials) true end |
#validate_server_spec!(spec:) ⇒ Object
26 27 28 29 30 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 26 def validate_server_spec!(spec:) record(:validate_server_spec, spec: spec) fail_if_requested!(:validate_server_spec) true end |
#wait_until_ready(id:, timeout:) ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/kitsune/kit/adapters/fake_provider.rb', line 61 def wait_until_ready(id:, timeout:) record(:wait_until_ready, id: id, timeout: timeout) fail_if_requested!(:wait_until_ready) server = @servers.find { |candidate| candidate.id == id } raise KeyError, "server not found: #{id}" unless server ready = server.with(status: "active", public_ip: server.public_ip || "203.0.113.10") @servers[@servers.index(server)] = ready ready end |