mirror of
https://github.com/librenms/librenms-agent.git
synced 2024-05-09 09:54:52 +00:00
fix: Update proxmox agent to use new Perl module (#88)
PVE::API2Client is deprecated in Proxmox 4.4-6. Agent now requires installation of libpve-apiclient-perl via apt. This commit fixes #81.
This commit is contained in:
committed by
Daniel Preussker
parent
a7fe1f8e6f
commit
67bae5a86c
@@ -19,7 +19,7 @@ use constant {
|
|||||||
};
|
};
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use PVE::API2Client;
|
use PVE::APIClient::LWP;
|
||||||
use PVE::AccessControl;
|
use PVE::AccessControl;
|
||||||
use PVE::INotify;
|
use PVE::INotify;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
@@ -29,14 +29,14 @@ my $hostname = PVE::INotify::read_file("hostname");
|
|||||||
my $ticket = PVE::AccessControl::assemble_ticket('root@pam');
|
my $ticket = PVE::AccessControl::assemble_ticket('root@pam');
|
||||||
my $csrftoken = PVE::AccessControl::assemble_csrf_prevention_token('root@pam');
|
my $csrftoken = PVE::AccessControl::assemble_csrf_prevention_token('root@pam');
|
||||||
|
|
||||||
my $conn = PVE::API2Client->new(
|
my $conn = PVE::APIClient::LWP->new(
|
||||||
ticket => $ticket,
|
ticket => $ticket,
|
||||||
csrftoken => $csrftoken,
|
csrftoken => $csrftoken,
|
||||||
);
|
);
|
||||||
|
|
||||||
my $clustername;
|
my $clustername;
|
||||||
|
|
||||||
foreach my $child (@{$conn->get("/api2/json/cluster/status")->{'data'}}) {
|
foreach my $child (@{$conn->get("/api2/json/cluster/status")}) {
|
||||||
if ($child->{'type'} eq "cluster") {
|
if ($child->{'type'} eq "cluster") {
|
||||||
$clustername = $child->{'name'};
|
$clustername = $child->{'name'};
|
||||||
}
|
}
|
||||||
@@ -50,19 +50,19 @@ print "<<<app-proxmox>>>\n";
|
|||||||
|
|
||||||
print "$clustername\n";
|
print "$clustername\n";
|
||||||
|
|
||||||
foreach my $vm (@{$conn->get("/api2/json/nodes/$hostname/netstat")->{'data'}}) {
|
foreach my $vm (@{$conn->get("/api2/json/nodes/$hostname/netstat")}) {
|
||||||
my $vmid = $vm->{'vmid'};
|
my $vmid = $vm->{'vmid'};
|
||||||
eval {
|
eval {
|
||||||
my $vmname = $conn->get("/api2/json/nodes/$hostname/qemu/$vmid/config")->{'data'}->{'name'};
|
my $vmname = $conn->get("/api2/json/nodes/$hostname/qemu/$vmid/config")->{'name'};
|
||||||
my $tmpl = $conn->get("/api2/json/nodes/$hostname/qemu/$vmid/config")->{'data'}->{'template'};
|
my $tmpl = $conn->get("/api2/json/nodes/$hostname/qemu/$vmid/config")->{'template'};
|
||||||
if (defined($tmpl) && $tmpl == 1) {
|
if (defined($tmpl) && $tmpl == 1) {
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
print "$vmid/$vm->{'dev'}/$vm->{'in'}/$vm->{'out'}/$vmname\n";
|
print "$vmid/$vm->{'dev'}/$vm->{'in'}/$vm->{'out'}/$vmname\n";
|
||||||
};
|
};
|
||||||
eval {
|
eval {
|
||||||
my $vmname = $conn->get("/api2/json/nodes/$hostname/lxc/$vmid/config")->{'data'}->{'hostname'};
|
my $vmname = $conn->get("/api2/json/nodes/$hostname/lxc/$vmid/config")->{'hostname'};
|
||||||
my $tmpl = $conn->get("/api2/json/nodes/$hostname/lxc/$vmid/config")->{'data'}->{'template'};
|
my $tmpl = $conn->get("/api2/json/nodes/$hostname/lxc/$vmid/config")->{'template'};
|
||||||
if (defined($tmpl) && $tmpl == 1) {
|
if (defined($tmpl) && $tmpl == 1) {
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user