diff options
Diffstat (limited to 'src/main/java/net/libertacasa/pubsh/web/WebApplication.java')
-rw-r--r-- | src/main/java/net/libertacasa/pubsh/web/WebApplication.java | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java index faef657..ca6ea7e 100644 --- a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java +++ b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java @@ -1,6 +1,7 @@ package net.libertacasa.pubsh.web; import java.security.Principal; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -21,12 +22,15 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.DeleteMapping; //import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; //import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.github.dockerjava.api.model.Container; import com.github.dockerjava.api.model.Image; +import java.util.Random; @SpringBootApplication @@ -81,7 +85,17 @@ public class WebApplication { //System.out.println(containers); model.addAttribute("docker_images", images); - model.addAttribute("docker_containers", containers); + model.addAttribute("docker_containers", containers); + + ArrayList<String> availableOs = new ArrayList<String>(); + availableOs.add("archlinux"); + availableOs.add("opensuse-leap"); + availableOs.add("opensuse-tumbleweed"); + availableOs.add("ubuntu"); + model.addAttribute("availableOs", availableOs); + model.addAttribute("osChoice", new String()); + + return("portal"); } @@ -104,6 +118,30 @@ public class WebApplication { return("redirect:/portal"); } + @PostMapping("/frontend/container/add") + public static String addContainer(@PathVariable String osChoice, HttpServletRequest request, Model model) { + KeycloakAuthenticationToken principal = (KeycloakAuthenticationToken) request.getUserPrincipal(); + String username= null; + String userid = principal.getName(); + IDToken token = principal.getAccount().getKeycloakSecurityContext().getIdToken(); + Map<String, Object> customClaims = token.getOtherClaims(); + username = String.valueOf(customClaims.get("username")); + + model.addAttribute("osChoice", osChoice); + + + System.out.printf("New container with OS %s requested by %s (%s)", osChoice, userid, username); + + Random rand = new Random(); + Integer randomInt = rand.nextInt(9999999-1111); + Integer count = randomInt; + + //Docker.buildImage(username, osChoice, count); + + + return("redirect:/portal"); + } + @GetMapping(path = "/logout") public String logout(HttpServletRequest request) throws ServletException { request.logout(); |