public function filterInternalMonitors($api, $int, $server_id) { $adentId = $api['agentId']; $monitors = array(); $drivers = null; $intMonitors = array('cpu' => null, 'memory' => null, 'drives' => null); if (isset($api['cpu']) && count($api['cpu']) > 0 && isset($api['cpu']['id'])) { $intMonitors['cpu'] = $api['cpu']; $monitorId = $api['cpu']['id']; $index = MonitisHelper::in_array_index($int, 'monitor_id', $monitorId); if ($index > -1) { $monitors[] = $int[$index]; $int[$index]['api'] = 1; } else { $monitors[] = monitisSnapShots::linkInternalMonitor($monitorId, 'cpu', $adentId, $server_id); } } if (isset($api['memory']) && count($api['memory']) > 0 && isset($api['memory']['id'])) { $monitorId = $api['memory']['id']; $index = MonitisHelper::in_array_index($int, 'monitor_id', $monitorId); if ($index > -1) { $monitors[] = $int[$index]; $int[$index]['api'] = 1; } else { $monitors[] = monitisSnapShots::linkInternalMonitor($monitorId, 'memory', $adentId, $server_id); } } $drvrs = array(); if (isset($api['drives']) && count($api['drives']) > 0) { $drivers = $api['drives']; //$intMonitors['drives'] = array(); for ($i = 0; $i < count($drivers); $i++) { // monitor exist if (isset($drivers[$i]['id'])) { $monitorId = $drivers[$i]['id']; // is linked $index = MonitisHelper::in_array_index($int, 'monitor_id', $monitorId); if ($index > -1) { $monitors[] = $int[$index]; $int[$index]['api'] = 1; } else { $monitors[] = monitisSnapShots::linkInternalMonitor($monitorId, 'drive', $adentId, $server_id); } } else { $monitors[] = null; } } } // remove api deleted monitors for ($i = 0; $i < count($int); $i++) { if (!isset($int[$i]['api'])) { monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_INTERNAL_TABLE . ' WHERE monitor_id=' . $int[$i]['monitor_id']); } } return $monitors; }