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

swagger ui not working

parent 922b4a77
Branches
Tags
No related merge requests found
Showing with 65 additions and 18 deletions
package at.tuwien.api.dto.container;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.time.Instant;
@Getter
@Setter
@Builder
public class DatabaseContainerBriefDto {
private String id;
private Instant created;
}
......@@ -27,6 +27,7 @@
<mapstruct.version>1.4.2.Final</mapstruct.version>
<docker.version>3.2.7</docker.version>
<testcontainers.version>1.15.2</testcontainers.version>
<swagger.version>2.8.0</swagger.version>
</properties>
<dependencies>
......
......@@ -10,7 +10,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
@EntityScan(basePackages = {"at.tuwien.entities"})
@EntityScan(basePackages = {"at.tuwien.entity"})
@EnableSwagger2
public class FdaContainerManagingApplication {
......
......@@ -8,10 +8,12 @@ import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.Collections;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket swaggerConfiguration() {
......@@ -19,7 +21,7 @@ public class SwaggerConfig {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.paths(PathSelectors.ant("/api/*"))
.apis(RequestHandlerSelectors.basePackage("at.tuwien.controller"))
.apis(RequestHandlerSelectors.basePackage("at.tuwien.endpoints"))
.build()
.apiInfo(apiInfo());
}
......
package at.tuwien.endpoints;
import at.tuwien.api.dto.container.ContainerActionTypeDto;
import at.tuwien.api.dto.container.ContainerChangeDto;
import at.tuwien.api.dto.container.DatabaseContainerBriefDto;
import at.tuwien.api.dto.container.DatabaseContainerDto;
import at.tuwien.api.dto.database.DatabaseContainerCreateResponseDto;
import at.tuwien.api.dto.database.DatabaseContainerCreateRequestDto;
import at.tuwien.entity.DatabaseContainer;
import at.tuwien.exception.ContainerNotFoundException;
import at.tuwien.exception.DockerClientException;
import at.tuwien.exception.ImageNotFoundException;
import at.tuwien.mapper.DatabaseContainerMapper;
import at.tuwien.service.ContainerService;
......@@ -20,6 +21,8 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
import static at.tuwien.api.dto.container.ContainerActionTypeDto.*;
@Log4j2
@RestController
@RequestMapping("/api")
......@@ -27,14 +30,11 @@ public class DatabaseContainerController {
private final ContainerService containerService;
private final DatabaseContainerMapper containerMapper;
private final DatabaseContainerMapper databaseContaineMapper;
@Autowired
public DatabaseContainerController(ContainerService containerService, DatabaseContainerMapper containerMapper,
DatabaseContainerMapper databaseContaineMapper) {
public DatabaseContainerController(ContainerService containerService, DatabaseContainerMapper containerMapper) {
this.containerMapper = containerMapper;
this.containerService = containerService;
this.databaseContaineMapper = databaseContaineMapper;
}
@GetMapping("/database")
......@@ -43,7 +43,7 @@ public class DatabaseContainerController {
final List<DatabaseContainer> containers = containerService.getAll();
return ResponseEntity.ok()
.body(containers.stream()
.map(databaseContaineMapper::databaseContainerToDataBaseContainerBriefDto)
.map(containerMapper::databaseContainerToDataBaseContainerBriefDto)
.collect(Collectors.toList()));
}
......@@ -62,13 +62,25 @@ public class DatabaseContainerController {
public ResponseEntity<DatabaseContainerDto> findById(@RequestParam String id) throws ContainerNotFoundException {
final DatabaseContainer container = containerService.getById(id);
return ResponseEntity.ok()
.body(databaseContaineMapper.databaseContainerToDataBaseContainerDto(container));
.body(containerMapper.databaseContainerToDataBaseContainerDto(container));
}
@PutMapping("/database/{id}")
@ApiOperation("Update a database container")
public ResponseEntity<DatabaseContainerBriefDto> change(@RequestParam String id, @RequestBody ContainerActionTypeDto data) {
return ResponseEntity.status(HttpStatus.ACCEPTED).build();
public ResponseEntity<DatabaseContainerBriefDto> change(@RequestParam String id, @RequestBody ContainerChangeDto changeDto) throws ContainerNotFoundException, DockerClientException {
final DatabaseContainer container;
if (changeDto.getAction().equals(START)) {
container = containerService.start(id);
} else if (changeDto.getAction().equals(STOP)) {
container = containerService.stop(id);
} else if (changeDto.getAction().equals(REMOVE)) {
container = containerService.remove(id);
} else {
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.build();
}
return ResponseEntity.status(HttpStatus.ACCEPTED)
.body(containerMapper.databaseContainerToDataBaseContainerBriefDto(container));
}
@DeleteMapping("/database/{id}")
......
spring:
main.banner-mode: off
datasource:
url: jdbc:postgresql://localhost:5432/fda
driver-class-name: org.postgresql.Driver
username: postgres
password: postgres
jpa:
show-sql: true
properties:
hibernate:
ddl-auto: create-drop
dialect: org.hibernate.dialect.PostgreSQLDialect
hibernate.ddl-auto: none
hibernate.show-sql: true
application:
name: fda-container-managing
server.port: 9091
logging:
pattern.console: "%d %highlight(%-5level) %msg%n"
level:
root: warn
at.: debug
eureka:
client:
registerWithEureka: false
fetchRegistry: false
\ No newline at end of file
......@@ -3,7 +3,9 @@ package at.tuwien.config;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.model.HostConfig;
import com.github.dockerjava.api.model.RestartPolicy;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.DockerClientConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -18,6 +20,10 @@ public class DockerConfig {
@Bean
public DockerClient dockerClientConfiguration() {
return DockerClientBuilder.getInstance("unix:///var/run/docker.sock").build();
final DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder()
.withDockerHost("unix:///var/run/docker.sock")
.build();
return DockerClientBuilder.getInstance(config)
.build();
}
}
......@@ -122,16 +122,16 @@ public class ContainerService {
* Starts a database container by given container ID
*
* @param containerId The container ID
* @return True if state changed
* @return The container
*/
public boolean start(String containerId) throws ContainerNotFoundException, DockerClientException {
public DatabaseContainer start(String containerId) throws ContainerNotFoundException, DockerClientException {
final DatabaseContainer container = getById(containerId);
try {
dockerClient.startContainerCmd(container.getContainerId()).exec();
} catch (NotFoundException | NotModifiedException e) {
throw new DockerClientException("docker client failed", e);
}
return true;
return container;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment