class Knj::Kvm
This class and subclasses holds various functionality to view status for Kvm-instances.
Public Class Methods
list() { |machine| ... }
click to toggle source
Lists all running Kvm-instances on this machine.
Examples¶ ↑
Knj::Kvm.list do |kvm| print kvm.pid end
# 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