reformatted, cleaned
This commit is contained in:
@@ -1,81 +1,39 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
------------------------------------------------------------------------
|
||||
FusionInventory
|
||||
Copyright (C) 2010-2011 by the FusionInventory Development Team.
|
||||
include "../../../inc/includes.php";
|
||||
|
||||
http://www.fusioninventory.org/ http://forge.fusioninventory.org/
|
||||
------------------------------------------------------------------------
|
||||
declare (ticks = 1);
|
||||
|
||||
LICENSE
|
||||
global $DB, $agents;
|
||||
|
||||
This file is part of FusionInventory project.
|
||||
$check_arr = [];
|
||||
$comps = [];
|
||||
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
|
||||
foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) {
|
||||
|
||||
FusionInventory is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
$check = [];
|
||||
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
|
||||
|
||||
FusionInventory 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 Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with FusionInventory. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@package FusionInventory
|
||||
@author Walid Nouh
|
||||
@co-author
|
||||
@copyright Copyright (c) 2010-2011 FusionInventory team
|
||||
@license AGPL License 3.0 or (at your option) any later version
|
||||
http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
@link http://www.fusioninventory.org/
|
||||
@link http://forge.fusioninventory.org/projects/fusioninventory-for-glpi/
|
||||
@since 2010
|
||||
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
include ("../../../inc/includes.php");
|
||||
|
||||
declare(ticks=1);
|
||||
|
||||
|
||||
global $DB,$agents;
|
||||
|
||||
$check_arr = [];
|
||||
$comps = [];
|
||||
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
|
||||
foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) {
|
||||
|
||||
$check = [];
|
||||
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
|
||||
|
||||
$check["url"] = "http://".$a_computerextend["remote_addr"].":62354/status";
|
||||
$check["id"] = $a["id"];
|
||||
$check["computers_id"] = $a["computers_id"];
|
||||
$check["status"] = "unknown";
|
||||
|
||||
$check_arr[] = $check;
|
||||
$comps[$a["computers_id"]] = $check;
|
||||
//print_r($agent->getAgentStatusURLs());
|
||||
}
|
||||
$check["url"] = "http://" . $a_computerextend["remote_addr"] . ":62354/status";
|
||||
$check["id"] = $a["id"];
|
||||
$check["computers_id"] = $a["computers_id"];
|
||||
$check["status"] = "unknown";
|
||||
|
||||
$check_arr[] = $check;
|
||||
$comps[$a["computers_id"]] = $check;
|
||||
//print_r($agent->getAgentStatusURLs());
|
||||
}
|
||||
|
||||
$descriptorspec = array(
|
||||
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
|
||||
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
|
||||
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
|
||||
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
|
||||
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
|
||||
2 => array("file", "/tmp/error-output.txt", "a"), // stderr is a file to write to
|
||||
);
|
||||
|
||||
$cwd = '/tmp';
|
||||
$env = array('debug' => 'false');
|
||||
|
||||
$process = proc_open(__DIR__.'/check_status', $descriptorspec, $pipes, $cwd, $env);
|
||||
$process = proc_open(__DIR__ . '/check_status', $descriptorspec, $pipes, $cwd, $env);
|
||||
|
||||
if (is_resource($process)) {
|
||||
// $pipes now looks like this:
|
||||
@@ -96,7 +54,7 @@ if (is_resource($process)) {
|
||||
echo "command returned $return_value\n";
|
||||
}
|
||||
|
||||
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], [ 'OR' => [ 'name' => 'Online', 'name' => 'Offline']]);
|
||||
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], ['OR' => ['name' => 'Online', 'name' => 'Offline']]);
|
||||
|
||||
$ret = $req->next();
|
||||
$states_ids[$ret['name']] = $ret['id'];
|
||||
@@ -104,27 +62,24 @@ $ret = $req->next();
|
||||
$states_ids[$ret['name']] = $ret['id'];
|
||||
print_r($states_ids);
|
||||
|
||||
|
||||
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $states_ids["Offline"] ] ,
|
||||
[ '1' => '1' ]
|
||||
);
|
||||
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $states_ids["Offline"]],
|
||||
['1' => '1']
|
||||
);
|
||||
|
||||
foreach ($checked as $s) {
|
||||
echo $s->computers_id." ";
|
||||
echo $s->computers_id . " ";
|
||||
|
||||
$comp = new Computer();
|
||||
$comp->getFromDB($s->computers_id);
|
||||
$comp->fields["states_id"] = $states_ids["Online"];
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $comp->fields["states_id"] ],
|
||||
[ 'id' => $s->computers_id ]
|
||||
);
|
||||
echo $comp->fields["contact"]."\n";
|
||||
$comp = new Computer();
|
||||
$comp->getFromDB($s->computers_id);
|
||||
$comp->fields["states_id"] = $states_ids["Online"];
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $comp->fields["states_id"]],
|
||||
['id' => $s->computers_id]
|
||||
);
|
||||
echo $comp->fields["contact"] . "\n";
|
||||
|
||||
}
|
||||
|
||||
// print_r($a_computerextend);
|
||||
// print_r($a_computerextend);
|
||||
exit(0);
|
||||
|
||||
@@ -1,140 +1,141 @@
|
||||
<?php
|
||||
|
||||
if (!defined('GLPI_ROOT')) {
|
||||
die("Sorry. You can't access directly to this file");
|
||||
die("Sorry. You can't access directly to this file");
|
||||
}
|
||||
|
||||
class PluginRemotesupportRemotesupport extends CommonDBTM
|
||||
{
|
||||
public static function showInfo($item)
|
||||
{
|
||||
|
||||
$fi_path = Plugin::getWebDir('fusioninventory');
|
||||
|
||||
class PluginRemotesupportRemotesupport extends CommonDBTM {
|
||||
static function showInfo($item) {
|
||||
// Manage locks pictures
|
||||
PluginFusioninventoryLock::showLockIcon('Computer');
|
||||
|
||||
$fi_path = Plugin::getWebDir('fusioninventory');
|
||||
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
|
||||
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($item->getID());
|
||||
if (empty($a_computerextend)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Manage locks pictures
|
||||
PluginFusioninventoryLock::showLockIcon('Computer');
|
||||
echo '<table class="tab_glpi" width="100%">';
|
||||
echo '<tr>';
|
||||
echo '<th>' . __('Remote Support') . '</th>';
|
||||
echo '</tr>';
|
||||
echo '<tr class="tab_bg_1">';
|
||||
echo '<td>';
|
||||
|
||||
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
|
||||
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($item->getID());
|
||||
if (empty($a_computerextend)) {
|
||||
return true;
|
||||
}
|
||||
$url = "<a target=\"_blank\" href=\"https://" . $_SERVER['SERVER_ADDR'] . "/vnc.html?path=vnc%2F" . $a_computerextend['remote_addr'] . "&autoconnect=true&resize=scale&reconnect=true&show_dot=true\"><li class=\"document\"><i class=\"fa fa-laptop-medical\"></i>" . $a_computerextend['remote_addr'] . "</li></a>";
|
||||
|
||||
echo '<table class="tab_glpi" width="100%">';
|
||||
echo '<tr>';
|
||||
echo '<th>'.__('Remote Support').'</th>';
|
||||
echo '</tr>';
|
||||
echo '<tr class="tab_bg_1">';
|
||||
echo '<td>';
|
||||
|
||||
$url = "<a target=\"_blank\" href=\"https://" . $_SERVER['SERVER_ADDR']. "/vnc.html?path=vnc%2F". $a_computerextend['remote_addr'] ."&autoconnect=true&resize=scale&reconnect=true&show_dot=true\"><li class=\"document\"><i class=\"fa fa-laptop-medical\"></i>" . $a_computerextend['remote_addr'] . "</li></a>";
|
||||
|
||||
if ($url != ""){
|
||||
if ($url != "") {
|
||||
echo "<div><ul class=\"timeline_choices\"><h2>VNC connect : </h2>";
|
||||
echo $url;
|
||||
echo "</ul></div>";
|
||||
}
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
}
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
static function getStatesIds() {
|
||||
global $DB;
|
||||
public static function getStatesIds()
|
||||
{
|
||||
global $DB;
|
||||
|
||||
$states_ids = [];
|
||||
$states_ids = [];
|
||||
|
||||
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], [ 'OR' => [ 'name' => 'Online', 'name' => 'Offline']]);
|
||||
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], ['OR' => ['name' => 'Online', 'name' => 'Offline']]);
|
||||
|
||||
$ret = $req->next();
|
||||
$states_ids[$ret['name']] = $ret['id'];
|
||||
$ret = $req->next();
|
||||
$states_ids[$ret['name']] = $ret['id'];
|
||||
|
||||
return $states_ids;
|
||||
}
|
||||
$ret = $req->next();
|
||||
$states_ids[$ret['name']] = $ret['id'];
|
||||
$ret = $req->next();
|
||||
$states_ids[$ret['name']] = $ret['id'];
|
||||
|
||||
static function cronRemotesupport($task) {
|
||||
global $DB;
|
||||
return $states_ids;
|
||||
}
|
||||
|
||||
Toolbox::logInFile("remotsupport","Starting search of agents\n");
|
||||
public static function cronRemotesupport($task)
|
||||
{
|
||||
global $DB;
|
||||
|
||||
Toolbox::logInFile("remotsupport", "Starting search of agents\n");
|
||||
|
||||
$check_arr = [];
|
||||
$comps = [];
|
||||
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
|
||||
foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) {
|
||||
|
||||
$check = [];
|
||||
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
|
||||
$check = [];
|
||||
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
|
||||
|
||||
$check["url"] = "http://".$a_computerextend["remote_addr"].":62354/status";
|
||||
$check["id"] = $a["id"];
|
||||
$check["computers_id"] = $a["computers_id"];
|
||||
$check["status"] = "unknown";
|
||||
$check["url"] = "http://" . $a_computerextend["remote_addr"] . ":62354/status";
|
||||
$check["id"] = $a["id"];
|
||||
$check["computers_id"] = $a["computers_id"];
|
||||
$check["status"] = "unknown";
|
||||
|
||||
$check_arr[] = $check;
|
||||
$comps[$a["computers_id"]] = $check;
|
||||
//print_r($agent->getAgentStatusURLs());
|
||||
}
|
||||
$check_arr[] = $check;
|
||||
$comps[$a["computers_id"]] = $check;
|
||||
//print_r($agent->getAgentStatusURLs());
|
||||
}
|
||||
|
||||
$descriptorspec = array(
|
||||
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
|
||||
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
|
||||
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
|
||||
);
|
||||
$descriptorspec = array(
|
||||
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
|
||||
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
|
||||
2 => array("file", "/tmp/error-output.txt", "a"), // stderr is a file to write to
|
||||
);
|
||||
|
||||
$cwd = '/tmp';
|
||||
$env = array('debug' => 'false');
|
||||
$cwd = '/tmp';
|
||||
$env = array('debug' => 'false');
|
||||
|
||||
$process = proc_open(__DIR__.'/../bin/check_status', $descriptorspec, $pipes, $cwd, $env);
|
||||
$process = proc_open(__DIR__ . '/../bin/check_status', $descriptorspec, $pipes, $cwd, $env);
|
||||
|
||||
if (is_resource($process)) {
|
||||
// $pipes now looks like this:
|
||||
// 0 => writeable handle connected to child stdin
|
||||
// 1 => readable handle connected to child stdout
|
||||
// Any error output will be appended to /tmp/error-output.txt
|
||||
if (is_resource($process)) {
|
||||
// $pipes now looks like this:
|
||||
// 0 => writeable handle connected to child stdin
|
||||
// 1 => readable handle connected to child stdout
|
||||
// Any error output will be appended to /tmp/error-output.txt
|
||||
|
||||
fwrite($pipes[0], json_encode($check_arr));
|
||||
fclose($pipes[0]);
|
||||
fwrite($pipes[0], json_encode($check_arr));
|
||||
fclose($pipes[0]);
|
||||
|
||||
$checked = json_decode(stream_get_contents($pipes[1]));
|
||||
fclose($pipes[1]);
|
||||
$checked = json_decode(stream_get_contents($pipes[1]));
|
||||
fclose($pipes[1]);
|
||||
|
||||
// It is important that you close any pipes before calling
|
||||
// proc_close in order to avoid a deadlock
|
||||
$return_value = proc_close($process);
|
||||
// It is important that you close any pipes before calling
|
||||
// proc_close in order to avoid a deadlock
|
||||
$return_value = proc_close($process);
|
||||
|
||||
Toolbox::logInFile("remotsupport","command returned $return_value\n");
|
||||
}
|
||||
Toolbox::logInFile("remotsupport", "command returned $return_value\n");
|
||||
}
|
||||
|
||||
$stids = self::getStatesIds();
|
||||
$stids = self::getStatesIds();
|
||||
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $stids["Offline"] ] ,
|
||||
[ '1' => '1' ]
|
||||
);
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $stids["Offline"]],
|
||||
['1' => '1']
|
||||
);
|
||||
|
||||
foreach ($checked as $s) {
|
||||
|
||||
foreach ($checked as $s) {
|
||||
$comp = new Computer();
|
||||
$comp->getFromDB($s->computers_id);
|
||||
$comp->fields["states_id"] = $stids["Online"];
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $comp->fields["states_id"]],
|
||||
['id' => $s->computers_id]
|
||||
);
|
||||
Toolbox::logInFile("remotsupport", $s->computers_id . " " . $comp->fields["contact"] . "\n");
|
||||
|
||||
$comp = new Computer();
|
||||
$comp->getFromDB($s->computers_id);
|
||||
$comp->fields["states_id"] = $stids["Online"];
|
||||
$DB->update("glpi_computers", [
|
||||
'states_id' => $comp->fields["states_id"] ],
|
||||
[ 'id' => $s->computers_id ]
|
||||
);
|
||||
Toolbox::logInFile("remotsupport",$s->computers_id." ".$comp->fields["contact"]."\n");
|
||||
}
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static function cronInfo($name) {
|
||||
return [
|
||||
public static function cronInfo($name)
|
||||
{
|
||||
return [
|
||||
'description' => "Agent search remotesupport"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user