refactor: experiencing with clang format

This commit is contained in:
Arthur Wambst 2025-08-02 03:06:12 +02:00
parent 7a984cb7d2
commit 887090bf49
15 changed files with 380 additions and 376 deletions

View File

@ -1,7 +1,6 @@
package fr.la_banquise.backend.data.model;
import com.fasterxml.jackson.annotation.JsonBackReference;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
@ -21,7 +20,8 @@ import lombok.NoArgsConstructor;
public class Instance {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name = "InstanceSeq", sequenceName = "instance_id_seq", allocationSize = 1, initialValue = 1)
@SequenceGenerator(name = "InstanceSeq", sequenceName = "instance_id_seq",
allocationSize = 1, initialValue = 1)
public Long id;
public String name;
public String ssh;
@ -37,7 +37,8 @@ public class Instance {
@JoinColumn(name = "practical_id", nullable = false)
public Tp tp;
public Instance(String name, String ssh, String pwd, Long port, User user, Tp tp) {
public Instance(String name, String ssh, String pwd, Long port, User user,
Tp tp) {
this.name = name;
this.ssh = ssh;
this.pwd = pwd;

View File

@ -5,13 +5,13 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import java.util.List;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.JoinColumn;
@Entity
@NoArgsConstructor
@ -20,18 +20,18 @@ import jakarta.persistence.JoinColumn;
public class Ji {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name = "JiSeq", sequenceName = "ji_id_seq", allocationSize = 1, initialValue = 1)
@SequenceGenerator(name = "JiSeq", sequenceName = "ji_id_seq",
allocationSize = 1, initialValue = 1)
public Long id;
public String name;
public String description;
public String respo;
public String date;
@ManyToOne
@JoinColumn(name = "site_id")
public Site site;
@ManyToOne @JoinColumn(name = "site_id") public Site site;
public Ji(String name, String description, String respo, String date, Site site) {
public Ji(String name, String description, String respo, String date,
Site site) {
this.name = name;
this.description = description;
this.respo = respo;

View File

@ -1,42 +1,36 @@
package fr.la_banquise.backend.data.model;
import io.quarkus.hibernate.orm.panache.PanacheEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import jakarta.persistence.UniqueConstraint;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import java.util.Set;
import java.util.HashSet;
import jakarta.persistence.OneToMany;
import java.util.List;
import java.util.ArrayList;
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "site", uniqueConstraints = {
@UniqueConstraint(columnNames = "name")
})
@Table(name = "site",
uniqueConstraints = { @UniqueConstraint(columnNames = "name") })
public class Site {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name = "SiteSeq", sequenceName = "site_id_seq", allocationSize = 1, initialValue = 1)
@SequenceGenerator(name = "SiteSeq", sequenceName = "site_id_seq",
allocationSize = 1, initialValue = 1)
public Long id;
@Column(unique = true, nullable = false)
public String name;
@Column(unique = true, nullable = false) public String name;
public String description;
public String address;
@OneToMany(mappedBy = "site")
public List<Ji> jiInSite;
@OneToMany(mappedBy = "site") public List<Ji> jiInSite;
public Site(String name, String description, String address) {
this.name = name;
@ -45,9 +39,9 @@ public class Site {
this.jiInSite = new ArrayList<Ji>();
}
@Override
public String toString() {
return "Site{id=" + id + ", name='" + name + "', description='" + description + "', address='" + address + "'}";
return "Site{id=" + id + ", name='" + name + "', description='" +
description + "', address='" + address + "'}";
}
}

View File

@ -1,6 +1,5 @@
package fr.la_banquise.backend.data.model;
import io.quarkus.hibernate.orm.panache.PanacheEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
@ -20,7 +19,8 @@ import lombok.NoArgsConstructor;
public class Tp {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name = "TpSeq", sequenceName = "tp_id_seq", allocationSize = 1, initialValue = 1)
@SequenceGenerator(name = "TpSeq", sequenceName = "tp_id_seq",
allocationSize = 1, initialValue = 1)
public Long id;
public String name;
public String description;
@ -28,7 +28,8 @@ public class Tp {
public String respo;
public String date;
public Tp(String name, String description, String pdfLink, String respo, String date) {
public Tp(String name, String description, String pdfLink, String respo,
String date) {
this.name = name;
this.description = description;
this.pdfLink = pdfLink;

View File

@ -1,9 +1,6 @@
package fr.la_banquise.backend.data.model;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import io.quarkus.security.jpa.Password;
import io.quarkus.security.jpa.Roles;
import io.quarkus.security.jpa.UserDefinition;
@ -16,6 +13,7 @@ import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@ -34,24 +32,22 @@ import lombok.Setter;
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name = "UserSeq", sequenceName = "user_id_seq", allocationSize = 1, initialValue = 1)
@SequenceGenerator(name = "UserSeq", sequenceName = "user_id_seq",
allocationSize = 1, initialValue = 1)
public Long id;
@Username
public String name;
@Password
public String password;
@Roles
public String role;
@Username public String name;
@Password public String password;
@Roles public String role;
@JsonManagedReference
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
public List<Instance> instances;
public User(String name, String password, String role, List<Instance> instances) {
public User(String name, String password, String role,
List<Instance> instances) {
this.name = name;
this.password = password;
this.role = role;
this.instances = instances;
}
}

View File

@ -5,5 +5,4 @@ import io.quarkus.hibernate.orm.panache.PanacheRepository;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class SiteRepository implements PanacheRepository<Site> {
}
public class SiteRepository implements PanacheRepository<Site> {}

View File

@ -8,5 +8,4 @@ import jakarta.enterprise.context.ApplicationScoped;
* TpRepository
*/
@ApplicationScoped
public class TpRepository implements PanacheRepository<Tp> {
}
public class TpRepository implements PanacheRepository<Tp> {}

View File

@ -5,7 +5,6 @@ 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("/containers")
@ -13,28 +12,33 @@ import java.util.Map;
@Consumes(MediaType.APPLICATION_JSON)
public class ContainerResource {
@Inject
DockerService dockerService;
@Inject DockerService dockerService;
@POST
@Path("/nginx")
public Response launchNginx() {
try {
String id = dockerService.createAndStartNginx();
return Response.ok(Map.of("containerId", id, "status", "running")).build();
return Response.ok(Map.of("containerId", id, "status", "running"))
.build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
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) {
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();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@ -45,7 +49,9 @@ public class ContainerResource {
String id = dockerService.listAllContainers();
return Response.ok(id).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@ -54,9 +60,12 @@ public class ContainerResource {
public Response start(@QueryParam("id") String id) {
try {
dockerService.start(id);
return Response.ok(Map.of("containerId", id, "status", "Running")).build();
return Response.ok(Map.of("containerId", id, "status", "Running"))
.build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@ -65,9 +74,12 @@ public class ContainerResource {
public Response stop(@QueryParam("id") String id) {
try {
dockerService.stop(id);
return Response.ok(Map.of("containerId", id, "status", "removed")).build();
return Response.ok(Map.of("containerId", id, "status", "removed"))
.build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@DELETE
@ -75,9 +87,12 @@ public class ContainerResource {
public Response remove(@QueryParam("id") String id) {
try {
dockerService.remove(id);
return Response.ok(Map.of("containerId", id, "status", "removed")).build();
return Response.ok(Map.of("containerId", id, "status", "removed"))
.build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
}

View File

@ -2,31 +2,25 @@ package fr.la_banquise.backend.rest;
import fr.la_banquise.backend.data.model.Ji;
import fr.la_banquise.backend.services.JiService;
import io.quarkus.security.identity.SecurityIdentity;
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.List;
import java.util.stream.Collectors;
import io.quarkus.security.identity.SecurityIdentity;
import jakarta.annotation.security.RolesAllowed;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
import java.util.Map;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
@Path("/ji")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class JiResource {
@Inject
SecurityIdentity identity;
@Inject
JiService jiService;
@Inject SecurityIdentity identity;
@Inject JiService jiService;
@GET
@Path("/listall")
@ -36,19 +30,27 @@ public class JiResource {
List<Ji> ji = jiService.getAllJi();
return Response.ok(ji).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@POST
@Path("/create")
@RolesAllowed("root")
public Response createJi(@QueryParam("name") String name, @QueryParam("desc") String desc, @QueryParam("address") String address, @QueryParam("respo") String respo, @QueryParam("site") String name_site) {
public Response createJi(@QueryParam("name") String name,
@QueryParam("desc") String desc,
@QueryParam("address") String address,
@QueryParam("respo") String respo,
@QueryParam("site") String name_site) {
try {
Ji jsp = jiService.createJi(name, desc, address, respo, name_site);
return Response.ok(Map.of("created", jsp)).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@ -60,7 +62,9 @@ public class JiResource {
Ji ji = jiService.getJiByName(name);
return Response.ok(ji.toString()).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@ -68,58 +72,64 @@ public class JiResource {
@Path("/del")
@RolesAllowed("root")
@APIResponses({
@APIResponse(responseCode = "200", description = "Successfully deleted"),
@APIResponse(responseCode = "500", description = "Internal server error, usually site not found")
})
public Response deleteJiByName(@QueryParam("name") String name) {
@APIResponse(responseCode = "200", description = "Successfully deleted")
, @APIResponse(responseCode = "500",
description =
"Internal server error, usually site not found")
})
public Response
deleteJiByName(@QueryParam("name") String name) {
try {
jiService.deleteJi(name);
return Response.ok().build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
/*
@GET
@Path("/all")
public Response listContainers() {
try {
String id = dockerService.listAllContainers();
return Response.ok(id).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
/*
@GET
@Path("/all")
public Response listContainers() {
try {
String id = dockerService.listAllContainers();
return Response.ok(id).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error",
e.getMessage())).build();
}
}
}
@POST
@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
@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
@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();
@POST
@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
@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();
}
}*/
@DELETE
@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();
}
}*/
}

View File

@ -2,32 +2,28 @@ package fr.la_banquise.backend.rest;
import fr.la_banquise.backend.data.model.Site;
import fr.la_banquise.backend.services.SiteService;
import io.quarkus.security.identity.SecurityIdentity;
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.List;
import java.util.Map;
import java.util.stream.Collectors;
import io.quarkus.security.identity.SecurityIdentity;
import jakarta.annotation.security.RolesAllowed;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
import java.util.Map;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
@Path("/sites")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class SiteEndpoints {
@Inject
SecurityIdentity identity;
@Inject SecurityIdentity identity;
@Inject
SiteService siteService;
@Inject SiteService siteService;
@GET
@Path("/listall")
@ -36,27 +32,29 @@ public class SiteEndpoints {
try {
List<Site> sites = siteService.getAllSites();
return Response.ok(sites).build();
}
catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
} catch (Exception e) {
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@POST
@Path("/create")
@RolesAllowed("root")
public Response createSite(@QueryParam("name") String name, @QueryParam("desc") String desc, @QueryParam("address") String address) {
public Response createSite(@QueryParam("name") String name,
@QueryParam("desc") String desc,
@QueryParam("address") String address) {
try {
String jsp = siteService.createSite(name, desc, address).toString();
return Response.ok(Map.of("created", jsp)).build();
}
catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
} catch (Exception e) {
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@GET
@Path("/getbyname")
@Produces(MediaType.APPLICATION_JSON)
@ -64,73 +62,89 @@ public class SiteEndpoints {
try {
Site site = siteService.getSiteByName(name);
return Response.ok(site.toString()).build();
}
catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
} catch (Exception e) {
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
@DELETE
@Path("/del")
@RolesAllowed("root")
@Operation(summary = "Deletes a site", description = "Permanently removes a site if no Ji are associated to it.")
@Operation(summary = "Deletes a site",
description =
"Permanently removes a site if no Ji are associated to it.")
@APIResponses({
@APIResponse(responseCode = "200", description = "Successfully deleted"),
@APIResponse(responseCode = "409", description = "Cannot delete site, it has associated JI records"),
@APIResponse(responseCode = "500", description = "Internal server error, usually site not found")})
public Response deleteSiteByName(@QueryParam("name") String name) {
@APIResponse(responseCode = "200", description = "Successfully deleted")
,
@APIResponse(responseCode = "409",
description =
"Cannot delete site, it has associated JI records")
,
@APIResponse(responseCode = "500",
description =
"Internal server error, usually site not found")
})
public Response
deleteSiteByName(@QueryParam("name") String name) {
try {
boolean retour = siteService.deleteSiteByName(name);
if (retour) { return Response.ok().build(); }
return Response.status(409).entity(Map.of("Cannot delete site", "it has associated JI records")).build();
}
catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
}
}
/*
@GET
@Path("/all")
public Response listContainers() {
try {
String id = dockerService.listAllContainers();
return Response.ok(id).build();
if (retour) {
return Response.ok().build();
}
return Response.status(409)
.entity(Map.of("Cannot delete site",
"it has associated JI records"))
.build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
return Response.status(500)
.entity(Map.of("error", e.getMessage()))
.build();
}
}
/*
@GET
@Path("/all")
public Response listContainers() {
try {
String id = dockerService.listAllContainers();
return Response.ok(id).build();
} catch (Exception e) {
return Response.status(500).entity(Map.of("error",
e.getMessage())).build();
}
}
@POST
@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
@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
@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();
@POST
@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
@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();
}
}*/
@DELETE
@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();
}
}*/
}

View File

@ -23,16 +23,15 @@ import jakarta.ws.rs.core.Response;
@Produces(MediaType.APPLICATION_JSON)
public class UserEndpoints {
@Inject
SecurityIdentity identity;
@Inject SecurityIdentity identity;
@Inject
UserService userService;
@Inject UserService userService;
@GET
@Path("/me")
public Response getCurrentUser() {
LoggedUserResponse user = new LoggedUserResponse(identity.getPrincipal().getName(), identity.getRoles());
LoggedUserResponse user = new LoggedUserResponse(
identity.getPrincipal().getName(), identity.getRoles());
return Response.ok(user).build();
}

View File

@ -2,24 +2,23 @@ package fr.la_banquise.backend.services;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.command.InspectContainerResponse;
import com.github.dockerjava.api.model.Container;
import com.github.dockerjava.api.model.ContainerPort;
import com.github.dockerjava.api.model.ExposedPort;
import com.github.dockerjava.api.model.HostConfig;
import com.github.dockerjava.api.model.PortBinding;
import com.github.dockerjava.api.model.Ports;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import com.github.dockerjava.api.model.Container;
import com.github.dockerjava.api.model.ContainerPort;
import com.github.dockerjava.api.command.InspectContainerResponse;
@ApplicationScoped
public class DockerService {
@Inject
DockerClient dockerClient;
@Inject DockerClient dockerClient;
public String createAndStartNginx() {
ExposedPort tcp80 = ExposedPort.tcp(80);
@ -27,15 +26,16 @@ public class DockerService {
Ports portBindings = new Ports();
portBindings.bind(tcp80, Ports.Binding.bindPort(8081));
HostConfig hostConfig = HostConfig.newHostConfig()
.withPortBindings(portBindings);
HostConfig hostConfig =
HostConfig.newHostConfig().withPortBindings(portBindings);
Map<String, String> labels = new HashMap<>();
labels.put("test", "banquise");
labels.put("environment", "development");
labels.put("version", "1.0");
labels.put("created-by", "java-docker-api");
labels.put("test", "banquise");
labels.put("environment", "development");
labels.put("version", "1.0");
labels.put("created-by", "java-docker-api");
CreateContainerResponse container = dockerClient.createContainerCmd("nginx:latest")
CreateContainerResponse container =
dockerClient.createContainerCmd("nginx:latest")
.withName("my-nginx")
.withLabels(labels)
.withExposedPorts(tcp80)
@ -47,133 +47,135 @@ public class DockerService {
}
public String createContainer(String containerName, int port) {
StringBuilder result = new StringBuilder();
StringBuilder result = new StringBuilder();
ExposedPort tcpSsh = ExposedPort.tcp(80);
Ports portBindings = new Ports();
portBindings.bind(tcpSsh, Ports.Binding.bindPort(port));
HostConfig hostConfig = HostConfig.newHostConfig()
.withPortBindings(portBindings);
HostConfig hostConfig =
HostConfig.newHostConfig().withPortBindings(portBindings);
CreateContainerResponse container = dockerClient.createContainerCmd("nginx:latest")
CreateContainerResponse container =
dockerClient.createContainerCmd("nginx:latest")
.withName(containerName)
.withExposedPorts(tcpSsh)
.withHostConfig(hostConfig)
.exec();
//dockerClient.startContainerCmd(container.getId()).exec();
// dockerClient.startContainerCmd(container.getId()).exec();
return container.getId();
}
/*
public String listAllContainers() {
StringBuilder json = new StringBuilder();
List<Container> containers = dockerClient.listContainersCmd()
.withShowAll(true)
.exec();
/*
public String listAllContainers() {
StringBuilder json = new StringBuilder();
List<Container> containers = dockerClient.listContainersCmd()
.withShowAll(true)
.exec();
json.append("[");
json.append("[");
for (int i = 0; i < containers.size(); i++) {
Container container = containers.get(i);
for (int i = 0; i < containers.size(); i++) {
Container container = containers.get(i);
json.append("{");
json.append("\"name\":\"").append(container.getNames()[0].substring(1)).append("\",");
json.append("\"id\":\"").append(container.getId()).append("\",");
json.append("\"image\":\"").append(container.getImage()).append("\",");
json.append("\"status\":\"").append(container.getStatus()).append("\",");
json.append("{");
json.append("\"name\":\"").append(container.getNames()[0].substring(1)).append("\",");
json.append("\"id\":\"").append(container.getId()).append("\",");
json.append("\"image\":\"").append(container.getImage()).append("\",");
json.append("\"status\":\"").append(container.getStatus()).append("\",");
// Ports
InspectContainerResponse inspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
json.append("\"ports\":[");
if (container.getPorts() != null && container.getPorts().length > 0) {
for (int j = 0; j < .length; j+=2) {
ContainerPort port = container.getPorts()[j];
json.append("[\"");
json.append(port.getPrivatePort()).append("->").append(port.getPublicPort()).append("/"+port.getType()+"\",\"");
json.append(port.getIp()).append(",").append((container.getPorts()[j+1]).getIp());
if (port.getType() != null) {
json.append("/").append(port.getType());
// Ports
InspectContainerResponse inspectResponse =
dockerClient.inspectContainerCmd(container.getId()).exec();
json.append("\"ports\":[");
if (container.getPorts() != null && container.getPorts().length > 0) {
for (int j = 0; j < .length; j+=2) {
ContainerPort port = container.getPorts()[j];
json.append("[\"");
json.append(port.getPrivatePort()).append("->").append(port.getPublicPort()).append("/"+port.getType()+"\",\"");
json.append(port.getIp()).append(",").append((container.getPorts()[j+1]).getIp());
if (port.getType() != null) {
json.append("/").append(port.getType());
}
if (port.getPublicPort() != null) {
json.append("->").append(port.getPublicPort());
}*
json.append("\"]");
if (j < container.getPorts().length - 2) {
json.append(",");
}
}
if (port.getPublicPort() != null) {
json.append("->").append(port.getPublicPort());
}*
json.append("\"]");
if (j < container.getPorts().length - 2) {
json.append(",");
}
json.append("]");
// Ports
String ports = "[]";
try {
InspectContainerResponse inspectResponse =
dockerClient.inspectContainerCmd(container.getId()).exec(); if
(inspectResponse.getConfig().getExposedPorts() != null) { ports =
inspectResponse.getConfig().getExposedPorts().toString();
}
} catch (Exception e) {
// Fallback vers les ports runtime si inspect échoue
if (container.getPorts() != null && container.getPorts().length
> 0) { ports = java.util.Arrays.toString(container.getPorts());
}
}
json.append("\"ports\":\"").append(ports).append("\"");
json.append("}");
if (i < containers.size() - 1) {
json.append(",");
}
json.append("}");
if (i < containers.size() - 1) {
json.append(",");
}
}
json.append("]");
return json.toString();
}
public String listAllContainers() {
StringBuilder json = new StringBuilder();
List<Container> containers = dockerClient.listContainersCmd()
.withShowAll(true)
.exec();
json.append("[");
for (int i = 0; i < containers.size(); i++) {
Container container = containers.get(i);
// Ports
List<String> portsList = new ArrayList<>();
try {
var inspectResponse =
dockerClient.inspectContainerCmd(container.getId()).exec(); if
(inspectResponse.getConfig().getExposedPorts() != null) { var exposedPorts =
inspectResponse.getConfig().getExposedPorts(); int count = 0; for (var port
: exposedPorts) { if (count > 0) portsList.append(",");
portsList.append(String.format("\"%s\"",
port.toString())); count = 1;
}
portsList.append("]");
ports = portsList.toString();
}
} catch (Exception e) {
// Fallback vers les ports runtime si inspect échoue
if (container.getPorts() != null && container.getPorts().length
> 0) { ports = java.util.Arrays.toString(container.getPorts());
}
}
//json.append(containerJson);
if (i < containers.size() - 1) {
json.append(",");
}
}
json.append("]");
// Ports
String ports = "[]";
try {
InspectContainerResponse inspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
if (inspectResponse.getConfig().getExposedPorts() != null) {
ports = inspectResponse.getConfig().getExposedPorts().toString();
}
} catch (Exception e) {
// Fallback vers les ports runtime si inspect échoue
if (container.getPorts() != null && container.getPorts().length > 0) {
ports = java.util.Arrays.toString(container.getPorts());
}
}
json.append("\"ports\":\"").append(ports).append("\"");
json.append("}");
if (i < containers.size() - 1) {
json.append(",");
}
json.append("}");
if (i < containers.size() - 1) {
json.append(",");
}
}
json.append("]");
return json.toString();
}
public String listAllContainers() {
StringBuilder json = new StringBuilder();
List<Container> containers = dockerClient.listContainersCmd()
.withShowAll(true)
.exec();
json.append("[");
for (int i = 0; i < containers.size(); i++) {
Container container = containers.get(i);
// Ports
List<String> portsList = new ArrayList<>();
try {
var inspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
if (inspectResponse.getConfig().getExposedPorts() != null) {
var exposedPorts = inspectResponse.getConfig().getExposedPorts();
int count = 0;
for (var port : exposedPorts) {
if (count > 0) portsList.append(",");
portsList.append(String.format("\"%s\"", port.toString()));
count = 1;
}
portsList.append("]");
ports = portsList.toString();
}
} catch (Exception e) {
// Fallback vers les ports runtime si inspect échoue
if (container.getPorts() != null && container.getPorts().length > 0) {
ports = java.util.Arrays.toString(container.getPorts());
}
}
//json.append(containerJson);
if (i < containers.size() - 1) {
json.append(",");
}
}
json.append("]");
return json.toString();
}*/
return json.toString();
}*/
public String listAllContainers() { return ""; }
public void start(String containerId) {

View File

@ -11,14 +11,13 @@ import java.util.List;
@ApplicationScoped
public class JiService {
@Inject
JiRepository jiRepository;
@Inject JiRepository jiRepository;
@Inject
SiteService siteService;
@Inject SiteService siteService;
@Transactional
public Ji createJi(String name, String description, String address, String respo, String site_name) {
public Ji createJi(String name, String description, String address,
String respo, String site_name) {
Site site = siteService.getSiteByName(site_name);
Ji ji = new Ji(name, description, address, respo, site);
jiRepository.persist(ji);
@ -26,23 +25,13 @@ public class JiService {
return ji;
}
/*@Transactional
public List<Site> saveAllSites(List<Site> sites) {
sites.forEach(site -> siteRepository.persist(site));
return sites;
}*/
public List<Ji> getAllJi() {
return jiRepository.listAll();
}
public List<Ji> getAllJi() { return jiRepository.listAll(); }
public Ji getJiByName(String name) {
return jiRepository.find("name", name).firstResult();
}
public Ji getJiById(Long id) {
return jiRepository.findById(id);
}
public Ji getJiById(Long id) { return jiRepository.findById(id); }
@Transactional
public void deleteJi(Long id) {

View File

@ -1,7 +1,7 @@
package fr.la_banquise.backend.services;
import fr.la_banquise.backend.data.model.Site;
import fr.la_banquise.backend.data.model.Ji;
import fr.la_banquise.backend.data.model.Site;
import fr.la_banquise.backend.data.repository.SiteRepository;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@ -11,8 +11,7 @@ import java.util.List;
@ApplicationScoped
public class SiteService {
@Inject
SiteRepository siteRepository;
@Inject SiteRepository siteRepository;
@Transactional
public Site createSite(String name, String description, String address) {
@ -27,44 +26,37 @@ public class SiteService {
return sites;
}*/
public List<Site> getAllSites() {
return siteRepository.listAll();
}
public List<Site> getAllSites() { return siteRepository.listAll(); }
public Site getSiteByName(String name) {
return siteRepository.find("name", name).firstResult();
}
public Site getSiteById(Long id) {
return siteRepository.findById(id);
}
public Site getSiteById(Long id) { return siteRepository.findById(id); }
@Transactional
public void addJi(Site site, Ji ji){
public void addJi(Site site, Ji ji) {
site.jiInSite.add(ji);
}
@Transactional
public void removeJi(Site site, Ji ji){
public void removeJi(Site site, Ji ji) {
site.jiInSite.remove(ji);
}
@Transactional
public boolean deleteSiteById(Long id) {
if (getSiteById(id).jiInSite.isEmpty())
{
if (getSiteById(id).jiInSite.isEmpty()) {
siteRepository.deleteById(id);
return true;
}
return false;
}
@Transactional
public boolean deleteSiteByName(String name) {
Site site = getSiteByName(name);
if (site.jiInSite.isEmpty())
{
if (site.jiInSite.isEmpty()) {
siteRepository.delete(site);
return true;
}

View File

@ -1,10 +1,5 @@
package fr.la_banquise.backend.services;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.annotations.TypeRegistration;
import fr.la_banquise.backend.data.model.Instance;
import fr.la_banquise.backend.data.model.User;
import fr.la_banquise.backend.data.repository.UserRepository;
@ -14,6 +9,9 @@ import io.quarkus.elytron.security.common.BcryptUtil;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.annotations.TypeRegistration;
/**
* UserService
@ -21,23 +19,19 @@ import jakarta.transaction.Transactional;
@ApplicationScoped
public class UserService {
@Inject
UserRepository userRepository;
@Inject UserRepository userRepository;
@Inject
InstanceService instanceService;
@Inject InstanceService instanceService;
public List<User> getAllUsers() {
return userRepository.listAll();
}
public List<User> getAllUsers() { return userRepository.listAll(); }
public User getUser(Long id) {
return userRepository.findById(id);
}
public User getUser(Long id) { return userRepository.findById(id); }
@Transactional
public User createUser(UserRequest request) {
User user = new User(request.name, BcryptUtil.bcryptHash(request.password), "pingouin", new ArrayList<>());
User user =
new User(request.name, BcryptUtil.bcryptHash(request.password),
"pingouin", new ArrayList<>());
userRepository.persist(user);
return user;
}
@ -74,11 +68,10 @@ public class UserService {
for (UserRequest user : usersRequest.users) {
User newUser = createUser(user);
users.add(newUser);
instanceService.createInstance(user.instance_name, user.instance_ssh, user.instance_pwd, user.instance_port,
user.name,
usersRequest.tpId);
instanceService.createInstance(
user.instance_name, user.instance_ssh, user.instance_pwd,
user.instance_port, user.name, usersRequest.tpId);
}
return new ArrayList<User>();
}
}