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

WIP

parent b03577ca
No related branches found
No related tags found
6 merge requests!231CI: Remove build for log-service,!228Better error message handling in the frontend,!223Release of version 1.4.0,!177Updated keycloak realms to only allow creation of containers for developers,...,!176Hotfix views,!165Resolve "Migrate to OpenSearch"
Showing
with 38 additions and 65 deletions
...@@ -94,6 +94,11 @@ ...@@ -94,6 +94,11 @@
<artifactId>spring-data-opensearch</artifactId> <artifactId>spring-data-opensearch</artifactId>
<version>${opensearch-client.version}</version> <version>${opensearch-client.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.opensearch.client</groupId>
<artifactId>spring-data-opensearch-starter</artifactId>
<version>${opensearch-client.version}</version>
</dependency>
<!-- Entity and API --> <!-- Entity and API -->
<dependency> <dependency>
<groupId>at.tuwien</groupId> <groupId>at.tuwien</groupId>
......
...@@ -4,16 +4,15 @@ import org.springframework.boot.SpringApplication; ...@@ -4,16 +4,15 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableJpaAuditing @EnableJpaAuditing
@EnableTransactionManagement @EnableTransactionManagement
@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
@EntityScan(basePackages = {"at.tuwien.entities"}) @EntityScan(basePackages = {"at.tuwien.entities"})
@EnableJpaRepositories(basePackages = {"at.tuwien.repository.mdb"})
@SpringBootApplication(exclude = {ElasticsearchDataAutoConfiguration.class})
public class DbrepoContainerManagingApplication { public class DbrepoContainerManagingApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -30,7 +30,7 @@ spring: ...@@ -30,7 +30,7 @@ spring:
opensearch: opensearch:
username: admin username: admin
password: admin password: admin
uris: http://localhost:9200 uris: localhost:9200
management.endpoints.web.exposure.include: health,info,prometheus management.endpoints.web.exposure.include: health,info,prometheus
springdoc.swagger-ui.enabled: true springdoc.swagger-ui.enabled: true
server: server:
......
...@@ -32,7 +32,7 @@ spring: ...@@ -32,7 +32,7 @@ spring:
opensearch: opensearch:
username: "${SEARCH_USERNAME}" username: "${SEARCH_USERNAME}"
password: "${SEARCH_PASSWORD}" password: "${SEARCH_PASSWORD}"
uris: http://search-db:9200 uris: search-db:9200
management.endpoints.web.exposure.include: health,info,prometheus management.endpoints.web.exposure.include: health,info,prometheus
springdoc.swagger-ui.enabled: true springdoc.swagger-ui.enabled: true
server: server:
......
...@@ -2,12 +2,11 @@ package at.tuwien.endpoint; ...@@ -2,12 +2,11 @@ package at.tuwien.endpoint;
import at.tuwien.BaseUnitTest; import at.tuwien.BaseUnitTest;
import at.tuwien.api.container.*; import at.tuwien.api.container.*;
import at.tuwien.config.DockerConfig;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.endpoints.ContainerEndpoint; import at.tuwien.endpoints.ContainerEndpoint;
import at.tuwien.entities.container.Container; import at.tuwien.entities.container.Container;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.mdb.UserRepository;
import at.tuwien.service.impl.ContainerServiceImpl; import at.tuwien.service.impl.ContainerServiceImpl;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
......
package at.tuwien.endpoint; package at.tuwien.endpoint;
import at.tuwien.BaseUnitTest; import at.tuwien.BaseUnitTest;
import at.tuwien.api.container.image.ImageBriefDto;
import at.tuwien.api.container.image.ImageChangeDto;
import at.tuwien.api.container.image.ImageCreateDto;
import at.tuwien.api.container.image.ImageDto;
import at.tuwien.config.DockerConfig; import at.tuwien.config.DockerConfig;
import at.tuwien.config.DockerDaemonConfig;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.endpoints.ImageEndpoint; import at.tuwien.endpoints.ImageEndpoint;
import at.tuwien.entities.container.image.ContainerImage;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.mdb.RealmRepository;
import at.tuwien.repository.jpa.RealmRepository; import at.tuwien.repository.mdb.UserRepository;
import at.tuwien.repository.jpa.UserRepository;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
...@@ -22,20 +15,10 @@ import org.junit.jupiter.api.extension.ExtendWith; ...@@ -22,20 +15,10 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.test.context.support.WithAnonymousUser;
import org.springframework.security.test.context.support.WithMockUser; import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.security.Principal;
import java.util.List;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.any; import static org.mockito.Mockito.any;
import static org.mockito.Mockito.when;
@Log4j2 @Log4j2
@ExtendWith(SpringExtension.class) @ExtendWith(SpringExtension.class)
......
...@@ -10,7 +10,7 @@ import at.tuwien.config.ReadyConfig; ...@@ -10,7 +10,7 @@ import at.tuwien.config.ReadyConfig;
import at.tuwien.endpoints.ImageEndpoint; import at.tuwien.endpoints.ImageEndpoint;
import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.container.image.ContainerImage;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.mdb.UserRepository;
import at.tuwien.service.impl.ImageServiceImpl; import at.tuwien.service.impl.ImageServiceImpl;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
......
...@@ -7,10 +7,10 @@ import at.tuwien.config.DockerConfig; ...@@ -7,10 +7,10 @@ import at.tuwien.config.DockerConfig;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.entities.container.Container; import at.tuwien.entities.container.Container;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.repository.jpa.ContainerRepository; import at.tuwien.repository.mdb.ContainerRepository;
import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.mdb.ImageRepository;
import at.tuwien.repository.jpa.RealmRepository; import at.tuwien.repository.mdb.RealmRepository;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.mdb.UserRepository;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
......
...@@ -4,9 +4,9 @@ import at.tuwien.BaseUnitTest; ...@@ -4,9 +4,9 @@ import at.tuwien.BaseUnitTest;
import at.tuwien.api.container.image.ImageCreateDto; import at.tuwien.api.container.image.ImageCreateDto;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.repository.jpa.ContainerRepository; import at.tuwien.repository.mdb.ContainerRepository;
import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.mdb.ImageRepository;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.mdb.UserRepository;
import at.tuwien.service.impl.ImageServiceImpl; import at.tuwien.service.impl.ImageServiceImpl;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.RandomUtils;
......
...@@ -6,7 +6,7 @@ import at.tuwien.api.container.image.ImageCreateDto; ...@@ -6,7 +6,7 @@ import at.tuwien.api.container.image.ImageCreateDto;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.container.image.ContainerImage;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.mdb.ImageRepository;
import at.tuwien.service.impl.ImageServiceImpl; import at.tuwien.service.impl.ImageServiceImpl;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
......
...@@ -3,8 +3,8 @@ package at.tuwien.service; ...@@ -3,8 +3,8 @@ package at.tuwien.service;
import at.tuwien.BaseUnitTest; import at.tuwien.BaseUnitTest;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.exception.ImageNotFoundException; import at.tuwien.exception.ImageNotFoundException;
import at.tuwien.repository.jpa.ImageRepository; import at.tuwien.repository.mdb.ImageRepository;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.mdb.UserRepository;
import at.tuwien.service.impl.ImageServiceImpl; import at.tuwien.service.impl.ImageServiceImpl;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
...@@ -15,7 +15,6 @@ import org.springframework.boot.test.context.SpringBootTest; ...@@ -15,7 +15,6 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.transaction.UnexpectedRollbackException;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
......
...@@ -4,8 +4,8 @@ import at.tuwien.BaseUnitTest; ...@@ -4,8 +4,8 @@ import at.tuwien.BaseUnitTest;
import at.tuwien.config.ReadyConfig; import at.tuwien.config.ReadyConfig;
import at.tuwien.entities.user.User; import at.tuwien.entities.user.User;
import at.tuwien.exception.UserNotFoundException; import at.tuwien.exception.UserNotFoundException;
import at.tuwien.repository.jpa.RealmRepository; import at.tuwien.repository.mdb.RealmRepository;
import at.tuwien.repository.jpa.UserRepository; import at.tuwien.repository.mdb.UserRepository;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
......
...@@ -2,6 +2,7 @@ package at.tuwien.config; ...@@ -2,6 +2,7 @@ package at.tuwien.config;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.opensearch.client.RestHighLevelClient; import org.opensearch.client.RestHighLevelClient;
import org.opensearch.data.client.orhlc.AbstractOpenSearchConfiguration;
import org.opensearch.data.client.orhlc.ClientConfiguration; import org.opensearch.data.client.orhlc.ClientConfiguration;
import org.opensearch.data.client.orhlc.RestClients; import org.opensearch.data.client.orhlc.RestClients;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -10,7 +11,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -10,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
@Log4j2 @Log4j2
@Configuration @Configuration
public class OpenSearchConfig { public class OpenSearchConfig extends AbstractOpenSearchConfiguration {
@Value("${spring.opensearch.uris}") @Value("${spring.opensearch.uris}")
private String openSearchEndpoint; private String openSearchEndpoint;
...@@ -22,8 +23,9 @@ public class OpenSearchConfig { ...@@ -22,8 +23,9 @@ public class OpenSearchConfig {
private String openSearchPassword; private String openSearchPassword;
@Bean @Bean
public RestHighLevelClient openSearchClient() { @Override
log.debug("openSearch endpoint={}", openSearchEndpoint); public RestHighLevelClient opensearchClient() {
log.debug("open search endpoint: {}", openSearchEndpoint);
final ClientConfiguration clientConfiguration = ClientConfiguration.builder() final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo(openSearchEndpoint) .connectedTo(openSearchEndpoint)
.withBasicAuth(openSearchUsername, openSearchPassword) .withBasicAuth(openSearchUsername, openSearchPassword)
...@@ -31,5 +33,4 @@ public class OpenSearchConfig { ...@@ -31,5 +33,4 @@ public class OpenSearchConfig {
return RestClients.create(clientConfiguration) return RestClients.create(clientConfiguration)
.rest(); .rest();
} }
} }
\ No newline at end of file
package at.tuwien.repository.jpa;
import at.tuwien.entities.user.Realm;
import at.tuwien.entities.user.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
import java.util.UUID;
@Repository
public interface RealmRepository extends JpaRepository<Realm, UUID> {
}
package at.tuwien.repository.jpa; package at.tuwien.repository.mdb;
import at.tuwien.entities.container.Container; import at.tuwien.entities.container.Container;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
......
package at.tuwien.repository.jpa; package at.tuwien.repository.mdb;
import at.tuwien.entities.database.Database; import at.tuwien.entities.database.Database;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
......
package at.tuwien.repository.jpa; package at.tuwien.repository.mdb;
import at.tuwien.entities.identifier.Identifier; import at.tuwien.entities.identifier.Identifier;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
......
package at.tuwien.repository.jpa; package at.tuwien.repository.mdb;
import at.tuwien.entities.container.image.ContainerImageDate; import at.tuwien.entities.container.image.ContainerImageDate;
import at.tuwien.entities.container.image.ContainerImageDateKey;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface ImageDateRepository extends JpaRepository<ContainerImageDate, Long> { public interface ImageDateRepository extends JpaRepository<ContainerImageDate, ContainerImageDateKey> {
} }
package at.tuwien.repository.jpa; package at.tuwien.repository.mdb;
import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.container.image.ContainerImage;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
......
package at.tuwien.repository.jpa; package at.tuwien.repository.mdb;
import at.tuwien.entities.user.Realm; import at.tuwien.entities.user.Realm;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment