Skip to content
Snippets Groups Projects
Commit efc4efb5 authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

admin interface working again

parent 0d504944
No related branches found
No related tags found
2 merge requests!1502Development,!1500Resolve "Fix Admin Interface"
......@@ -87,8 +87,48 @@ class AdminInterface extends Controller
return $names;
}
private function convertLogs()
{
$oldLogsPath = \storage_path("logs/metager/old/");
$dir = new \DirectoryIterator($oldLogsPath);
foreach ($dir as $fileinfo) {
if ($fileinfo->isDot()) {
continue;
}
$filename = $oldLogsPath . "/" . $fileinfo->getFilename();
$daysAgo = substr($fileinfo->getFilename(), strrpos($fileinfo->getFilename(), ".") + 1);
$dateOfFile = Carbon::now()->subDays($daysAgo);
$outputFile = \storage_path("logs/metager/" . $dateOfFile->format("Y/m/d") . ".log");
if (!file_exists(dirname($outputFile))) {
\mkdir(dirname($outputFile), 0777, true);
}
$fhw = fopen($outputFile, "w");
$fhr = fopen($filename, "r");
try {
$first = true;
while (($line = fgets($fhr)) != false) {
$date = trim(substr($line, 0, strpos($line, "]")), "[");
$date = trim(substr($date, strrpos($date, " ")));
$rest = trim(substr($line, strpos($line, "]") + 1));
$outputString = "";
if (!$first) {
$outputString .= PHP_EOL;
}
$outputString .= $date . " " . $rest;
$first = false;
fwrite($fhw, $outputString);
}
} finally {
fclose($fhw);
fclose($fhr);
}
}
}
public function count(Request $request)
{
#$this->convertLogs();
#return;
$days = intval($request->input('days', 28));
$interface = $request->input('interface', 'all');
if (!is_int($days) || $days <= 0) {
......@@ -98,6 +138,7 @@ class AdminInterface extends Controller
$oldLogs = [];
$rekordTag = 0;
$rekordTagSameTime = 0;
$minCount = 0;
$rekordTagDate = "";
$size = 0;
......@@ -249,14 +290,14 @@ class AdminInterface extends Controller
$days = $maxDate->diffInDays(Carbon::now());
}
$logToday = "/var/log/metager/mg3.log";
$logToday = \App\MetaGer::getMGLogFile();
$archivePath = "/var/log/metager/archive/";
$archivePath = storage_path("logs/metager/");
$today = [
'logFile' => $logToday,
'countPath' => storage_path('logs/count/'),
'countFile' => storage_path('logs/count/' . getmypid()),
'countPath' => storage_path('logs/metager/count/'),
'countFile' => storage_path('logs/metager/count/' . getmypid()),
];
if (\file_exists($today["countFile"])) {
unlink($today["countFile"]);
......@@ -271,10 +312,10 @@ class AdminInterface extends Controller
$requestedLogs = [];
for ($i = 1; $i <= $days; $i++) {
$date = Carbon::now()->subDays($i);
$countPath = storage_path('logs/count/' . $date->year . "/" . $date->month . "/");
$countPath = storage_path('logs/metager/count/' . $date->format("Y/m") . "/");
$countFile = $countPath . $date->day . ".json";
$neededLogs[$i] = [
'logFile' => $archivePath . "mg3.log.$i",
'logFile' => $archivePath . $date->format("Y/m/d") . ".log",
'countPath' => $countPath,
'countFile' => $countFile,
];
......
......@@ -39,6 +39,7 @@ class ConvertCountFile implements ShouldQueue
];
$fh = false;
$fullRound = false;
$error = false;
try {
$fh = fopen($this->files["logFile"], "r");
$currentLogTime = Carbon::now()->hour(0)->minute(0)->second(0)->addMinutes(5);
......@@ -47,7 +48,7 @@ class ConvertCountFile implements ShouldQueue
$logTime = [];
$interface = "";
// i.e. [Wed Apr 17 00:00:01] ref=https://metager.de/ time=0.51 serv=web interface=de
if (preg_match('/\[[a-zA-z]{3}\s[a-zA-Z]{3}\s\d{2}\s(\d{2}:\d{2}:\d{2}).*?\sinterface=(\S+)/', $line, $matches)) {
if (preg_match('/(\d{2}:\d{2}:\d{2}).*?\sinterface=(\S+)/', $line, $matches)) {
// Create Date Object
$logTime = explode(":", $matches[1]);
$interface = $matches[2];
......@@ -84,18 +85,22 @@ class ConvertCountFile implements ShouldQueue
if (empty($result["time"][$currentLogTime->format('H:i')])) {
$result["time"][$currentLogTime->format('H:i')] = $result["insgesamt"];
}
} catch (\ErrorException $e) {
$error = true;
} finally {
if ($fh !== false) {
fclose($fh);
}
$oldUmask = umask(0);
// Write the result to a File
if (!file_exists($this->files["countPath"])) {
mkdir($this->files["countPath"], 0777, true);
if (!$error) {
$oldUmask = umask(0);
// Write the result to a File
if (!file_exists($this->files["countPath"])) {
mkdir($this->files["countPath"], 0777, true);
}
file_put_contents($this->files["countFile"], json_encode($result, JSON_PRETTY_PRINT));
umask($oldUmask);
}
file_put_contents($this->files["countFile"], json_encode($result, JSON_PRETTY_PRINT));
umask($oldUmask);
Redis::del(md5($this->files["countFile"]));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment