Class: Knj::Kvm

Inherits:
Object show all
Defined in:
lib/knj/kvm.rb

Overview

This class and subclasses holds various functionality to view status for Kvm-instances.

Defined Under Namespace

Classes: Machine

Class Method Summary collapse

Class Method Details

.listObject

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