28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/fog/kubevirt/compute/models/vm_base.rb', line 28
def parse_object(object)
metadata = object[:metadata]
spec = object[:spec][:template][:spec]
domain = spec[:domain]
owner = metadata[:ownerReferences]
annotations = metadata[:annotations]
cpu = domain[:cpu]
mem = domain.dig(:resources, :requests, :memory)
disks = parse_disks(domain[:devices][:disks])
networks = parse_networks(spec[:networks])
vm = {
:namespace => metadata[:namespace],
:name => metadata[:name],
:resource_version => metadata[:resourceVersion],
:uid => metadata[:uid],
:labels => metadata[:labels],
:disks => disks,
:volumes => parse_volumes(spec[:volumes], disks),
:status => object[:spec][:running].to_s == "true" ? "running" : "stopped",
:interfaces => parse_interfaces(domain[:devices][:interfaces], object[:status].nil? ? [] : object[:status][:interfaces], networks),
:networks => networks,
:machine_type => domain.dig(:machine, :type)
}
vm[:owner_reference] = owner unless owner.nil?
vm[:annotations] = annotations unless annotations.nil?
vm[:cpu_cores] = cpu[:cores] unless cpu.nil?
vm[:memory] = mem unless mem.nil?
vm
end
|