Class: Kitchen::Driver::Cloud

Inherits:
Object
  • Object
show all
Defined in:
lib/kitchen/driver/cloud.rb

Class Method Summary collapse

Class Method Details

.compute(config) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/kitchen/driver/cloud.rb', line 7

def self.compute(config)
	server_def = { provider: 'Rackspace' }
	opts = [:version, :rackspace_username, :rackspace_api_key, :rackspace_region]
	opts.each do |opt|
		server_def[opt] = config[opt]
	end
	Fog::Compute.new(server_def)
end

.create_server(instance, config) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/kitchen/driver/cloud.rb', line 24

def self.create_server(instance, config)
	server_def = {
		name: generate_name(instance),
		config_drive: true,
		user_data: File.read(config[:user_data])
	}
	[:image_id, :flavor_id].each do |opt|
		server_def[opt] = config[opt]
	end
	server_def[:no_passwd_lock] = true
	server = compute(config).servers.new(server_def)
	server.save
	server
end

.delete_server(instance, config, state) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/kitchen/driver/cloud.rb', line 16

def self.delete_server(instance, config, state)
  server = compute(config).servers.get(state[:server_id])
				server.destroy unless server.nil?
  state.delete(:server_id)
  state.delete(:hostname)
  state
end