Class: Fog::Scaleway::Compute::Servers

Inherits:
Collection
  • Object
show all
Defined in:
lib/fog/scaleway/models/compute/servers.rb

Instance Method Summary collapse

Instance Method Details

#allObject



7
8
9
10
# File 'lib/fog/scaleway/models/compute/servers.rb', line 7

def all
  servers = service.list_servers.body['servers'] || []
  load(servers)
end

#bootstrap(new_attributes = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/fog/scaleway/models/compute/servers.rb', line 20

def bootstrap(new_attributes = {})
  require 'securerandom'
  name = "scw-#{SecureRandom.hex(3)}"

  public_ip = new_attributes[:public_ip]

  public_ip = service.ips.create(new_attributes) if public_ip.nil?

  defaults = {
    name: name,
    image: '75c28f52-6c64-40fc-bb31-f53ca9d02de9',
    dynamic_ip_required: false,
    public_ip: public_ip
  }

  server = create(defaults.merge(new_attributes))

  server.poweron(false)

  server.wait_for { sshable? }

  server
end

#get(identity) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/fog/scaleway/models/compute/servers.rb', line 12

def get(identity)
  if (server = service.get_server(identity).body['server'])
    new(server)
  end
rescue Fog::Scaleway::Compute::UnknownResource
  nil
end