Logs eingerichtet
This commit is contained in:
@@ -14,9 +14,12 @@ namespace Watcher.Controllers
|
||||
[Authorize]
|
||||
public class DatabaseController : Controller
|
||||
{
|
||||
// Backup Infos
|
||||
private readonly string _dbPath = Path.Combine(Directory.GetCurrentDirectory(), "persistence", "watcher.db");
|
||||
private readonly string _backupFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "downloads", "sqlite");
|
||||
|
||||
// Services
|
||||
private readonly ILogger<DatabaseController> _logger;
|
||||
|
||||
public class DumpFileInfo
|
||||
{
|
||||
@@ -26,13 +29,23 @@ namespace Watcher.Controllers
|
||||
}
|
||||
|
||||
|
||||
public DatabaseController(IWebHostEnvironment env)
|
||||
public DatabaseController(IWebHostEnvironment env, ILogger<DatabaseController> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
|
||||
_backupFolder = Path.Combine(env.WebRootPath, "downloads", "sqlite");
|
||||
|
||||
if (!Directory.Exists(_backupFolder))
|
||||
{
|
||||
_logger.LogInformation("Backup-Directory neu erstellt");
|
||||
Directory.CreateDirectory(_backupFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("Backup-Directory existiert bereits");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[HttpPost("/maintenance/sqlite-dump")]
|
||||
public IActionResult CreateSqlDump()
|
||||
|
@@ -11,10 +11,21 @@ namespace Watcher.Controllers;
|
||||
[Authorize]
|
||||
public class DownloadController : Controller
|
||||
{
|
||||
// Logging einbinden
|
||||
private readonly ILogger<AuthController> _logger;
|
||||
|
||||
public DownloadController(ILogger<AuthController> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
// Allgemeiner Download von Dateien
|
||||
[Authorize]
|
||||
[HttpGet("Download/File/{type}/{filename}")]
|
||||
public IActionResult FileDownload(string type, string filename)
|
||||
{
|
||||
// Nur erlaubte Endungen zulassen (Sicherheit!)
|
||||
// TODO: aktuelles "" für Binaries ist das absolute Gegenteil von sicher, ich hab aber keine bessere Idee
|
||||
var allowedExtensions = new[] { ".exe", "", ".sql" };
|
||||
var extension = Path.GetExtension(filename).ToLowerInvariant();
|
||||
|
||||
@@ -24,13 +35,17 @@ public class DownloadController : Controller
|
||||
var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "downloads", type, filename);
|
||||
|
||||
if (!System.IO.File.Exists(path))
|
||||
{
|
||||
_logger.LogError("Download fehlgeschlagen: Datei nicht gefunden ({path})", path);
|
||||
return NotFound("Datei nicht gefunden");
|
||||
}
|
||||
|
||||
// .exe MIME-Typ: application/octet-stream
|
||||
var mimeType = "application/octet-stream";
|
||||
|
||||
var fileBytes = System.IO.File.ReadAllBytes(path);
|
||||
|
||||
_logger.LogTrace("Download ausgeführt: {filename}", filename);
|
||||
return File(fileBytes, mimeType, filename);
|
||||
//return File(fileBytes, filename);
|
||||
}
|
||||
|
@@ -51,17 +51,23 @@ public class MetricDto
|
||||
// Disks?
|
||||
}
|
||||
|
||||
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
public class MonitoringController : Controller
|
||||
{
|
||||
private readonly AppDbContext _context;
|
||||
|
||||
public MonitoringController(AppDbContext context)
|
||||
private readonly ILogger<MonitoringController> _logger;
|
||||
|
||||
public MonitoringController(AppDbContext context, ILogger<MonitoringController> logger)
|
||||
{
|
||||
_context = context;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
|
||||
// Endpoint, an dem sich neue Agents registrieren
|
||||
[HttpPost("register")]
|
||||
public async Task<IActionResult> Register([FromBody] RegistrationDto dto)
|
||||
{
|
||||
@@ -73,6 +79,7 @@ public class MonitoringController : Controller
|
||||
.Select(e => e.ErrorMessage)
|
||||
.ToList();
|
||||
|
||||
_logger.LogError("Fehlerhafter Registrierungs-Payload.");
|
||||
return BadRequest(new { error = "Ungültiger Payload", details = errors });
|
||||
}
|
||||
|
||||
@@ -92,13 +99,17 @@ public class MonitoringController : Controller
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
// Success
|
||||
_logger.LogInformation("Agent für '{server}' erfolgreich registriert.", server.Name);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
_logger.LogError("Kein Server für Registrierung gefunden");
|
||||
return NotFound("No Matching Server found.");
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Enpoint, an den Agents Ihre gesammelten Daten senden
|
||||
[HttpPost("metric")]
|
||||
public async Task<IActionResult> Receive([FromBody] MetricDto dto)
|
||||
{
|
||||
@@ -110,6 +121,7 @@ public class MonitoringController : Controller
|
||||
.Select(e => e.ErrorMessage)
|
||||
.ToList();
|
||||
|
||||
_logger.LogError("Ungültiger Monitoring-Payload.");
|
||||
return BadRequest(new { error = "Ungültiger Payload", details = errors });
|
||||
}
|
||||
|
||||
@@ -119,12 +131,14 @@ public class MonitoringController : Controller
|
||||
|
||||
if (server != null)
|
||||
{
|
||||
// Serverdaten in Datenbank eintragen
|
||||
// TODO: Serverdaten in Datenbank eintragen
|
||||
|
||||
// Success
|
||||
_logger.LogInformation("Monitoring-Daten für '{server}' empfangen", server.Name);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
_logger.LogError("Kein Server für eingegangenen Monitoring-Payload gefunden");
|
||||
return NotFound("No Matching Server found.");
|
||||
|
||||
}
|
||||
|
@@ -11,9 +11,12 @@ public class ServerController : Controller
|
||||
{
|
||||
private readonly AppDbContext _context;
|
||||
|
||||
public ServerController(AppDbContext context)
|
||||
private readonly ILogger<ServerController> _logger;
|
||||
|
||||
public ServerController(AppDbContext context, ILogger<ServerController> logger)
|
||||
{
|
||||
_context = context;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task<IActionResult> Overview()
|
||||
@@ -49,6 +52,8 @@ public class ServerController : Controller
|
||||
_context.Servers.Add(server);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
_logger.LogInformation("Neuer Server erstellt: {server}", server.Name);
|
||||
|
||||
return RedirectToAction(nameof(Overview));
|
||||
}
|
||||
|
||||
@@ -59,11 +64,15 @@ public class ServerController : Controller
|
||||
var server = await _context.Servers.FindAsync(id);
|
||||
if (server == null)
|
||||
{
|
||||
_logger.LogError("Server nicht gefunden");
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
_context.Servers.Remove(server);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
_logger.LogInformation("Server '{server}' erfolgreich gelöscht", server.Name);
|
||||
|
||||
return RedirectToAction(nameof(Overview));
|
||||
}
|
||||
|
||||
@@ -98,6 +107,9 @@ public class ServerController : Controller
|
||||
server.Type = vm.Type;
|
||||
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
_logger.LogInformation("Server '{server}' erfolgreich aktualisiert", server.Name);
|
||||
|
||||
return RedirectToAction(nameof(Overview));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user