summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/libertacasa/pubsh/web/WebApplication.java')
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/WebApplication.java40
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();