j’ai modifié le code d’origine avec les infos de @nechry
c’est plus simpe, cela évite de faire la liste des modules puis d’aller chercher chaque infos du module
et aussi de ne traiter que le modules actifs
EDIT 13H55, petite correction de log inutile
//**********************************************************
// Parameters
//**********************************************************
$API_Key = '**************************';
$Ping_Wait = 15;
//**********************************************************
//**********************************************************
// Liste des modules DEAD et ACTIF
//**********************************************************
$scenario->setLog('**********************************************************');
$scenario->setLog('***** Liste des modules DEAD et ACTIF *****');
$scenario->setLog('**********************************************************');
// $scenario->setLog('Module :'.$id);
$url_health = 'http://localhost:8083/network?apikey=' .$API_Key .'&type=info&info=getHealth';
$content = file_get_contents($url_health);
$results = json_decode($content, true);
$success = $results["state"];
if ($success == 'ok') {
$scenario->setLog('***** ACCES OK');
$devices = $results["result"]["devices"];
$node_errors = array();
foreach ($devices as $node_id => $node_values) {
$isFailed = $node_values["data"]["isFailed"]["value"];
$isEnable = $node_values["data"]["is_enable"]["value"];
//$scenario->setLog('DEBUG : Failed : '.$isFailed .' Enable : '.$isEnable);
if ($isFailed & $isEnable) {
$node_name = $node_values["data"]["description"]["name"];
if (count($node_errors) == 0) {
$scenario->setLog('Module :'.$node_id .' '.$node_name.' est en erreur');
$ToPing_List[] = $node_id;
} else {
$scenario->setLog('Module :'.$node_id .' '.$node_name.' est en OK');
}
}
}
} else {
$scenario->setLog('ERREUR API :'.$results["result"]);
}
//**********************************************************
//**********************************************************
// Ping a list of elements
//**********************************************************
$scenario->setLog('**********************************************************');
$scenario->setLog('***** Ping *****');
$scenario->setLog('**********************************************************');
foreach($ToPing_List as $id){
$scenario->setLog('Ping Module :'.$id);
$url_ping = 'http://localhost:8083/node?apikey=' .$API_Key .'&node_id=' .$id .'&type=action&action=testNode';
file_get_contents($url_ping);
sleep($Ping_Wait);
}
//**********************************************************