Class: Pec::Compute::Server

Inherits:
Object
  • Object
show all
Includes:
Query
Defined in:
lib/pec/compute/server.rb

Instance Method Summary collapse

Methods included from Query

#fetch, #get_adapter, #get_ref, #list

Instance Method Details

#create(name, image_ref, flavor_ref, ports, options) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/pec/compute/server.rb', line 6

def create(name, image_ref, flavor_ref, ports, options)
  networks = ports.map do |port|
    raise(Pec::Errors::Port, "port-id:#{port.id} ip-addr:#{port.ip_address} in used") if port.used?
    puts "#{name}: assingn ip #{port.ip_address}"
    { port_id: port.id }
  end if ports

  options.merge!({ 'nics' =>  networks })

  response = Fog::Compute[:openstack].create_server(name, image_ref, flavor_ref, options)

  if response[:status] == 202
    puts "success create for server_name:#{name}"
  end

  response.data[:body]["server"]["id"]
end

#destroy!(server_name) ⇒ Object

Raises:



28
29
30
31
32
33
34
35
36
# File 'lib/pec/compute/server.rb', line 28

def destroy!(server_name)
  server = fetch(server_name)
  raise(Pec::Errors::Host, "server_name:#{server_name} is not fond!") unless server
  response = Fog::Compute[:openstack].delete_server(server["id"]) if server

  if response && response[:status] == 204
    puts "server_name:#{server_name} is deleted!"
  end
end

#exists?(server_name) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/pec/compute/server.rb', line 24

def exists?(server_name)
  fetch(server_name)
end