refactor: experiencing with clang format
This commit is contained in:
parent
7a984cb7d2
commit
887090bf49
@ -1,7 +1,6 @@
|
|||||||
package fr.la_banquise.backend.data.model;
|
package fr.la_banquise.backend.data.model;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
|
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
@ -21,7 +20,8 @@ import lombok.NoArgsConstructor;
|
|||||||
public class Instance {
|
public class Instance {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@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 Long id;
|
||||||
public String name;
|
public String name;
|
||||||
public String ssh;
|
public String ssh;
|
||||||
@ -37,7 +37,8 @@ public class Instance {
|
|||||||
@JoinColumn(name = "practical_id", nullable = false)
|
@JoinColumn(name = "practical_id", nullable = false)
|
||||||
public Tp tp;
|
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.name = name;
|
||||||
this.ssh = ssh;
|
this.ssh = ssh;
|
||||||
this.pwd = pwd;
|
this.pwd = pwd;
|
||||||
|
@ -5,13 +5,13 @@ import jakarta.persistence.Entity;
|
|||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.SequenceGenerator;
|
import jakarta.persistence.SequenceGenerator;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
|
import java.util.List;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import java.util.List;
|
|
||||||
import jakarta.persistence.ManyToOne;
|
|
||||||
import jakarta.persistence.JoinColumn;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@ -20,18 +20,18 @@ import jakarta.persistence.JoinColumn;
|
|||||||
public class Ji {
|
public class Ji {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@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 Long id;
|
||||||
public String name;
|
public String name;
|
||||||
public String description;
|
public String description;
|
||||||
public String respo;
|
public String respo;
|
||||||
public String date;
|
public String date;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne @JoinColumn(name = "site_id") public Site site;
|
||||||
@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.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.respo = respo;
|
this.respo = respo;
|
||||||
|
@ -1,42 +1,36 @@
|
|||||||
package fr.la_banquise.backend.data.model;
|
package fr.la_banquise.backend.data.model;
|
||||||
|
|
||||||
import io.quarkus.hibernate.orm.panache.PanacheEntity;
|
|
||||||
|
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
import jakarta.persistence.SequenceGenerator;
|
import jakarta.persistence.SequenceGenerator;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import jakarta.persistence.UniqueConstraint;
|
import jakarta.persistence.UniqueConstraint;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import jakarta.persistence.OneToMany;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Table(name = "site", uniqueConstraints = {
|
@Table(name = "site",
|
||||||
@UniqueConstraint(columnNames = "name")
|
uniqueConstraints = { @UniqueConstraint(columnNames = "name") })
|
||||||
})
|
|
||||||
public class Site {
|
public class Site {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@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;
|
public Long id;
|
||||||
|
|
||||||
@Column(unique = true, nullable = false)
|
@Column(unique = true, nullable = false) public String name;
|
||||||
public String name;
|
|
||||||
public String description;
|
public String description;
|
||||||
public String address;
|
public String address;
|
||||||
|
|
||||||
@OneToMany(mappedBy = "site")
|
@OneToMany(mappedBy = "site") public List<Ji> jiInSite;
|
||||||
public List<Ji> jiInSite;
|
|
||||||
|
|
||||||
public Site(String name, String description, String address) {
|
public Site(String name, String description, String address) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -45,9 +39,9 @@ public class Site {
|
|||||||
this.jiInSite = new ArrayList<Ji>();
|
this.jiInSite = new ArrayList<Ji>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Site{id=" + id + ", name='" + name + "', description='" + description + "', address='" + address + "'}";
|
return "Site{id=" + id + ", name='" + name + "', description='" +
|
||||||
|
description + "', address='" + address + "'}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package fr.la_banquise.backend.data.model;
|
package fr.la_banquise.backend.data.model;
|
||||||
|
|
||||||
import io.quarkus.hibernate.orm.panache.PanacheEntity;
|
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
@ -20,7 +19,8 @@ import lombok.NoArgsConstructor;
|
|||||||
public class Tp {
|
public class Tp {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@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 Long id;
|
||||||
public String name;
|
public String name;
|
||||||
public String description;
|
public String description;
|
||||||
@ -28,7 +28,8 @@ public class Tp {
|
|||||||
public String respo;
|
public String respo;
|
||||||
public String date;
|
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.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.pdfLink = pdfLink;
|
this.pdfLink = pdfLink;
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package fr.la_banquise.backend.data.model;
|
package fr.la_banquise.backend.data.model;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||||
|
|
||||||
import io.quarkus.security.jpa.Password;
|
import io.quarkus.security.jpa.Password;
|
||||||
import io.quarkus.security.jpa.Roles;
|
import io.quarkus.security.jpa.Roles;
|
||||||
import io.quarkus.security.jpa.UserDefinition;
|
import io.quarkus.security.jpa.UserDefinition;
|
||||||
@ -16,6 +13,7 @@ import jakarta.persistence.Id;
|
|||||||
import jakarta.persistence.OneToMany;
|
import jakarta.persistence.OneToMany;
|
||||||
import jakarta.persistence.SequenceGenerator;
|
import jakarta.persistence.SequenceGenerator;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
|
import java.util.List;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -34,24 +32,22 @@ import lombok.Setter;
|
|||||||
public class User {
|
public class User {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@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;
|
public Long id;
|
||||||
@Username
|
@Username public String name;
|
||||||
public String name;
|
@Password public String password;
|
||||||
@Password
|
@Roles public String role;
|
||||||
public String password;
|
|
||||||
@Roles
|
|
||||||
public String role;
|
|
||||||
|
|
||||||
@JsonManagedReference
|
@JsonManagedReference
|
||||||
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
|
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
|
||||||
public List<Instance> instances;
|
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.name = name;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
this.role = role;
|
this.role = role;
|
||||||
this.instances = instances;
|
this.instances = instances;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,5 +5,4 @@ import io.quarkus.hibernate.orm.panache.PanacheRepository;
|
|||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class SiteRepository implements PanacheRepository<Site> {
|
public class SiteRepository implements PanacheRepository<Site> {}
|
||||||
}
|
|
||||||
|
@ -8,5 +8,4 @@ import jakarta.enterprise.context.ApplicationScoped;
|
|||||||
* TpRepository
|
* TpRepository
|
||||||
*/
|
*/
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class TpRepository implements PanacheRepository<Tp> {
|
public class TpRepository implements PanacheRepository<Tp> {}
|
||||||
}
|
|
||||||
|
@ -5,7 +5,6 @@ import jakarta.inject.Inject;
|
|||||||
import jakarta.ws.rs.*;
|
import jakarta.ws.rs.*;
|
||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Path("/containers")
|
@Path("/containers")
|
||||||
@ -13,28 +12,33 @@ import java.util.Map;
|
|||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public class ContainerResource {
|
public class ContainerResource {
|
||||||
|
|
||||||
@Inject
|
@Inject DockerService dockerService;
|
||||||
DockerService dockerService;
|
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/nginx")
|
@Path("/nginx")
|
||||||
public Response launchNginx() {
|
public Response launchNginx() {
|
||||||
try {
|
try {
|
||||||
String id = dockerService.createAndStartNginx();
|
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) {
|
} 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
|
@POST
|
||||||
@Path("/create")
|
@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 {
|
try {
|
||||||
String id = dockerService.createContainer(name, port);
|
String id = dockerService.createContainer(name, port);
|
||||||
return Response.ok(Map.of("containerId", id)).build();
|
return Response.ok(Map.of("containerId", id)).build();
|
||||||
} catch (Exception e) {
|
} 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();
|
String id = dockerService.listAllContainers();
|
||||||
return Response.ok(id).build();
|
return Response.ok(id).build();
|
||||||
} catch (Exception e) {
|
} 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) {
|
public Response start(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.start(id);
|
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) {
|
} 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) {
|
public Response stop(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.stop(id);
|
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) {
|
} 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
|
@DELETE
|
||||||
@ -75,9 +87,12 @@ public class ContainerResource {
|
|||||||
public Response remove(@QueryParam("id") String id) {
|
public Response remove(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.remove(id);
|
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) {
|
} 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,31 +2,25 @@ package fr.la_banquise.backend.rest;
|
|||||||
|
|
||||||
import fr.la_banquise.backend.data.model.Ji;
|
import fr.la_banquise.backend.data.model.Ji;
|
||||||
import fr.la_banquise.backend.services.JiService;
|
import fr.la_banquise.backend.services.JiService;
|
||||||
|
import io.quarkus.security.identity.SecurityIdentity;
|
||||||
|
import jakarta.annotation.security.RolesAllowed;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.ws.rs.*;
|
import jakarta.ws.rs.*;
|
||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import java.util.List;
|
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 java.util.Map;
|
||||||
|
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
|
||||||
|
import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
|
||||||
|
|
||||||
@Path("/ji")
|
@Path("/ji")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public class JiResource {
|
public class JiResource {
|
||||||
|
|
||||||
@Inject
|
@Inject SecurityIdentity identity;
|
||||||
SecurityIdentity identity;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
JiService jiService;
|
|
||||||
|
|
||||||
|
@Inject JiService jiService;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/listall")
|
@Path("/listall")
|
||||||
@ -36,19 +30,27 @@ public class JiResource {
|
|||||||
List<Ji> ji = jiService.getAllJi();
|
List<Ji> ji = jiService.getAllJi();
|
||||||
return Response.ok(ji).build();
|
return Response.ok(ji).build();
|
||||||
} catch (Exception e) {
|
} 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
|
@POST
|
||||||
@Path("/create")
|
@Path("/create")
|
||||||
@RolesAllowed("root")
|
@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 {
|
try {
|
||||||
Ji jsp = jiService.createJi(name, desc, address, respo, name_site);
|
Ji jsp = jiService.createJi(name, desc, address, respo, name_site);
|
||||||
return Response.ok(Map.of("created", jsp)).build();
|
return Response.ok(Map.of("created", jsp)).build();
|
||||||
} catch (Exception e) {
|
} 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);
|
Ji ji = jiService.getJiByName(name);
|
||||||
return Response.ok(ji.toString()).build();
|
return Response.ok(ji.toString()).build();
|
||||||
} catch (Exception e) {
|
} 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,18 +72,23 @@ public class JiResource {
|
|||||||
@Path("/del")
|
@Path("/del")
|
||||||
@RolesAllowed("root")
|
@RolesAllowed("root")
|
||||||
@APIResponses({
|
@APIResponses({
|
||||||
@APIResponse(responseCode = "200", description = "Successfully deleted"),
|
@APIResponse(responseCode = "200", description = "Successfully deleted")
|
||||||
@APIResponse(responseCode = "500", description = "Internal server error, usually site not found")
|
, @APIResponse(responseCode = "500",
|
||||||
})
|
description =
|
||||||
public Response deleteJiByName(@QueryParam("name") String name) {
|
"Internal server error, usually site not found")
|
||||||
|
})
|
||||||
|
public Response
|
||||||
|
deleteJiByName(@QueryParam("name") String name) {
|
||||||
try {
|
try {
|
||||||
jiService.deleteJi(name);
|
jiService.deleteJi(name);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
} catch (Exception e) {
|
} 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
|
@GET
|
||||||
@Path("/all")
|
@Path("/all")
|
||||||
public Response listContainers() {
|
public Response listContainers() {
|
||||||
@ -87,7 +96,8 @@ public class JiResource {
|
|||||||
String id = dockerService.listAllContainers();
|
String id = dockerService.listAllContainers();
|
||||||
return Response.ok(id).build();
|
return Response.ok(id).build();
|
||||||
} catch (Exception e) {
|
} 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,9 +106,9 @@ public class JiResource {
|
|||||||
public Response start(@QueryParam("id") String id) {
|
public Response start(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.start(id);
|
dockerService.start(id);
|
||||||
return Response.ok(Map.of("containerId", id, "status", "Running")).build();
|
return Response.ok(Map.of("containerId", id, "status",
|
||||||
} catch (Exception e) {
|
"Running")).build(); } catch (Exception e) { return
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,9 +117,9 @@ public class JiResource {
|
|||||||
public Response stop(@QueryParam("id") String id) {
|
public Response stop(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.stop(id);
|
dockerService.stop(id);
|
||||||
return Response.ok(Map.of("containerId", id, "status", "removed")).build();
|
return Response.ok(Map.of("containerId", id, "status",
|
||||||
} catch (Exception e) {
|
"removed")).build(); } catch (Exception e) { return
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@DELETE
|
@DELETE
|
||||||
@ -117,9 +127,9 @@ public class JiResource {
|
|||||||
public Response remove(@QueryParam("id") String id) {
|
public Response remove(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.remove(id);
|
dockerService.remove(id);
|
||||||
return Response.ok(Map.of("containerId", id, "status", "removed")).build();
|
return Response.ok(Map.of("containerId", id, "status",
|
||||||
} catch (Exception e) {
|
"removed")).build(); } catch (Exception e) { return
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
@ -2,32 +2,28 @@ package fr.la_banquise.backend.rest;
|
|||||||
|
|
||||||
import fr.la_banquise.backend.data.model.Site;
|
import fr.la_banquise.backend.data.model.Site;
|
||||||
import fr.la_banquise.backend.services.SiteService;
|
import fr.la_banquise.backend.services.SiteService;
|
||||||
|
import io.quarkus.security.identity.SecurityIdentity;
|
||||||
|
import jakarta.annotation.security.RolesAllowed;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.ws.rs.*;
|
import jakarta.ws.rs.*;
|
||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
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.Operation;
|
||||||
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
|
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
|
||||||
|
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
|
||||||
import java.util.Map;
|
import org.eclipse.microprofile.openapi.annotations.responses.APIResponses;
|
||||||
|
|
||||||
@Path("/sites")
|
@Path("/sites")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public class SiteEndpoints {
|
public class SiteEndpoints {
|
||||||
|
|
||||||
@Inject
|
@Inject SecurityIdentity identity;
|
||||||
SecurityIdentity identity;
|
|
||||||
|
|
||||||
@Inject
|
@Inject SiteService siteService;
|
||||||
SiteService siteService;
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/listall")
|
@Path("/listall")
|
||||||
@ -36,27 +32,29 @@ public class SiteEndpoints {
|
|||||||
try {
|
try {
|
||||||
List<Site> sites = siteService.getAllSites();
|
List<Site> sites = siteService.getAllSites();
|
||||||
return Response.ok(sites).build();
|
return Response.ok(sites).build();
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e) {
|
return Response.status(500)
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
.entity(Map.of("error", e.getMessage()))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/create")
|
@Path("/create")
|
||||||
@RolesAllowed("root")
|
@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 {
|
try {
|
||||||
String jsp = siteService.createSite(name, desc, address).toString();
|
String jsp = siteService.createSite(name, desc, address).toString();
|
||||||
return Response.ok(Map.of("created", jsp)).build();
|
return Response.ok(Map.of("created", jsp)).build();
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e) {
|
return Response.status(500)
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
.entity(Map.of("error", e.getMessage()))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/getbyname")
|
@Path("/getbyname")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@ -64,33 +62,48 @@ public class SiteEndpoints {
|
|||||||
try {
|
try {
|
||||||
Site site = siteService.getSiteByName(name);
|
Site site = siteService.getSiteByName(name);
|
||||||
return Response.ok(site.toString()).build();
|
return Response.ok(site.toString()).build();
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e) {
|
return Response.status(500)
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
.entity(Map.of("error", e.getMessage()))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
@Path("/del")
|
@Path("/del")
|
||||||
@RolesAllowed("root")
|
@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({
|
@APIResponses({
|
||||||
@APIResponse(responseCode = "200", description = "Successfully deleted"),
|
@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")})
|
@APIResponse(responseCode = "409",
|
||||||
public Response deleteSiteByName(@QueryParam("name") String name) {
|
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 {
|
try {
|
||||||
boolean retour = siteService.deleteSiteByName(name);
|
boolean retour = siteService.deleteSiteByName(name);
|
||||||
if (retour) { return Response.ok().build(); }
|
if (retour) {
|
||||||
return Response.status(409).entity(Map.of("Cannot delete site", "it has associated JI records")).build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
return Response.status(409)
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
.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
|
@GET
|
||||||
@Path("/all")
|
@Path("/all")
|
||||||
public Response listContainers() {
|
public Response listContainers() {
|
||||||
@ -98,7 +111,8 @@ public class SiteEndpoints {
|
|||||||
String id = dockerService.listAllContainers();
|
String id = dockerService.listAllContainers();
|
||||||
return Response.ok(id).build();
|
return Response.ok(id).build();
|
||||||
} catch (Exception e) {
|
} 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,9 +121,9 @@ public class SiteEndpoints {
|
|||||||
public Response start(@QueryParam("id") String id) {
|
public Response start(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.start(id);
|
dockerService.start(id);
|
||||||
return Response.ok(Map.of("containerId", id, "status", "Running")).build();
|
return Response.ok(Map.of("containerId", id, "status",
|
||||||
} catch (Exception e) {
|
"Running")).build(); } catch (Exception e) { return
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,9 +132,9 @@ public class SiteEndpoints {
|
|||||||
public Response stop(@QueryParam("id") String id) {
|
public Response stop(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.stop(id);
|
dockerService.stop(id);
|
||||||
return Response.ok(Map.of("containerId", id, "status", "removed")).build();
|
return Response.ok(Map.of("containerId", id, "status",
|
||||||
} catch (Exception e) {
|
"removed")).build(); } catch (Exception e) { return
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@DELETE
|
@DELETE
|
||||||
@ -128,9 +142,9 @@ public class SiteEndpoints {
|
|||||||
public Response remove(@QueryParam("id") String id) {
|
public Response remove(@QueryParam("id") String id) {
|
||||||
try {
|
try {
|
||||||
dockerService.remove(id);
|
dockerService.remove(id);
|
||||||
return Response.ok(Map.of("containerId", id, "status", "removed")).build();
|
return Response.ok(Map.of("containerId", id, "status",
|
||||||
} catch (Exception e) {
|
"removed")).build(); } catch (Exception e) { return
|
||||||
return Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
Response.status(500).entity(Map.of("error", e.getMessage())).build();
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
@ -23,16 +23,15 @@ import jakarta.ws.rs.core.Response;
|
|||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
public class UserEndpoints {
|
public class UserEndpoints {
|
||||||
|
|
||||||
@Inject
|
@Inject SecurityIdentity identity;
|
||||||
SecurityIdentity identity;
|
|
||||||
|
|
||||||
@Inject
|
@Inject UserService userService;
|
||||||
UserService userService;
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/me")
|
@Path("/me")
|
||||||
public Response getCurrentUser() {
|
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();
|
return Response.ok(user).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,24 +2,23 @@ package fr.la_banquise.backend.services;
|
|||||||
|
|
||||||
import com.github.dockerjava.api.DockerClient;
|
import com.github.dockerjava.api.DockerClient;
|
||||||
import com.github.dockerjava.api.command.CreateContainerResponse;
|
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.ExposedPort;
|
||||||
import com.github.dockerjava.api.model.HostConfig;
|
import com.github.dockerjava.api.model.HostConfig;
|
||||||
import com.github.dockerjava.api.model.PortBinding;
|
import com.github.dockerjava.api.model.PortBinding;
|
||||||
import com.github.dockerjava.api.model.Ports;
|
import com.github.dockerjava.api.model.Ports;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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
|
@ApplicationScoped
|
||||||
public class DockerService {
|
public class DockerService {
|
||||||
|
|
||||||
@Inject
|
@Inject DockerClient dockerClient;
|
||||||
DockerClient dockerClient;
|
|
||||||
|
|
||||||
public String createAndStartNginx() {
|
public String createAndStartNginx() {
|
||||||
ExposedPort tcp80 = ExposedPort.tcp(80);
|
ExposedPort tcp80 = ExposedPort.tcp(80);
|
||||||
@ -27,15 +26,16 @@ public class DockerService {
|
|||||||
Ports portBindings = new Ports();
|
Ports portBindings = new Ports();
|
||||||
portBindings.bind(tcp80, Ports.Binding.bindPort(8081));
|
portBindings.bind(tcp80, Ports.Binding.bindPort(8081));
|
||||||
|
|
||||||
HostConfig hostConfig = HostConfig.newHostConfig()
|
HostConfig hostConfig =
|
||||||
.withPortBindings(portBindings);
|
HostConfig.newHostConfig().withPortBindings(portBindings);
|
||||||
Map<String, String> labels = new HashMap<>();
|
Map<String, String> labels = new HashMap<>();
|
||||||
labels.put("test", "banquise");
|
labels.put("test", "banquise");
|
||||||
labels.put("environment", "development");
|
labels.put("environment", "development");
|
||||||
labels.put("version", "1.0");
|
labels.put("version", "1.0");
|
||||||
labels.put("created-by", "java-docker-api");
|
labels.put("created-by", "java-docker-api");
|
||||||
|
|
||||||
CreateContainerResponse container = dockerClient.createContainerCmd("nginx:latest")
|
CreateContainerResponse container =
|
||||||
|
dockerClient.createContainerCmd("nginx:latest")
|
||||||
.withName("my-nginx")
|
.withName("my-nginx")
|
||||||
.withLabels(labels)
|
.withLabels(labels)
|
||||||
.withExposedPorts(tcp80)
|
.withExposedPorts(tcp80)
|
||||||
@ -53,19 +53,20 @@ public class DockerService {
|
|||||||
Ports portBindings = new Ports();
|
Ports portBindings = new Ports();
|
||||||
portBindings.bind(tcpSsh, Ports.Binding.bindPort(port));
|
portBindings.bind(tcpSsh, Ports.Binding.bindPort(port));
|
||||||
|
|
||||||
HostConfig hostConfig = HostConfig.newHostConfig()
|
HostConfig hostConfig =
|
||||||
.withPortBindings(portBindings);
|
HostConfig.newHostConfig().withPortBindings(portBindings);
|
||||||
|
|
||||||
CreateContainerResponse container = dockerClient.createContainerCmd("nginx:latest")
|
CreateContainerResponse container =
|
||||||
|
dockerClient.createContainerCmd("nginx:latest")
|
||||||
.withName(containerName)
|
.withName(containerName)
|
||||||
.withExposedPorts(tcpSsh)
|
.withExposedPorts(tcpSsh)
|
||||||
.withHostConfig(hostConfig)
|
.withHostConfig(hostConfig)
|
||||||
.exec();
|
.exec();
|
||||||
|
|
||||||
//dockerClient.startContainerCmd(container.getId()).exec();
|
// dockerClient.startContainerCmd(container.getId()).exec();
|
||||||
return container.getId();
|
return container.getId();
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
public String listAllContainers() {
|
public String listAllContainers() {
|
||||||
StringBuilder json = new StringBuilder();
|
StringBuilder json = new StringBuilder();
|
||||||
List<Container> containers = dockerClient.listContainersCmd()
|
List<Container> containers = dockerClient.listContainersCmd()
|
||||||
@ -84,15 +85,16 @@ public class DockerService {
|
|||||||
json.append("\"status\":\"").append(container.getStatus()).append("\",");
|
json.append("\"status\":\"").append(container.getStatus()).append("\",");
|
||||||
|
|
||||||
// Ports
|
// Ports
|
||||||
InspectContainerResponse inspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
|
InspectContainerResponse inspectResponse =
|
||||||
|
dockerClient.inspectContainerCmd(container.getId()).exec();
|
||||||
json.append("\"ports\":[");
|
json.append("\"ports\":[");
|
||||||
if (container.getPorts() != null && container.getPorts().length > 0) {
|
if (container.getPorts() != null && container.getPorts().length > 0) {
|
||||||
for (int j = 0; j < .length; j+=2) {
|
for (int j = 0; j < .length; j+=2) {
|
||||||
ContainerPort port = container.getPorts()[j];
|
ContainerPort port = container.getPorts()[j];
|
||||||
json.append("[\"");
|
json.append("[\"");
|
||||||
json.append(port.getPrivatePort()).append("->").append(port.getPublicPort()).append("/"+port.getType()+"\",\"");
|
json.append(port.getPrivatePort()).append("->").append(port.getPublicPort()).append("/"+port.getType()+"\",\"");
|
||||||
json.append(port.getIp()).append(",").append((container.getPorts()[j+1]).getIp());
|
json.append(port.getIp()).append(",").append((container.getPorts()[j+1]).getIp());
|
||||||
if (port.getType() != null) {
|
if (port.getType() != null) {
|
||||||
json.append("/").append(port.getType());
|
json.append("/").append(port.getType());
|
||||||
}
|
}
|
||||||
if (port.getPublicPort() != null) {
|
if (port.getPublicPort() != null) {
|
||||||
@ -109,14 +111,15 @@ if (port.getType() != null) {
|
|||||||
// Ports
|
// Ports
|
||||||
String ports = "[]";
|
String ports = "[]";
|
||||||
try {
|
try {
|
||||||
InspectContainerResponse inspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
|
InspectContainerResponse inspectResponse =
|
||||||
if (inspectResponse.getConfig().getExposedPorts() != null) {
|
dockerClient.inspectContainerCmd(container.getId()).exec(); if
|
||||||
ports = inspectResponse.getConfig().getExposedPorts().toString();
|
(inspectResponse.getConfig().getExposedPorts() != null) { ports =
|
||||||
|
inspectResponse.getConfig().getExposedPorts().toString();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Fallback vers les ports runtime si inspect échoue
|
// Fallback vers les ports runtime si inspect échoue
|
||||||
if (container.getPorts() != null && container.getPorts().length > 0) {
|
if (container.getPorts() != null && container.getPorts().length
|
||||||
ports = java.util.Arrays.toString(container.getPorts());
|
> 0) { ports = java.util.Arrays.toString(container.getPorts());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
json.append("\"ports\":\"").append(ports).append("\"");
|
json.append("\"ports\":\"").append(ports).append("\"");
|
||||||
@ -134,7 +137,7 @@ if (port.getType() != null) {
|
|||||||
|
|
||||||
json.append("]");
|
json.append("]");
|
||||||
return json.toString();
|
return json.toString();
|
||||||
}
|
}
|
||||||
public String listAllContainers() {
|
public String listAllContainers() {
|
||||||
StringBuilder json = new StringBuilder();
|
StringBuilder json = new StringBuilder();
|
||||||
List<Container> containers = dockerClient.listContainersCmd()
|
List<Container> containers = dockerClient.listContainersCmd()
|
||||||
@ -146,22 +149,21 @@ if (port.getType() != null) {
|
|||||||
// Ports
|
// Ports
|
||||||
List<String> portsList = new ArrayList<>();
|
List<String> portsList = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
var inspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
|
var inspectResponse =
|
||||||
if (inspectResponse.getConfig().getExposedPorts() != null) {
|
dockerClient.inspectContainerCmd(container.getId()).exec(); if
|
||||||
var exposedPorts = inspectResponse.getConfig().getExposedPorts();
|
(inspectResponse.getConfig().getExposedPorts() != null) { var exposedPorts =
|
||||||
int count = 0;
|
inspectResponse.getConfig().getExposedPorts(); int count = 0; for (var port
|
||||||
for (var port : exposedPorts) {
|
: exposedPorts) { if (count > 0) portsList.append(",");
|
||||||
if (count > 0) portsList.append(",");
|
portsList.append(String.format("\"%s\"",
|
||||||
portsList.append(String.format("\"%s\"", port.toString()));
|
port.toString())); count = 1;
|
||||||
count = 1;
|
|
||||||
}
|
}
|
||||||
portsList.append("]");
|
portsList.append("]");
|
||||||
ports = portsList.toString();
|
ports = portsList.toString();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Fallback vers les ports runtime si inspect échoue
|
// Fallback vers les ports runtime si inspect échoue
|
||||||
if (container.getPorts() != null && container.getPorts().length > 0) {
|
if (container.getPorts() != null && container.getPorts().length
|
||||||
ports = java.util.Arrays.toString(container.getPorts());
|
> 0) { ports = java.util.Arrays.toString(container.getPorts());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,7 +175,7 @@ if (port.getType() != null) {
|
|||||||
}
|
}
|
||||||
json.append("]");
|
json.append("]");
|
||||||
return json.toString();
|
return json.toString();
|
||||||
}*/
|
}*/
|
||||||
public String listAllContainers() { return ""; }
|
public String listAllContainers() { return ""; }
|
||||||
|
|
||||||
public void start(String containerId) {
|
public void start(String containerId) {
|
||||||
|
@ -11,14 +11,13 @@ import java.util.List;
|
|||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class JiService {
|
public class JiService {
|
||||||
|
|
||||||
@Inject
|
@Inject JiRepository jiRepository;
|
||||||
JiRepository jiRepository;
|
|
||||||
|
|
||||||
@Inject
|
@Inject SiteService siteService;
|
||||||
SiteService siteService;
|
|
||||||
|
|
||||||
@Transactional
|
@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);
|
Site site = siteService.getSiteByName(site_name);
|
||||||
Ji ji = new Ji(name, description, address, respo, site);
|
Ji ji = new Ji(name, description, address, respo, site);
|
||||||
jiRepository.persist(ji);
|
jiRepository.persist(ji);
|
||||||
@ -26,23 +25,13 @@ public class JiService {
|
|||||||
return ji;
|
return ji;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@Transactional
|
public List<Ji> getAllJi() { return jiRepository.listAll(); }
|
||||||
public List<Site> saveAllSites(List<Site> sites) {
|
|
||||||
sites.forEach(site -> siteRepository.persist(site));
|
|
||||||
return sites;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public List<Ji> getAllJi() {
|
|
||||||
return jiRepository.listAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Ji getJiByName(String name) {
|
public Ji getJiByName(String name) {
|
||||||
return jiRepository.find("name", name).firstResult();
|
return jiRepository.find("name", name).firstResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Ji getJiById(Long id) {
|
public Ji getJiById(Long id) { return jiRepository.findById(id); }
|
||||||
return jiRepository.findById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void deleteJi(Long id) {
|
public void deleteJi(Long id) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package fr.la_banquise.backend.services;
|
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.Ji;
|
||||||
|
import fr.la_banquise.backend.data.model.Site;
|
||||||
import fr.la_banquise.backend.data.repository.SiteRepository;
|
import fr.la_banquise.backend.data.repository.SiteRepository;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
@ -11,8 +11,7 @@ import java.util.List;
|
|||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class SiteService {
|
public class SiteService {
|
||||||
|
|
||||||
@Inject
|
@Inject SiteRepository siteRepository;
|
||||||
SiteRepository siteRepository;
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public Site createSite(String name, String description, String address) {
|
public Site createSite(String name, String description, String address) {
|
||||||
@ -27,44 +26,37 @@ public class SiteService {
|
|||||||
return sites;
|
return sites;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
public List<Site> getAllSites() {
|
public List<Site> getAllSites() { return siteRepository.listAll(); }
|
||||||
return siteRepository.listAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Site getSiteByName(String name) {
|
public Site getSiteByName(String name) {
|
||||||
return siteRepository.find("name", name).firstResult();
|
return siteRepository.find("name", name).firstResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Site getSiteById(Long id) {
|
public Site getSiteById(Long id) { return siteRepository.findById(id); }
|
||||||
return siteRepository.findById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void addJi(Site site, Ji ji){
|
public void addJi(Site site, Ji ji) {
|
||||||
site.jiInSite.add(ji);
|
site.jiInSite.add(ji);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void removeJi(Site site, Ji ji){
|
public void removeJi(Site site, Ji ji) {
|
||||||
site.jiInSite.remove(ji);
|
site.jiInSite.remove(ji);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean deleteSiteById(Long id) {
|
public boolean deleteSiteById(Long id) {
|
||||||
if (getSiteById(id).jiInSite.isEmpty())
|
if (getSiteById(id).jiInSite.isEmpty()) {
|
||||||
{
|
|
||||||
siteRepository.deleteById(id);
|
siteRepository.deleteById(id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean deleteSiteByName(String name) {
|
public boolean deleteSiteByName(String name) {
|
||||||
Site site = getSiteByName(name);
|
Site site = getSiteByName(name);
|
||||||
if (site.jiInSite.isEmpty())
|
if (site.jiInSite.isEmpty()) {
|
||||||
{
|
|
||||||
siteRepository.delete(site);
|
siteRepository.delete(site);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
package fr.la_banquise.backend.services;
|
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.Instance;
|
||||||
import fr.la_banquise.backend.data.model.User;
|
import fr.la_banquise.backend.data.model.User;
|
||||||
import fr.la_banquise.backend.data.repository.UserRepository;
|
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.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import org.hibernate.annotations.TypeRegistration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UserService
|
* UserService
|
||||||
@ -21,23 +19,19 @@ import jakarta.transaction.Transactional;
|
|||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class UserService {
|
public class UserService {
|
||||||
|
|
||||||
@Inject
|
@Inject UserRepository userRepository;
|
||||||
UserRepository userRepository;
|
|
||||||
|
|
||||||
@Inject
|
@Inject InstanceService instanceService;
|
||||||
InstanceService instanceService;
|
|
||||||
|
|
||||||
public List<User> getAllUsers() {
|
public List<User> getAllUsers() { return userRepository.listAll(); }
|
||||||
return userRepository.listAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
public User getUser(Long id) {
|
public User getUser(Long id) { return userRepository.findById(id); }
|
||||||
return userRepository.findById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public User createUser(UserRequest request) {
|
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);
|
userRepository.persist(user);
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
@ -74,11 +68,10 @@ public class UserService {
|
|||||||
for (UserRequest user : usersRequest.users) {
|
for (UserRequest user : usersRequest.users) {
|
||||||
User newUser = createUser(user);
|
User newUser = createUser(user);
|
||||||
users.add(newUser);
|
users.add(newUser);
|
||||||
instanceService.createInstance(user.instance_name, user.instance_ssh, user.instance_pwd, user.instance_port,
|
instanceService.createInstance(
|
||||||
user.name,
|
user.instance_name, user.instance_ssh, user.instance_pwd,
|
||||||
usersRequest.tpId);
|
user.instance_port, user.name, usersRequest.tpId);
|
||||||
}
|
}
|
||||||
return new ArrayList<User>();
|
return new ArrayList<User>();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user