Heray-Was-Here
Server : Apache
System : Linux vps103298.mylogin.co 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User : calvet ( 273824)
PHP Version : 7.4.33
Disable Function : NONE
Directory :  /proc/self/root/usr/share/perl5/vendor_perl/Ocsinventory/Agent/Backend/Virtualization/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/usr/share/perl5/vendor_perl/Ocsinventory/Agent/Backend/Virtualization/Docker.pm
package Ocsinventory::Agent::Backend::Virtualization::Docker;

use strict;

sub check { 
    my $params = shift;
    my $common = $params->{common};

    return unless $common->can_run("docker");
}

my @image;

sub run {
    my $params = shift;
    my $common = $params->{common};
 
    foreach my $cont (`docker ps 2>/dev/null`) {
        next if ($cont =~ /^CONTAINER ID/);
        my $container_id=$1 if ($cont =~ /^(\w+)/i);
        push @image, $container_id;
    }

    foreach my $c (@image) {
        my $tab=`docker inspect $c`;
        my $memory=$1 if ($tab =~ /\s+"Memory":\s(\d+),/);
        my $name=$1 if ($tab =~ /\s+"Hostname":\s"(\w+)",/);
        my $status=$1 if ($tab =~ /\s+"Status":\s"(\w+)",/);
        my $vcpu=$1 if ($tab =~ /\s+"CpuShares":\s(\d+),/); 
        my $vmid=$1 if ($tab =~ /\s+"Id":\s"(\w+)",/);
        my $ipaddr=$1 if ($tab =~ /\s+"IPAddress":\s"(.*)"/);
        my $macaddr=$1 if ($tab =~ /\s+"MacAddress":\s"(.*)"/);
        my $gateway=$1 if ($tab =~ /\s+"Gateway":\s"(.*)"/);
        $common->addVirtualMachine({
            CPUSHARES => $vcpu,
            GATEWAY => $gateway,
            IPADDR => $ipaddr,
            MACADDR => $macaddr,
            MEMORY => $memory,
            NAME => $name,
            STATUS => $status,
            SUBSYSTEM => "Docker Container",
            VMID => $vmid,
            VTYPE => "Docker",
        });
    }
}

1;

Hry