App-cryp-mn

 view release on metacpan or  search on metacpan

lib/App/cryp/Masternode/bulwark.pm  view on Meta::CPAN

                alarm $ssh_timeout;

                my $ssh_cmd = $ssh_user eq $mn_user ?
                    "bulwark-cli listmasternodes" :
                    "su $mn_user -c ".shell_quote("bulwark-cli listmasternodes");

                my $output;
                system({log=>1, shell=>0, capture_stdout=>\$output},
                       "ssh", "-l", $ssh_user, $rec->{ip}, $ssh_cmd);

                my $output_decoded;
                eval { $output_decoded = JSON::MaybeXS->new->decode($output) };
                if ($@) {
                    log_error "Can't decode JSON output '$output', skipped";
                    last CHECK_STATUS;
                }

                my %mns;
                for (@$output_decoded) {
                    my $key = "$_->{txhash} $_->{outidx}";
                    $mns{$key} = $_;
                }

                for my $rec (@res) {
                    my $key = "$rec->{collateral_txid} $rec->{collateral_oidx}";
                    if (exists $mns{$key}) {
                        $rec->{status} = $mns{$key}{status};
                        $rec->{last_seen} = $mns{$key}{lastseen};
                        $rec->{active_time} = $mns{$key}{activetime};

lib/App/cryp/Masternode/zcoin.pm  view on Meta::CPAN

                alarm $ssh_timeout;

                my $ssh_cmd = $ssh_user eq $mn_user ?
                    "zcoin-cli znode list" :
                    "su $mn_user -c ".shell_quote("zcoin-cli znode list");

                my $output;
                system({log=>1, shell=>0, capture_stdout=>\$output},
                       "ssh", "-l", $ssh_user, $rec->{ip}, $ssh_cmd);

                my $output_decoded;
                eval { $output_decoded = JSON::MaybeXS->new->decode($output) };
                if ($@) {
                    log_error "Can't decode JSON output '$output', skipped";
                    last CHECK_STATUS;
                }

                for my $rec (@res) {
                    my $key = "COutPoint($rec->{collateral_txid}, $rec->{collateral_oidx})";
                    if (exists $output_decoded->{$key}) {
                        $rec->{status} = $output_decoded->{$key};
                    } else {
                        $rec->{status} = "(not found)";
                    }
                }
            };
            if ($@) {
                log_error "SSH timeout: $@, skipped";
                last;
            }
        } # CHECK_STATUS



( run in 0.487 second using v1.01-cache-2.11-cpan-49f99fa48dc )