summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler')
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java19
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java54
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java217
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java58
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java57
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java38
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java61
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java152
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java24
13 files changed, 776 insertions, 0 deletions
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java
new file mode 100644
index 00000000..c72e5fe8
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java
@@ -0,0 +1,19 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+public class ApiUtil {
+ public static void setExampleResponse(NativeWebRequest req, String contentType, String example) {
+ try {
+ HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class);
+ res.setCharacterEncoding("UTF-8");
+ res.addHeader("Content-Type", contentType);
+ res.getWriter().print(example);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java
new file mode 100644
index 00000000..cdc2bfd7
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java
@@ -0,0 +1,54 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "bwlp", description = "the bwlp API")
+public interface BwlpApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /bwlp/container/clusterimages : List all bwLehrpool container images
+ *
+ * @return Successful operation (status code 200)
+ * or Failed to retrieve container images (status code 500)
+ */
+
+ @ApiOperation(value = "List all bwLehrpool container images", nickname = "bwlpGetClusterImagesList", notes = "", tags={ "container", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to retrieve container images") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/bwlp/container/clusterimages",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> bwlpGetClusterImagesList() {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java
new file mode 100644
index 00000000..2450618b
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class BwlpApiController implements BwlpApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public BwlpApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java
new file mode 100644
index 00000000..19e7f5eb
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java
@@ -0,0 +1,217 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import java.util.UUID;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "do", description = "the do API")
+public interface DoApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * POST /do/delete-images : Delete old images on the bwLehrpool-Server
+ *
+ * @return Successful operation (status code 200)
+ * or Failed to delete old images (status code 500)
+ */
+
+ @ApiOperation(value = "Delete old images on the bwLehrpool-Server", nickname = "doDeleteOldImagesOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to delete old images") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/delete-images",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doDeleteOldImagesOnFileserver() {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/mailtest : Send a test mail from the bwLehrpool-Server
+ *
+ * @param host Domain of SMTP mail server (required)
+ * @param port Port of SMTP mail server (required)
+ * @param ssl Encryption mode for the SMTP mail server (required)
+ * @param serverName Name of the SMTP mail server (required)
+ * @param username Username for the SMTP mail server (required)
+ * @param password Password for the SMTP mail server (required)
+ * @param senderAddress Sender address for the test mail (required)
+ * @param recipient Recipient for the test mail (required)
+ * @param replyTo Reply-To address for the test mail (required)
+ * @return Successful operation (status code 200)
+ * or Failed to send test mail (status code 400)
+ */
+
+ @ApiOperation(value = "Send a test mail from the bwLehrpool-Server", nickname = "doMailtestOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 400, message = "Failed to send test mail") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/mailtest",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doMailtestOnFileserver(@NotNull @ApiParam(value = "Domain of SMTP mail server", required = true) @Valid @RequestParam(value = "host", required = true) String host
+
+,@NotNull @ApiParam(value = "Port of SMTP mail server", required = true) @Valid @RequestParam(value = "port", required = true) Integer port
+
+,@NotNull @ApiParam(value = "Encryption mode for the SMTP mail server", required = true, allowableValues = "NONE, IMPLICIT, EXPLICIT") @Valid @RequestParam(value = "ssl", required = true) String ssl
+
+,@NotNull @ApiParam(value = "Name of the SMTP mail server", required = true) @Valid @RequestParam(value = "serverName", required = true) String serverName
+
+,@NotNull @ApiParam(value = "Username for the SMTP mail server", required = true) @Valid @RequestParam(value = "username", required = true) String username
+
+,@NotNull @ApiParam(value = "Password for the SMTP mail server", required = true) @Valid @RequestParam(value = "password", required = true) String password
+
+,@NotNull @ApiParam(value = "Sender address for the test mail", required = true) @Valid @RequestParam(value = "senderAddress", required = true) String senderAddress
+
+,@NotNull @ApiParam(value = "Recipient for the test mail", required = true) @Valid @RequestParam(value = "recipient", required = true) String recipient
+
+,@NotNull @ApiParam(value = "Reply-To address for the test mail", required = true) @Valid @RequestParam(value = "replyTo", required = true) String replyTo
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/query-image-check : Query image check on the bwLehrpool-Server
+ *
+ * @param versionid Query image check for specified image version (optional)
+ * @return Successful operation (status code 200)
+ * or Failed to query image check (status code 500)
+ */
+
+ @ApiOperation(value = "Query image check on the bwLehrpool-Server", nickname = "doQueryImageCheckOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to query image check") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/query-image-check",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> doQueryImageCheckOnFileserver(@ApiParam(value = "Query image check for specified image version") @Valid @RequestParam(value = "versionid", required = false) UUID versionid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/reset-mail-templates : Rest mail templates on the bwLehrpool-Server
+ *
+ * @return Successful operation (status code 200)
+ * or Failed to reset mail templates (status code 500)
+ */
+
+ @ApiOperation(value = "Rest mail templates on the bwLehrpool-Server", nickname = "doResetMailTemplatesOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to reset mail templates") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/reset-mail-templates",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doResetMailTemplatesOnFileserver() {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/scan-orphaned-files : Scan orphaned files on the bwLehrpool-Server
+ *
+ * @param action Action for orphaned files (optional)
+ * @return Successful operation (status code 200)
+ * or Failed to scan orphaned files (status code 500)
+ */
+
+ @ApiOperation(value = "Scan orphaned files on the bwLehrpool-Server", nickname = "doScanOrphanedFilesOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to scan orphaned files") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/scan-orphaned-files",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> doScanOrphanedFilesOnFileserver(@ApiParam(value = "Action for orphaned files", allowableValues = "delete") @Valid @RequestParam(value = "action", required = false) String action
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/start-image-check : Start image check on the bwLehrpool-Server
+ *
+ * @param versionid Image version for the image check (required)
+ * @param hash Check hashes of images (required)
+ * @param update Update state of images (required)
+ * @return Successful operation (status code 200)
+ * or Failed to start image check (status code 500)
+ */
+
+ @ApiOperation(value = "Start image check on the bwLehrpool-Server", nickname = "doStartImageCheckOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to start image check") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/start-image-check",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doStartImageCheckOnFileserver(@NotNull @ApiParam(value = "Image version for the image check", required = true) @Valid @RequestParam(value = "versionid", required = true) UUID versionid
+
+,@NotNull @ApiParam(value = "Check hashes of images", required = true) @Valid @RequestParam(value = "hash", required = true) Boolean hash
+
+,@NotNull @ApiParam(value = "Update state of images", required = true) @Valid @RequestParam(value = "update", required = true) Boolean update
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java
new file mode 100644
index 00000000..b34f8d5b
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class DoApiController implements DoApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public DoApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java
new file mode 100644
index 00000000..b73b6e0f
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java
@@ -0,0 +1,58 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import java.util.UUID;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "image", description = "the image API")
+public interface ImageApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /image/container/{uuid}/metadata : Get metadata for specified container image
+ *
+ * @param uuid UUID of the container (required)
+ * @return Successful operation (status code 200)
+ * or Failed to retrieve container metadata (status code 500)
+ */
+
+ @ApiOperation(value = "Get metadata for specified container image", nickname = "getContainerImageMetadata", notes = "", tags={ "container", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to retrieve container metadata") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/image/container/{uuid}/metadata",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> getContainerImageMetadata(@ApiParam(value = "UUID of the container", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java
new file mode 100644
index 00000000..55337159
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class ImageApiController implements ImageApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public ImageApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java
new file mode 100644
index 00000000..258ef11a
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java
@@ -0,0 +1,57 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import com.fasterxml.jackson.databind.Module;
+import org.openapitools.jackson.nullable.JsonNullableModule;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.ExitCodeGenerator;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@SpringBootApplication
+@ComponentScan(basePackages = {"org.openslx.bwlp.sat.api.handler", "org.openslx.bwlp.sat.api.handler" , "org.openapitools.configuration"})
+public class OpenAPI2SpringBoot implements CommandLineRunner {
+
+ @Override
+ public void run(String... arg0) throws Exception {
+ if (arg0.length > 0 && arg0[0].equals("exitcode")) {
+ throw new ExitException();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ new SpringApplication(OpenAPI2SpringBoot.class).run(args);
+ }
+
+ static class ExitException extends RuntimeException implements ExitCodeGenerator {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int getExitCode() {
+ return 10;
+ }
+
+ }
+
+ @Bean
+ public WebMvcConfigurer webConfigurer() {
+ return new WebMvcConfigurer() {
+ /*@Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**")
+ .allowedOrigins("*")
+ .allowedMethods("*")
+ .allowedHeaders("Content-Type");
+ }*/
+ };
+ }
+
+ @Bean
+ public Module jsonNullableModule() {
+ return new JsonNullableModule();
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java
new file mode 100644
index 00000000..cf996787
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java
@@ -0,0 +1,38 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import com.fasterxml.jackson.databind.util.StdDateFormat;
+
+import java.text.DateFormat;
+import java.text.FieldPosition;
+import java.text.ParsePosition;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+public class RFC3339DateFormat extends DateFormat {
+ private static final long serialVersionUID = 1L;
+ private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");
+
+ private final StdDateFormat fmt = new StdDateFormat()
+ .withTimeZone(TIMEZONE_Z)
+ .withColonInTimeZone(true);
+
+ public RFC3339DateFormat() {
+ this.calendar = new GregorianCalendar();
+ }
+
+ @Override
+ public Date parse(String source, ParsePosition pos) {
+ return fmt.parse(source, pos);
+ }
+
+ @Override
+ public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
+ return fmt.format(date, toAppendTo, fieldPosition);
+ }
+
+ @Override
+ public Object clone() {
+ return this;
+ }
+} \ No newline at end of file
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java
new file mode 100644
index 00000000..141058c2
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java
@@ -0,0 +1,61 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import org.openslx.bwlp.sat.api.model.StatusFileserver;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "status", description = "the status API")
+public interface StatusApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /status/fileserver : Get bwLehrpool-Server status
+ *
+ * @return Successful operation (status code 200)
+ */
+
+ @ApiOperation(value = "Get bwLehrpool-Server status", nickname = "getFileserverStatus", notes = "", response = StatusFileserver.class, tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation", response = StatusFileserver.class) })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/status/fileserver",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<StatusFileserver> getFileserverStatus() {
+ getRequest().ifPresent(request -> {
+ for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+ if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
+ String exampleString = "{ \"activeUploads\" : 0, \"activeDownloads\" : 6 }";
+ ApiUtil.setExampleResponse(request, "application/json", exampleString);
+ break;
+ }
+ }
+ });
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java
new file mode 100644
index 00000000..3b486073
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class StatusApiController implements StatusApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public StatusApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java
new file mode 100644
index 00000000..cf35d745
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java
@@ -0,0 +1,152 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import java.util.UUID;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImages;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "vmchooser", description = "the vmchooser API")
+public interface VmchooserApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /vmchooser/lecture/{uuid}/imagemeta : Get metadata of virtual mchine image for specified lecture
+ *
+ * @param uuid UUID of the lecture (required)
+ * @return Successful operation (status code 200)
+ * or Faild to retrieve metadata (status code 500)
+ */
+
+ @ApiOperation(value = "Get metadata of virtual mchine image for specified lecture", nickname = "vmchooserGetLectureImageMeta", notes = "", tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Faild to retrieve metadata") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/lecture/{uuid}/imagemeta",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> vmchooserGetLectureImageMeta(@ApiParam(value = "UUID of the lecture", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * GET /vmchooser/lecture/{uuid}/metadata : Get metadata for specified lecture
+ *
+ * @param uuid UUID of the lecture (required)
+ * @return Successful operation (status code 200)
+ * or Faild to retrieve metadata (status code 500)
+ */
+
+ @ApiOperation(value = "Get metadata for specified lecture", nickname = "vmchooserGetLectureMetadata", notes = "", tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Faild to retrieve metadata") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/lecture/{uuid}/metadata",
+ produces = { "application/gzip" }
+ )
+ default ResponseEntity<Void> vmchooserGetLectureMetadata(@ApiParam(value = "UUID of the lecture", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * GET /vmchooser/lecture/{uuid}/netrules : Get network rules for specified lecture
+ *
+ * @param uuid UUID of the lecture (required)
+ * @return Successful operation (status code 200)
+ * or Faild to retrieve network rules (status code 500)
+ */
+
+ @ApiOperation(value = "Get network rules for specified lecture", nickname = "vmchooserGetLectureNetRules", notes = "", tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Faild to retrieve network rules") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/lecture/{uuid}/netrules",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> vmchooserGetLectureNetRules(@ApiParam(value = "UUID of the lecture", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * GET /vmchooser/list : List all bwLehrpool virtual machine images
+ *
+ * @param locations IDs of locations that need to be considered for the filter (optional)
+ * @param exams Include exam events for the filter (optional, default to false)
+ * @return Successful operation (status code 200)
+ * or Failed to retrieve list (status code 500)
+ */
+
+ @ApiOperation(value = "List all bwLehrpool virtual machine images", nickname = "vmchooserGetList", notes = "", response = VirtualMachineImages.class, tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation", response = VirtualMachineImages.class),
+
+ @ApiResponse(code = 500, message = "Failed to retrieve list") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/list",
+ produces = { "application/xml" }
+ )
+ default ResponseEntity<VirtualMachineImages> vmchooserGetList(@ApiParam(value = "IDs of locations that need to be considered for the filter") @Valid @RequestParam(value = "locations", required = false) List<Integer> locations
+
+,@ApiParam(value = "Include exam events for the filter", defaultValue = "false") @Valid @RequestParam(value = "exams", required = false, defaultValue = "false") Boolean exams
+
+) {
+ getRequest().ifPresent(request -> {
+ for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+ if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
+ String exampleString = "<settings> </settings>";
+ ApiUtil.setExampleResponse(request, "application/xml", exampleString);
+ break;
+ }
+ }
+ });
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java
new file mode 100644
index 00000000..1a717861
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class VmchooserApiController implements VmchooserApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public VmchooserApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}