1
0
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:
Philip Rosenberg-Watt
2017-04-06 03:24:36 -06:00
committed by Daniel Preussker
parent a7fe1f8e6f
commit 67bae5a86c

View File

@@ -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;
} }