Merged policies conf fixer tool
This commit is contained in:
parent
47633b4794
commit
ddbb06a967
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/../include/config.php';
|
||||
require_once __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
if (file_exists(__DIR__.'/../'.ENTERPRISE_DIR.'/load_enterprise.php') === true) {
|
||||
include_once __DIR__.'/../'.ENTERPRISE_DIR.'/load_enterprise.php';
|
||||
}
|
||||
|
||||
if (isset($_SERVER['argc']) === false) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
global $config;
|
||||
|
||||
use PandoraFMS\Agent;
|
||||
|
||||
$ids = \db_get_all_rows_filter('tagente', [], ['id_agente']);
|
||||
if ($ids === false) {
|
||||
echo "Unable to find agents\n";
|
||||
$ids = [];
|
||||
}
|
||||
|
||||
$policies = \db_get_all_rows_filter('tpolicies', [], 'id,name');
|
||||
$policies = array_reduce(
|
||||
$policies,
|
||||
function ($carry, $item) {
|
||||
$carry[$item['name']] = $item['id'];
|
||||
return $carry;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
foreach ($ids as $a) {
|
||||
try {
|
||||
$agent = new Agent($a['id_agente']);
|
||||
if ($agent->hasRemoteCapabilities() === true) {
|
||||
$agent_policies = $agent->getConfPolicies();
|
||||
|
||||
$oldIds = [];
|
||||
$newIds = [];
|
||||
foreach ($agent_policies as $oldId => $name) {
|
||||
$oldIds[] = $oldId;
|
||||
$newIds[] = $policies[io_safe_input($name)];
|
||||
}
|
||||
|
||||
$res_update_con_policy = $agent->updatePolicyIds(
|
||||
$oldIds,
|
||||
$newIds
|
||||
);
|
||||
if ($res_update_con_policy === false) {
|
||||
echo 'Failed ['.$agent->name()."]\n";
|
||||
} else {
|
||||
echo 'Agent '.io_safe_output($agent->alias())." updated successfully\n";
|
||||
}
|
||||
} else {
|
||||
echo 'Agent '.io_safe_output($agent->alias())." skipped\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo $e->getMessage()."\n";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue