class Fog::Compute::Clodo::Server
Public Class Methods
new(attributes={})
click to toggle source
Calls superclass method
# File lib/fog/clodo/models/compute/server.rb, line 41 def initialize(attributes={}) self.image_id ||= attributes[:vps_os] ? attributes[:vps_os] : 666 super attributes end
Public Instance Methods
add_ip_address()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 66 def add_ip_address service.add_ip_address(id) end
delete_ip_address(ip_address)
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 74 def delete_ip_address(ip_address) service.delete_ip_address(id, ip_address) end
destroy()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 46 def destroy requires :id service.delete_server(id) true end
image()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 52 def image requires :image_id image_id # API does not support image details request. :-( end
move_ip_address(ip_address)
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 70 def move_ip_address(ip_address) service.move_ip_address(id, ip_address) end
password()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 113 def password vps_root_pass end
private_ip_address()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 57 def private_ip_address nil end
public_ip_address()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 61 def public_ip_address pubaddrs = addresses && addresses['public'] ? addresses['public'].select {|ip| ip['primary_ip']} : nil pubaddrs && !pubaddrs.empty? ? pubaddrs.first['ip'] : nil end
ready?()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 78 def ready? self.state == 'is_running' end
reboot(type = 'SOFT')
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 82 def reboot(type = 'SOFT') requires :id service.reboot_server(id, type) true end
save()
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 88 def save raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted? requires :image_id data = service.create_server(image_id, attributes) merge_attributes(data.body['server']) true end
setup(credentials = {})
click to toggle source
# File lib/fog/clodo/models/compute/server.rb, line 96 def setup(credentials = {}) requires :ssh_ip_address, :identity, :public_key, :username Fog::SSH.new(ssh_ip_address, username, credentials).run([ %{mkdir .ssh}, %{echo "#{public_key}" >> ~/.ssh/authorized_keys}, %{passwd -l #{username}}, %{echo "#{Fog::JSON.encode(attributes)}" >> ~/attributes.json}, ]) rescue Errno::ECONNREFUSED sleep(1) retry end
ssh(commands)
click to toggle source
Calls superclass method
# File lib/fog/clodo/models/compute/server.rb, line 109 def ssh(commands) super(commands, password ? {:password => password} : {}) end