Module: Lab::Controllers::RemoteEsxController

Included in:
VmController
Defined in:
lib/lab/controller/remote_esx_controller.rb

Constant Summary collapse

VIM_CMD =

Note that 3.5 was different (vmware-vim-cmd)

'vim-cmd'.freeze

Class Method Summary collapse

Class Method Details

.dir_list(basepath = nil) ⇒ Object



11
12
13
14
# File 'lib/lab/controller/remote_esx_controller.rb', line 11

def self.dir_list(basepath=nil)
	# Does this method really even make sense for esx?
	return "Unsupported :("
end

.running_list(user, host) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/lab/controller/remote_esx_controller.rb', line 16

def self.running_list(user, host)
	user.gsub!(/(\W)*/, '')
	host.gsub!(/(\W)*/, '')

	# first get all registered vms
	registered_vms = self.get_vms(user, host) || []
	running_vms = []

	# now let's see which ones are running
	# TODO:  this is ghetto, would be better not to connect repeatedly
	registered_vms.each do |vm|
		remote_cmd = "ssh #{user}@#{host} \"#{VIM_CMD} vmsvc/power.getstate #{vm[:id]}\""
		raw = `#{remote_cmd}`
		running_vms << vm if raw =~ /Powered on/			
	end

	return running_vms
end