Class: Virt::Host
Instance Attribute Summary collapse
Attributes inherited from Connection
#type
Instance Method Summary
collapse
Methods inherited from Connection
#closed?, #disconnect, #host, #secure?, #version
Constructor Details
#initialize ⇒ Host
Returns a new instance of Host.
6
7
8
|
# File 'lib/virt/host.rb', line 6
def initialize
@connection = Virt.connection.connection
end
|
Instance Attribute Details
#connection ⇒ Object
Represents a Physical host which runs the libvirt daemon
5
6
7
|
# File 'lib/virt/host.rb', line 5
def connection
@connection
end
|
Instance Method Details
#defined_guests ⇒ Object
24
25
26
27
28
|
# File 'lib/virt/host.rb', line 24
def defined_guests
connection.list_defined_domains.map do |domain|
find_guest_by_name domain
end
end
|
#find_guest_by_id(id) ⇒ Object
54
55
56
57
58
|
# File 'lib/virt/host.rb', line 54
def find_guest_by_id id
Array(id).map do |did|
return create_guest({:name => connection.lookup_domain_by_id(did).name})
end
end
|
#find_guest_by_name(name) ⇒ Object
48
49
50
51
52
|
# File 'lib/virt/host.rb', line 48
def find_guest_by_name name
if connection.lookup_domain_by_name name
return create_guest({:name => name})
end
end
|
#guests ⇒ Object
14
15
16
|
# File 'lib/virt/host.rb', line 14
def guests
{:running => running_guests, :defined => defined_guests}
end
|
#name ⇒ Object
10
11
12
|
# File 'lib/virt/host.rb', line 10
def name
connection.hostname
end
|
#running_guests ⇒ Object
18
19
20
21
22
|
# File 'lib/virt/host.rb', line 18
def running_guests
connection.list_domains.map do |domain|
find_guest_by_id(domain)
end
end
|
#storage_pool(pool) ⇒ Object
Returns a Virt::Pool object based on the pool name
34
35
36
37
|
# File 'lib/virt/host.rb', line 34
def storage_pool pool
create_pool({:name => pool.is_a?(Libvirt::StoragePool) ? pool.name : pool })
rescue Libvirt::RetrieveError
end
|
#storage_pools ⇒ Object
29
30
31
|
# File 'lib/virt/host.rb', line 29
def storage_pools
connection.list_storage_pools.map {|p| create_pool({:name => p})}
end
|
#volumes ⇒ Object
Returns a hash of pools and their volumes objects.
40
41
42
43
44
45
46
|
# File 'lib/virt/host.rb', line 40
def volumes
pools = {}
storage_pools.each do |storage|
pools[storage.name] = storage.volumes
end
pools
end
|