Skip to content
Snippets Groups Projects
Commit e87cc5ef authored by Martin Weise's avatar Martin Weise
Browse files

fixed weird structure for container-managing service

parent 98f4d4da
No related branches found
No related tags found
3 merge requests!23Sprint results,!10Revert bdb79ac5,!9Resolve "Refactoring: Backend Endpoints"
Showing
with 65 additions and 110 deletions
...@@ -6,16 +6,16 @@ COPY ./pom.xml ./ ...@@ -6,16 +6,16 @@ COPY ./pom.xml ./
RUN mvn -fn -B dependency:go-offline > /dev/null RUN mvn -fn -B dependency:go-offline > /dev/null
COPY ./api ./api COPY src/main/java/api ./api
COPY ./rest-service ./rest-service COPY src/main/java/rest ./rest-service
COPY ./services ./services COPY src/main/java/services ./services
RUN mvn -q clean package > /dev/null RUN mvn -q clean package > /dev/null
###### SECOND STAGE ###### ###### SECOND STAGE ######
FROM openjdk:11-jre-slim as runtime FROM openjdk:11-jre-slim as runtime
COPY --from=build ./rest-service/target/fda-container-managing-service-*.jar ./rest.jar COPY --from=build src/main/java/rest/target/fda-container-managing-service-*.jar ./rest.jar
EXPOSE 9091 EXPOSE 9091
......
...@@ -53,6 +53,31 @@ ...@@ -53,6 +53,31 @@
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-web</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.20</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java-api</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<version>3.2.1</version>
</dependency>
</dependencies> </dependencies>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
......
package at.tuwien.entities;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DatabaseContainer {
@Id
private String id;
}
package at.tuwien;
import at.tuwien.base.BaseIntegrationTest;
import org.junit.jupiter.api.Test;
public class EndpointTest extends BaseIntegrationTest {
@Test
public void contextLoads() {
}
}
\ No newline at end of file
package at.tuwien.base;
import at.tuwien.entities.DatabaseContainer;
import at.tuwien.repositories.MetadataRepository;
import lombok.extern.log4j.Log4j2;
import org.junit.Before;
import org.mockito.BDDMockito;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.web.server.LocalServerPort;
import java.util.List;
@SpringBootTest()
@Log4j2
public abstract class BaseIntegrationTest {
@Value("${server.context-path}")
private String contextPath;
@LocalServerPort
private int port;
@MockBean
MetadataRepository metadataRepository;
@Before
public void beforeBase() {
BDDMockito.when(metadataRepository.findAll())
.thenReturn(List.of(
DatabaseContainer.builder()
.id("deadbeef")
.build()
));
}
}
\ No newline at end of file
package at.tuwien.config;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@Getter
@Configuration
public class DatabaseProperties {
@Value("#{'${fda.db.images}'.split(',')}")
private List<String> databaseImages;
}
package at.tuwien.dto.container; package api.dto.container;
public enum ContainerActionTypeDto { public enum ContainerActionTypeDto {
START, STOP, REMOVE START, STOP, REMOVE
......
package at.tuwien.dto.container; package api.dto.container;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
......
package at.tuwien.dto.container; package api.dto.container;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.time.Instant;
@Getter @Getter
@Setter @Setter
public class ContainerDto { public class ContainerDto {
......
package at.tuwien.dto.container; package api.dto.container;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
......
package at.tuwien.dto.container; package api.dto.container;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
......
package at.tuwien.dto.database; package api.dto.database;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
......
package at.tuwien.dto.database; package api.dto.database;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@Builder
public class CreateDatabaseContainerDto { public class CreateDatabaseContainerDto {
@JsonProperty("container_name")
private String containerName; private String containerName;
@JsonProperty("database_name")
private String databaseName; private String databaseName;
} }
package at.tuwien.dto.database; package api.dto.database;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
......
package at.tuwien; package rest;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
...@@ -6,7 +6,7 @@ import org.springframework.context.annotation.ComponentScan; ...@@ -6,7 +6,7 @@ import org.springframework.context.annotation.ComponentScan;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication @SpringBootApplication
@ComponentScan(basePackages = "at.tuwien") @ComponentScan(basePackages = "services.entities")
@EnableSwagger2 @EnableSwagger2
public class FdaContainerManagingApplication { public class FdaContainerManagingApplication {
......
package at.tuwien.config; package rest.config;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
......
package at.tuwien.endpoints; package rest.endpoints;
import at.tuwien.dto.container.ContainerActionTypeDto; import api.dto.container.ContainerActionTypeDto;
import at.tuwien.dto.container.DatabaseContainerBriefDto; import api.dto.container.DatabaseContainerBriefDto;
import at.tuwien.dto.database.CreateDatabaseContainerDto; import api.dto.container.DatabaseContainerDto;
import at.tuwien.dto.database.CreateDatabaseResponseDto; import api.dto.database.CreateDatabaseContainerDto;
import at.tuwien.mapper.DatabaseContainerMapper; import api.dto.database.CreateDatabaseResponseDto;
import at.tuwien.model.DatabaseContainer;
import at.tuwien.service.ContainerService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import services.entities.DatabaseContainer;
import services.mapper.DatabaseContainerMapper;
import services.service.ContainerService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -54,8 +55,8 @@ public class DatabaseContainerController { ...@@ -54,8 +55,8 @@ public class DatabaseContainerController {
@GetMapping("/database/{id}") @GetMapping("/database/{id}")
@ApiOperation("Get info of database container") @ApiOperation("Get info of database container")
public DatabaseContainer findById(@RequestParam String id) { public DatabaseContainerDto findById(@RequestParam String id) {
return containerService.getDatabaseById(id); return databaseContaineMapper.databaseContainerToDataBaseContainerDto(containerService.getDatabaseById(id));
} }
......
package at.tuwien.config; package services.config;
import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.core.DefaultDockerClientConfig; import com.github.dockerjava.core.DefaultDockerClientConfig;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment