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

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

Copyt trusty code

File size: 1.6 KB
Line 
1package Ocsinventory::Agent::Backend::Virtualization::Qemu;
2# With Qemu 0.10.X, some option will be added to get more and easly information (UUID, memory, ...)
3
4use strict;
5
6sub check { return (can_run('qemu') || can_run('kvm') || can_run('qemu-kvm'))}
7
8sub run {
9    my $params = shift;
10    my $common = $params->{common};
11
12    foreach ( `ps -ef` ) {
13        if (m/^.*((qemu|kvm|(qemu-kvm)).*\-([fh]d[a-d]|cdrom).*)$/) {
14            # match only if an qemu instance
15           
16            my $name = "N/A";
17            my $mem = 0;
18            my $uuid;
19            my $vmtype = $2;
20                       
21            my @process = split (/\-/, $1);     #separate options
22           
23            foreach my $option ( @process ) {
24                if ($name eq "N/A" and $option =~ m/^([fh]d[a-d]|cdrom) (\S+)/) {
25                    $name = $2;
26                } elsif ($option =~ m/^name (\S+)/) {
27                    $name = $1;
28                } elsif ($option =~ m/^m (\S+)/) {
29                    $mem = $1;
30                } elsif ($option =~ m/^uuid (\S+)/) {
31                    $uuid = $1;
32                }
33            }
34           
35            if ($mem == 0 ) {
36                # Default value
37                $mem = 128;
38            }
39           
40            $common->addVirtualMachine ({
41                NAME      => $name,
42                UUID      => $uuid,
43                VCPU      => 1,
44                MEMORY    => $mem,
45                STATUS    => "running",
46                SUBSYSTEM => $vmtype,
47                VMTYPE    => $vmtype,
48            });
49        }
50    }
51}
52
531;
Note: See TracBrowser for help on using the repository browser.