source: ocsinventory-agent/trunk/fuentes/lib/Ocsinventory/Agent/Backend/Virtualization/Libvirt.pm @ 468

Last change on this file since 468 was 468, checked in by mabarracus, 4 years ago

Copyt trusty code

File size: 1013 bytes
Line 
1package Ocsinventory::Agent::Backend::Virtualization::Libvirt;
2
3use strict;
4
5use XML::Simple;
6
7sub check { can_run('virsh') }
8
9sub run {
10    my $params = shift;
11    my $common = $params->{common};
12
13
14    foreach (`virsh list --all`) {
15        if (/^\s+(\d+|\-)\s+(\S+)\s+(\S.+)/) {
16            my $name = $2;
17            my $status = $3;
18
19            my $status =~ s/^shut off/off/;
20            my $xml = `virsh dumpxml $name`;
21            my $data = XMLin($xml);
22
23            my $vcpu = $data->{vcpu};
24            my $uuid = $data->{uuid};
25            my $vmtype = $data->{type};
26            my $memory = $1 if $data->{currentMemory} =~ /(\d+)\d{3}$/;
27
28            my $machine = {
29
30                MEMORY => $memory,
31                NAME => $name,
32                UUID => $uuid,
33                STATUS => $status,
34                SUBSYSTEM => "libvirt",
35                VMTYPE => $vmtype,
36                VCPU   => $vcpu,
37
38            };
39
40            $common->addVirtualMachine($machine);
41
42        }
43    }
44
45}
46
471;
Note: See TracBrowser for help on using the repository browser.