104 lines
3.0 KiB
Java
104 lines
3.0 KiB
Java
package fr.la_banquise.backend.rest;
|
|
|
|
import fr.la_banquise.backend.services.DockerService;
|
|
import io.quarkus.security.jpa.Roles;
|
|
import jakarta.annotation.security.RolesAllowed;
|
|
import jakarta.inject.Inject;
|
|
import jakarta.ws.rs.*;
|
|
import jakarta.ws.rs.core.MediaType;
|
|
import jakarta.ws.rs.core.Response;
|
|
import java.util.Map;
|
|
|
|
@Path("/docker")
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
@Consumes(MediaType.APPLICATION_JSON)
|
|
public class DockerResource {
|
|
|
|
@Inject DockerService dockerService;
|
|
|
|
/*@POST
|
|
@Path("/nginx")
|
|
public Response launchNginx() {
|
|
try {
|
|
String id = dockerService.createAndStartNginx();
|
|
return Response.ok(Map.of("containerId", id, "status", "running"))
|
|
.build();
|
|
} catch (Exception e) {
|
|
return Response.status(500)
|
|
.entity(Map.of("error", e.getMessage()))
|
|
.build();
|
|
}
|
|
}
|
|
|
|
@POST
|
|
@Path("/create")
|
|
public Response createContainer(@QueryParam("name") String name,
|
|
@QueryParam("port") int port) {
|
|
try {
|
|
String id = dockerService.createContainer(name, port);
|
|
return Response.ok(Map.of("containerId", id)).build();
|
|
} catch (Exception e) {
|
|
return Response.status(500)
|
|
.entity(Map.of("error", e.getMessage()))
|
|
.build();
|
|
}
|
|
}*/
|
|
|
|
@GET
|
|
@RolesAllowed("ROOT")
|
|
@Path("/all")
|
|
public Response listContainers() {
|
|
try {
|
|
return Response.ok(dockerService.listAllContainers()).build();
|
|
} catch (Exception e) {
|
|
return Response.status(500)
|
|
.entity(Map.of("error", e.getMessage()))
|
|
.build();
|
|
}
|
|
}
|
|
|
|
@POST
|
|
@RolesAllowed("ROOT")
|
|
@Path("/start")
|
|
public Response start(@QueryParam("id") String id) {
|
|
try {
|
|
dockerService.start(id);
|
|
return Response.ok(Map.of("containerId", id, "status", "Running"))
|
|
.build();
|
|
} catch (Exception e) {
|
|
return Response.status(500)
|
|
.entity(Map.of("error", e.getMessage()))
|
|
.build();
|
|
}
|
|
}
|
|
|
|
@POST
|
|
@RolesAllowed("ROOT")
|
|
@Path("/stop")
|
|
public Response stop(@QueryParam("id") String id) {
|
|
try {
|
|
dockerService.stop(id);
|
|
return Response.ok(Map.of("containerId", id, "status", "removed"))
|
|
.build();
|
|
} catch (Exception e) {
|
|
return Response.status(500)
|
|
.entity(Map.of("error", e.getMessage()))
|
|
.build();
|
|
}
|
|
}
|
|
@DELETE
|
|
@RolesAllowed("ROOT")
|
|
@Path("/remove")
|
|
public Response remove(@QueryParam("id") String id) {
|
|
try {
|
|
dockerService.remove(id);
|
|
return Response.ok(Map.of("containerId", id, "status", "removed"))
|
|
.build();
|
|
} catch (Exception e) {
|
|
return Response.status(500)
|
|
.entity(Map.of("error", e.getMessage()))
|
|
.build();
|
|
}
|
|
}
|
|
}
|