53 lines
No EOL
1.1 KiB
C#
53 lines
No EOL
1.1 KiB
C#
using ContainerDashboard.Services;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace ContainerDashboard;
|
|
|
|
[ApiController]
|
|
[Route("[controller]")]
|
|
public class ServiceController : ControllerBase
|
|
{
|
|
private ILogger<ServiceController> _logger;
|
|
private IContainerService _service;
|
|
|
|
public ServiceController(ILogger<ServiceController> logger, IContainerService service)
|
|
{
|
|
_logger = logger;
|
|
_service = service;
|
|
}
|
|
|
|
[HttpGet()]
|
|
public async Task<IActionResult> GetContainerList()
|
|
{
|
|
var containers = await _service.GetContainers();
|
|
|
|
return Ok(containers);
|
|
}
|
|
|
|
[HttpPost()]
|
|
public async Task<IActionResult> ToggleContainer(string containerName, string? containerNamespace, string action)
|
|
{
|
|
if (containerName == string.Empty || action == string.Empty)
|
|
{
|
|
return BadRequest("Missing required parameter");
|
|
}
|
|
|
|
var container = await _service.GetContainer(containerName, containerNamespace);
|
|
|
|
switch (action)
|
|
{
|
|
case "START":
|
|
await _service.StartContainer(container);
|
|
break;
|
|
|
|
case "STOP":
|
|
await _service.StopContainer(container);
|
|
break;
|
|
|
|
default:
|
|
return BadRequest("Incorrect action");
|
|
}
|
|
|
|
return Ok(container);
|
|
}
|
|
} |