librenms/librenms

View on GitHub
includes/html/pages/device/apps/proxmox.inc.php

Summary

Maintainability
B
6 hrs
Test Coverage
<?php

/*
 * Copyright (C) 2015 Mark Schouten <mark@tuxis.nl>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; version 2 dated June,
 * 1991.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * See https://www.gnu.org/licenses/gpl.txt for the full license
 */

include 'includes/html/application/proxmox.inc.php';

if (! \LibreNMS\Config::get('enable_proxmox')) {
    print_error('Proxmox agent was discovered on this host. Please enable Proxmox in your config.');
} else {
    $graphs = [
        'proxmox_traffic' => 'Traffic',
    ];

    foreach (proxmox_node_vms(var_get('device')) as $nvm) {
        $vm = proxmox_vm_info($nvm['vmid'], $nvm['cluster']);

        foreach ($vm['ports'] as $port) {
            foreach ($graphs as $key => $text) {
                $graph_type = 'proxmox_traffic';

                $graph_array['height'] = '100';
                $graph_array['width'] = '215';
                $graph_array['to'] = \LibreNMS\Config::get('time.now');
                $graph_array['id'] = $vm['app_id'];
                $graph_array['device_id'] = $vm['device_id'];
                $graph_array['type'] = 'application_' . $key;
                $graph_array['port'] = $port['port'];
                $graph_array['vmid'] = $vm['vmid'];
                $graph_array['cluster'] = $vm['cluster'];
                $graph_array['hostname'] = $vm['description'];

                echo '<h3>' . $text . ' ' . $port['port'] . '@' . $vm['description'] . '</h3>';

                echo "<tr bgcolor='$row_colour'><td colspan=5>";

                include 'includes/html/print-graphrow.inc.php';

                echo '</td></tr>';
            }
        }
    }
}