Class: Knj::Kvm
Overview
This class and subclasses holds various functionality to view status for Kvm-instances.
Defined Under Namespace
Classes: Machine
Class Method Summary collapse
-
.list ⇒ Object
Lists all running Kvm-instances on this machine.
Class Method Details
.list ⇒ Object
Lists all running Kvm-instances on this machine.
Examples
Knj::Kvm.list do |kvm|
print kvm.pid
end
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/knj/kvm.rb', line 8 def self.list list = [] Knj::Unix_proc.list("grep" => "kvm") do |proc_obj| next if !proc_obj["cmd"].match(/^\/usr\/bin\/kvm\s+/) args = { :pid => proc_obj["pid"] } if mac_match = proc_obj["cmd"].match(/mac=(.+?)(,|\s+|$)/) args[:mac] = mac_match[1] end if name_match = proc_obj["cmd"].match(/\-name\s+(.+?)(,|\s+|$)/) args[:name] = name_match[1] end if args.length > 0 and args[:name].to_s.length > 0 machine = Knj::Kvm::Machine.new(args) if block_given? yield(machine) else list << machine end end end if block_given? return nil else return list end end |