class Fog::Compute::Glesys::Server
Public Instance Methods
destroy(options = {})
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 50 def destroy(options = {}) requires :identity service.destroy(options.merge!({:serverid => identity})) end
ip(ip)
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 126 def ip(ip) Fog::Compute::Glesys::Ips.new(:serverid => identity, :server => self, :service => service).get(ip) end
ips()
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 122 def ips Fog::Compute::Glesys::Ips.new(:serverid => identity, :server => self, :service => service).all end
public_ip_address(options = {})
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 130 def public_ip_address(options = {}) return nil if iplist.nil? type = options[:type] || nil ips = case type when :ipv4 then iplist.select { |ip| ip["version"] == 4 } when :ipv6 then iplist.select { |ip| ip["version"] == 6 } else iplist.sort_by { |ip| ip["version"] } end if ips.empty? nil else ips.first["ipaddress"] end end
ready?()
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 31 def ready? state == 'running' end
reboot()
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 45 def reboot requires :identity service.reboot(:serverid => identity) end
save()
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 55 def save if self.identity options = { :serverid => self.identity, :disksize => disksize, :memorysize => memorysize, :cpucores => cpucores, :hostname => hostname, :bandwidth => bandwidth } data = service.edit(options) else requires :hostname, :rootpassword options = { :datacenter => datacenter || "Falkenberg", :platform => platform || "OpenVz", :hostname => hostname, :templatename => templatename || "Debian 7.0 64-bit", :disksize => disksize || "10", :memorysize => memorysize || "512", :cpucores => cpucores || "1", :rootpassword => rootpassword } # optional options when creating a server: [:description, :ip, :ipv6, :transfer, :bandwidth, :campaigncode, :sshkeyids, :sshkey].each do |k| options[k] = attributes[k] if attributes[k] end data = service.create(options) end merge_attributes(data.body['response']['server']) data.status == 200 ? true : false end
setup(credentials = {})
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 91 def setup(credentials = {}) requires :ssh_ip_address, :username attrs = attributes.dup attrs.delete(:rootpassword) commands = [ %{mkdir -p .ssh}, %{echo "#{Fog::JSON.encode(Fog::JSON.sanitize(attrs))}" >> ~/attributes.json} ] if public_key commands << %{echo "#{public_key}" >> ~/.ssh/authorized_keys} end if credentials[:password].nil? && !rootpassword.nil? credentials[:password] = rootpassword end # wait for glesys to be ready wait_for { sshable?(credentials) } Fog::SSH.new(ssh_ip_address, username, credentials).run(commands) end
ssh(command, options={}, &block)
click to toggle source
Calls superclass method
# File lib/fog/glesys/models/compute/server.rb, line 115 def ssh(command, options={}, &block) if options[:password].nil? && !rootpassword.nil? options[:password] = rootpassword end super(command, options, &block) end
start()
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 35 def start requires :identity service.start(:serverid => identity) end
stop()
click to toggle source
# File lib/fog/glesys/models/compute/server.rb, line 40 def stop requires :identity service.stop(:serverid => identity) end