#!# perl: code/sysinfo
use strict;
use warnings;

use MYDan::Agent::Client;

return sub
{
    my ( %param, %mesg ) = @_;
    my ( $test, $node ) = @param{qw( test node )};
    my $o = MYDan::Util::OptConf->load()->dump( 'agent' );

    my %query = ( code => 'sysinfo', argv => +{ test =>  $test }, map{ $_ => 'root' }qw( user sudo ) );
    my %result = MYDan::Agent::Client->new( 
        @$node
    )->run( %$o, query => \%query ); 

    for my $n ( keys %result )
    {
        if( $result{$n} =~ s/--- 0\n$// )
        {
            my $c = eval{ YAML::XS::Load $result{$n} };
            if( $@ )
            {
                $mesg{"$n###sys###get_sysinfo_err"} ++;
                next;
            }
            map{ $mesg{"$n###$_"} = $c->{$_}; }keys %$c;
        }
        else
        {
            $mesg{"$n###sys###get_sysinfo_err"} ++;
        }
    }

    return %mesg;
};
