Class: Asteroid::Provider::DigitalOcean
- Defined in:
- lib/asteroid/provider/digital_ocean.rb
Instance Method Summary collapse
- #create_instance(server) ⇒ Object
- #create_ssh_key(config) ⇒ Object
- #destroy_instance(instance) ⇒ Object
-
#initialize(config = {}) ⇒ DigitalOcean
constructor
A new instance of DigitalOcean.
- #instances ⇒ Object
- #reboot_instance(instance) ⇒ Object
- #sizes ⇒ Object
- #ssh_keys ⇒ Object
Methods inherited from Abstract
#required_instance_attributes, #type, type
Constructor Details
#initialize(config = {}) ⇒ DigitalOcean
Returns a new instance of DigitalOcean.
7 8 9 10 11 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 7 def initialize(config = {}) @config = config Digitalocean.client_id = config[:client_id] Digitalocean.api_key = config[:api_key] end |
Instance Method Details
#create_instance(server) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 30 def create_instance(server) = server. require_attribute , :size_id, "needs size of droplet" require_attribute , :image_id, "needs starting image for droplet" require_attribute , :region_id, "needs region for droplet" require_attribute , :ssh_key_ids, "needs SSH key registered for droplet" instance = Digitalocean::Droplet.create( name: server.generate_instance_name, size_id: [:size_id], image_id: [:image_id], region_id: [:region_id], ssh_key_ids: [:ssh_key_ids], private_networking: true ) if instance.status == "OK" Instance.new instance.droplet.marshal_dump.merge(provider: self) else nil end end |
#create_ssh_key(config) ⇒ Object
79 80 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 79 def create_ssh_key(config) end |
#destroy_instance(instance) ⇒ Object
66 67 68 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 66 def destroy_instance(instance) Digitalocean::Droplet.destroy instance.id end |
#instances ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 21 def instances response = Digitalocean::Droplet.all response.droplets.map do |d| d.marshal_dump.merge( provider: self ) end end |
#reboot_instance(instance) ⇒ Object
82 83 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 82 def reboot_instance(instance) end |
#sizes ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 13 def sizes Digitalocean::Size.all.sizes.map do |d| d.marshal_dump.merge( provider: self ) end end |
#ssh_keys ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/asteroid/provider/digital_ocean.rb', line 70 def ssh_keys response = Digitalocean::SshKey.all response.ssh_keys.map do |d| d.marshal_dump.merge( provider: self ) end end |