class Oceanarium::Droplet
Attributes
backups_active[RW]
created_at[RW]
id[RW]
image_id[RW]
ip_address[RW]
locked[RW]
name[RW]
region_id[RW]
size_id[RW]
status[RW]
Public Class Methods
action(id, action)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 132 def self.action(id, action) # Performs single action to a Droplet. Returns status OK or Error @approved_actions = ['reboot', 'power_cycle', 'shutdown', 'power_off', 'power_on', 'password_reset', 'enable_backups', 'disable_backups', 'destroy'] if @approved_actions.include? action @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}/#{action}") return [@get.parsed_response['status'], @get.parsed_response['event_id']] else 'ERROR' end end
all()
click to toggle source
Core API
# File lib/oceanarium/resources/droplet.rb, line 100 def self.all # Returns all Droplets in Array. Each Droplet is a Hash @request = Oceanarium::Request.new @get = @request.get('/droplets/') if @get.parsed_response['status'] == 'OK' @get.parsed_response['droplets'] end end
create(name, size_id, image_id, region_id, ssh_key_ids=nil)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 118 def self.create(name, size_id, image_id, region_id, ssh_key_ids=nil) @request = Oceanarium::Request.new if ssh_key_ids.nil? @get = @request.get(URI::encode("/droplets/new?name=#{name}&size_id=#{size_id}&image_id=#{image_id}®ion_id=#{region_id}")) else @get = @request.get(URI::encode("/droplets/new?name=#{name}&size_id=#{size_id}&image_id=#{image_id}®ion_id=#{region_id}&ssh_key_ids=#{ssh_key_ids}")) end if @get.parsed_response['status'] == 'OK' @get.parsed_response else @get.parsed_response end end
destroy(id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 185 def self.destroy(id) # Destroys Droplet @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}/destroy/") [@get.parsed_response['status'], @get.parsed_response['event_id']] end
find(id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 109 def self.find(id) # Returns single Droplet Hash. Returns nil if error @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}") if @get.parsed_response['status'] == 'OK' @get.parsed_response['droplet'] end end
new(option, api_key, config_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 7 def initialize(option, api_key, config_id) if api_key.nil? || config_id.nil? raise 'No API key/client ID!' else if option.is_a?(Hash) @object = option else @object = Oceanarium::Droplet.find(option) end if @object.nil? self.id = nil else self.id = @object['id'] self.name = @object['name'] self.image_id = @object['image_id'] self.size_id = @object['size_id'] self.region_id = @object['region_id'] self.backups_active = @object['backups_active'] self.ip_address = @object['ip_address'] self.locked = @object['locked'] self.status = @object['status'] self.created_at = @object['created_at'] end end end
rebuild(id, image_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 178 def self.rebuild(id, image_id) # Rebuild OS image on Droplet. Returns OK or Error @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}/rebuild/?image_id=#{image_id}") [@get.parsed_response['status'], @get.parsed_response['event_id']] end
rename(id, name)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 157 def self.rename(id, name) # Renames Droplet. Name must be FQDN. Returns OK or Error @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}/rename/?name=#{name}") [@get.parsed_response['status'], @get.parsed_response['event_id']] end
resize(id, size_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 144 def self.resize(id, size_id) # Resizes Droplet. Returns OK or Error @request = Oceanarium::Request.new @sizes_request_get = @request.get("/sizes/") @sizes = @sizes_request_get.parsed_response['sizes'] if @sizes.select { |s| s['id'] == size_id }.empty? 'Error' else @get = @request.get("/droplets/#{id}/resize?size_id=#{size_id}") [@get.parsed_response['status'], @get.parsed_response['event_id']] end end
restore(id, image_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 171 def self.restore(id, image_id) # Restores snapshot of Droplet. Returns OK or Error @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}/restore/?image_id=#{image_id}") [@get.parsed_response['status'], @get.parsed_response['event_id']] end
snapshot(id, name)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 164 def self.snapshot(id, name) # Makes snapshot of Droplet. Returns OK or Error @request = Oceanarium::Request.new @get = @request.get("/droplets/#{id}/snapshot?name=#{name}") [@get.parsed_response['status'], @get.parsed_response['event_id']] end
Public Instance Methods
destroy()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 94 def destroy Oceanarium::Droplet::action(self.id, 'destroy') end
disable_backups()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 86 def disable_backups Oceanarium::Droplet::action(self.id, 'disable_backups') end
enable_backups()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 82 def enable_backups Oceanarium::Droplet::action(self.id, 'enable_backups') end
new(name, size_id, image_id, region_id, ssh_key_ids=nil)
click to toggle source
User API
# File lib/oceanarium/resources/droplet.rb, line 35 def new(name, size_id, image_id, region_id, ssh_key_ids=nil) @new_id = Oceanarium::Droplet.create(name, size_id, image_id, region_id, ssh_key_ids=nil) unless @new_id['status'] == 'ERROR' [Oceanarium::droplet(@new_id['droplet']['id']), @new_id['droplet']['event_id']] end end
password_reset()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 62 def password_reset Oceanarium::Droplet::action(self.id, 'password_reset') end
power_cycle()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 46 def power_cycle Oceanarium::Droplet::action(self.id, 'power_cycle') end
power_off()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 54 def power_off Oceanarium::Droplet::action(self.id, 'power_off') end
power_on()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 58 def power_on Oceanarium::Droplet::action(self.id, 'power_on') end
reboot()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 42 def reboot Oceanarium::Droplet::action(self.id, 'reboot') end
rebuild(image_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 78 def rebuild(image_id) Oceanarium::Droplet.rebuild(self.id, image_id) end
rename(new_name)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 90 def rename(new_name) Oceanarium::Droplet.rename(self.id, new_name) end
resize(size_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 66 def resize(size_id) Oceanarium::Droplet.resize(self.id, size_id) end
restore(image_id)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 74 def restore(image_id) Oceanarium::Droplet.restore(self.id, image_id) end
shutdown()
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 50 def shutdown Oceanarium::Droplet::action(self.id, 'shutdown') end
snapshot(name)
click to toggle source
# File lib/oceanarium/resources/droplet.rb, line 70 def snapshot(name) Oceanarium::Droplet.snapshot(self.id, name) end