diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java index 6c6dbe7c05c00ceb4b4f1b4e46e4963b9b58fb13..7a18019dc541b91469d221fd95e6088a52823b3d 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java @@ -1,14 +1,12 @@ package at.tuwien.api.container; -import at.tuwien.api.database.DatabaseBriefDto; import at.tuwien.api.user.UserBriefDto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; import java.time.Instant; @@ -45,9 +43,6 @@ public class ContainerBriefDto { @Schema(example = "true") private Boolean running; - @org.springframework.data.annotation.Transient - private DatabaseBriefDto database; - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; } diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java deleted file mode 100644 index 2559e8c65555789af6bc260f6b050c9fb6e6521d..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package at.tuwien.api.container; - -import io.swagger.v3.oas.annotations.Parameter; -import lombok.*; - -import jakarta.validation.constraints.NotNull; -import lombok.extern.jackson.Jacksonized; - -@Getter -@Setter -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Jacksonized -@ToString -public class ContainerChangeDto { - - @NotNull - @Parameter(required = true, example = "start") - private ContainerActionTypeDto action; - -} diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java index 50159cb0e148b477339d1538162020b90d309248..01aae6bbbb7218557b25d927240259295362f45a 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java @@ -1,9 +1,8 @@ package at.tuwien.api.container; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; +import lombok.*; import lombok.extern.jackson.Jacksonized; @Getter @@ -20,11 +19,21 @@ public class ContainerCreateRequestDto { private String name; @NotBlank - @Schema(example = "mariadb") - private String repository; + @Schema(description = "Image ID") + private Long imageId; @NotBlank - @Schema(example = "10.5") - private String tag; + @Schema(description = "Hostname of container") + private String host; + + @Schema(description = "Port of container") + private Integer port; + @NotBlank + @Schema(description = "Username of privileged user", example = "root") + private String privilegedUsername; + + @NotBlank + @Schema(description = "Password of privileged user") + private String privilegedPassword; } diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java index c3a152785fa9b9f80933f2bfdfb06f133786bbce..d58ac3ee738bca41f1dc812e865427d3fd526506 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java @@ -1,15 +1,13 @@ package at.tuwien.api.container; import at.tuwien.api.container.image.ImageBriefDto; -import at.tuwien.api.database.DatabaseDto; import at.tuwien.api.user.UserBriefDto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; import java.time.Instant; @@ -26,10 +24,6 @@ public class ContainerDto { @NotNull private Long id; - @NotNull - @Schema(example = "f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50") - private String hash; - @NotBlank @Schema(example = "Air Quality") private String name; @@ -39,24 +33,13 @@ public class ContainerDto { @Schema(example = "air-quality") private String internalName; - @Schema(example = "running") - private ContainerStateDto state; - - @Schema - @ToString.Exclude - private DatabaseDto database; - - @JsonProperty("ip_address") - private String ipAddress; + @NotBlank + private String host; - @NotNull - @Schema(example = "true") - private Boolean running; + private Integer port; private ImageBriefDto image; - private Integer port; - private UserBriefDto owner; @NotNull diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerStateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerStateDto.java deleted file mode 100644 index faf2c5bcf1e9efc58cdcfb2cb76fbf89a6bb31fa..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerStateDto.java +++ /dev/null @@ -1,38 +0,0 @@ -package at.tuwien.api.container; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.ToString; - -@Getter -public enum ContainerStateDto { - - @JsonProperty("created") - CREATED("created"), - - @JsonProperty("restarting") - RESTARTING("restarting"), - - @JsonProperty("running") - RUNNING("running"), - - @JsonProperty("paused") - PAUSED("paused"), - - @JsonProperty("exited") - EXITED("exited"), - - @JsonProperty("dead") - DEAD("dead"); - - private String name; - - ContainerStateDto(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } -} diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java index d982c237368dd138223913ea7db1295401941e70..4d404be60bccfc0f22beb4694ddffbfdd298e298 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java @@ -1,10 +1,9 @@ package at.tuwien.api.container.image; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; @Getter @@ -19,16 +18,12 @@ public class ImageBriefDto { @NotNull private Long id; - @NotBlank - @Schema(example = "docker.io/library") - private String registry; - @NotBlank @Schema(example = "mariadb") - private String repository; + private String name; @NotBlank @Schema(example = "10.5") - private String tag; + private String version; } diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java index dc19e4e0e22f3683dcec0e0f5f3308df60ec1fd8..520449d1de7bfb8d92f33f15763c13813e6c935b 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java @@ -2,15 +2,12 @@ package at.tuwien.api.container.image; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; +import lombok.*; import lombok.extern.jackson.Jacksonized; -import java.util.List; - @Getter @Setter @Builder @@ -29,8 +26,6 @@ public class ImageChangeDto { @Schema(example = "5432") private Integer defaultPort; - private List<ImageEnvItemDto> environment; - @NotBlank @JsonProperty("driver_class") @Schema(example = "org.postgresql.Driver") diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java index 64676aa01b9d3cdf42446f549950b10ab9ea7261..2031ee15aa6ed44d60682315604a726fe7af03c6 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java @@ -5,14 +5,11 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; -import java.util.List; - @Getter @Setter @Builder @@ -28,11 +25,11 @@ public class ImageCreateDto { @NotBlank @Schema(example = "mariadb") - private String repository; + private String name; @NotBlank @Parameter(example = "10.5") - private String tag; + private String version; @NotBlank @JsonProperty("driver_class") @@ -55,6 +52,4 @@ public class ImageCreateDto { @Parameter(required = true, example = "3006") private Integer defaultPort; - private List<ImageEnvItemDto> environment; - } diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java index 8dfb917afd39c20e906587dc00fb5d3155d57537..473e038f8d4c4aa6641152dbe0cfd90e0f9656b4 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java @@ -1,17 +1,12 @@ package at.tuwien.api.container.image; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; -import java.math.BigInteger; -import java.time.Instant; import java.util.List; @Getter @@ -32,11 +27,11 @@ public class ImageDto { @NotBlank @Schema(example = "mariadb") - private String repository; + private String name; @NotBlank @Schema(example = "10.5") - private String tag; + private String version; @NotBlank @JsonProperty("driver_class") @@ -59,25 +54,9 @@ public class ImageDto { @org.springframework.data.annotation.Transient private String jdbcMethod; - @Schema(example = "sha256:c5ec7353d87dfc35067e7bffeb25d6a0d52dad41e8b7357213e3b12d6e7ff78e") - private String hash; - - @Schema(example = "2021-03-12T15:26:21.678396092Z") - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") - private Instant compiled; - - @Schema(example = "314295447") - private BigInteger size; - @NotNull @JsonProperty("default_port") @Schema(example = "3306") private Integer defaultPort; - @NotNull - @JsonIgnore - @ToString.Exclude - @org.springframework.data.annotation.Transient - private List<ImageEnvItemDto> environment; - } diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java deleted file mode 100644 index ce7115f5635847a8917540d88db87429c25ec42a..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java +++ /dev/null @@ -1,37 +0,0 @@ -package at.tuwien.api.container.image; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.extern.jackson.Jacksonized; - -@Getter -@Setter -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Jacksonized -@ToString -public class ImageEnvItemDto { - - @NotNull - private Long iid; - - @NotBlank - @Schema(example = "MARIADB_ROOT_PASSWORD") - private String key; - - @NotBlank - @JsonIgnore - @ToString.Exclude - @Schema(example = "mariadb") - private String value; - - @NotNull - @Schema(example = "PRIVILEGED_PASSWORD") - private ImageEnvItemTypeDto type; - -} diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemTypeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemTypeDto.java deleted file mode 100644 index 4141175ee6b3bf35b224fd9490c60577c13fb980..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemTypeDto.java +++ /dev/null @@ -1,29 +0,0 @@ -package at.tuwien.api.container.image; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum ImageEnvItemTypeDto { - - @JsonProperty("username") - USERNAME("username"), - - @JsonProperty("password") - PASSWORD("password"), - - @JsonProperty("privileged_username") - PRIVILEGED_USERNAME("privileged_username"), - - @JsonProperty("privileged_password") - PRIVILEGED_PASSWORD("privileged_password"); - - private String name; - - ImageEnvItemTypeDto(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } -} diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java index bf2161981da4774757e07ea4f04c307895ab62ee..77bbf4183dd55ae992e2b8a5ac08d16a809bab1f 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java @@ -1,15 +1,15 @@ package at.tuwien.api.database; import at.tuwien.api.container.ContainerBriefDto; +import at.tuwien.api.container.image.ImageBriefDto; import at.tuwien.api.identifier.IdentifierBriefDto; import at.tuwien.api.user.UserBriefDto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; import java.time.Instant; @@ -55,4 +55,7 @@ public class DatabaseBriefDto { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC") private Instant created; + @NotNull + private ImageBriefDto image; + } diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java index 039e1070f7a4f8c7147218b20432576276b0147b..08102153a46b31ea77e77b759f61126f366264f1 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java @@ -2,10 +2,9 @@ package at.tuwien.api.database; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; @Getter @@ -17,6 +16,11 @@ import lombok.extern.jackson.Jacksonized; @ToString public class DatabaseCreateDto { + @NotNull(message = "Container id is required") + @JsonProperty("container_id") + @Schema(example = "1") + private Long cid; + @NotBlank(message = "database name is required") @Schema(example = "Air Quality") private String name; diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java index 0717ed8c486efa75b443a0a8c0f68b0937a773f8..1d5f19abc49c3efb010cd6cd5f54974b1540a18c 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java @@ -8,11 +8,10 @@ import at.tuwien.api.user.UserBriefDto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import lombok.extern.jackson.Jacksonized; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; @@ -65,7 +64,6 @@ public class DatabaseDto { @org.springframework.data.annotation.Transient private ImageDto image; - @org.springframework.data.annotation.Transient private ContainerDto container; private List<DatabaseAccessDto> accesses; diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java index 8df51261bd297a7e113fc6f53f05b1ed4d4b867a..ac0763f9d3b930d7c3d21c57872b5970303c9615 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java @@ -6,11 +6,10 @@ import at.tuwien.api.user.UserBriefDto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import lombok.extern.jackson.Jacksonized; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; @@ -27,11 +26,6 @@ import java.util.List; @Document(indexName = "table") public class TableDto { - @NotNull - @Field(name = "container_id") - @JsonProperty("container_id") - private Long containerId; - @NotNull @Field(name = "database_id") @JsonProperty("database_id") diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java index 6f3b30b04d5c25c82955d60a6a81faee1aaa2b86..436c7aeeeb69631b6e8157bc1ae9437a14494b54 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java @@ -6,11 +6,10 @@ import at.tuwien.api.database.table.columns.concepts.UnitDto; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import lombok.extern.jackson.Jacksonized; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; @@ -24,11 +23,6 @@ import org.springframework.data.elasticsearch.annotations.Field; @Document(indexName = "column") public class ColumnDto { - @NotNull - @Field(name = "container_id") - @JsonProperty("container_id") - private Long containerId; - @NotNull @Field(name = "database_id") @JsonProperty("database_id") diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java index 7538b8d9dd79d6d9e7637f6d059a2409e3651ea2..b7bd2134b704baf80ed069dc2e8364150d4b1c77 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java @@ -4,10 +4,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; import java.time.Instant; @@ -25,11 +24,6 @@ public class IdentifierBriefDto { @NotNull private Long id; - @NotNull - @JsonProperty("container_id") - @Schema(name = "container id", example = "1") - private Long containerId; - @NotNull @JsonProperty("database_id") @Schema(name = "database id", example = "1") diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java index abb5b182638c1e878e404097080232b6bb893204..61ce7f0edea55249de31e4ba4d6fac3c59a14c89 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java @@ -4,11 +4,10 @@ import at.tuwien.api.database.LanguageTypeDto; import at.tuwien.api.database.LicenseDto; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; import java.util.List; @@ -22,9 +21,6 @@ import java.util.List; @ToString public class IdentifierCreateDto { - @NotNull - private Long cid; - @NotNull private Long dbid; diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java index 632ee66fc8429a6d4d4f16e9e2a2a15c060993f3..c5a11f62bde9605976ccebe8f897f4aebc4530bf 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java @@ -7,11 +7,10 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import lombok.extern.jackson.Jacksonized; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; import org.springframework.data.elasticsearch.annotations.Document; import java.time.Instant; @@ -29,11 +28,6 @@ public class IdentifierDto { private Long id; - @NotNull - @JsonProperty("container_id") - @Schema(name = "container id", example = "1") - private Long containerId; - @NotNull @JsonProperty("database_id") @Schema(name = "database id", example = "1") diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java index ab081e42958d9e23e33ed1cf6e61c3397230bc3b..32eec83917d149ba7a54d4aef66ec1ab4e9f2a88 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java @@ -4,11 +4,10 @@ import at.tuwien.api.database.LanguageTypeDto; import at.tuwien.api.database.LicenseDto; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.*; import lombok.extern.jackson.Jacksonized; import java.util.List; @@ -22,9 +21,6 @@ import java.util.List; @ToString public class IdentifierUpdateDto { - @NotNull - private Long cid; - @NotNull private Long dbid; diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java index 1f7921291b14c867cd4cdaff6cb02f0547b5c390..e5666429cbfbebf2149a405c8992a4c50109e686 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java @@ -2,17 +2,15 @@ package at.tuwien.entities.container; import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.database.Database; -import at.tuwien.entities.user.User; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.JdbcTypeCode; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import java.time.Instant; -import java.util.UUID; +import java.util.List; @Data @Entity @@ -32,61 +30,36 @@ public class Container { @Column(updatable = false, nullable = false) private Long id; - @ToString.Exclude - @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(name = "createdBy", nullable = false, columnDefinition = "VARCHAR(36)") - private UUID createdBy; - - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - @JoinColumns({ - @JoinColumn(name = "createdBy", referencedColumnName = "ID", insertable = false, updatable = false) - }) - private User creator; - - @ToString.Exclude - @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(name = "ownedBy", nullable = false, columnDefinition = "VARCHAR(36)") - private UUID ownedBy; - - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - @JoinColumns({ - @JoinColumn(name = "ownedBy", referencedColumnName = "ID", insertable = false, updatable = false) - }) - private User owner; - @Column(nullable = false) private String name; @Column(nullable = false) private String internalName; - @Column(nullable = false) - private String hash; - @Column(name = "image_id", nullable = false, updatable = false) private Long imageId; + @Column(nullable = false) + private String host; + @Column private Integer port; @ToString.Exclude @org.springframework.data.annotation.Transient - @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumns({ - @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false) + @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false) }) - private Database database; + private List<Database> databases; @org.springframework.data.annotation.Transient - @ManyToOne(fetch = FetchType.LAZY) + @ManyToOne @JoinColumns({ @JoinColumn(name = "image_id", referencedColumnName = "id", insertable = false, updatable = false) }) private ContainerImage image; - @Column - private String ipAddress; - @CreatedDate @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP") private Instant created; @@ -95,4 +68,10 @@ public class Container { @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; + @Column + private String privilegedUsername; + + @Column + private String privilegedPassword; + } diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java index 440ef8627d18d2033dda9a5683f9602b4dae8169..de4d3ed01e25b4fc3282eb2830d32d705643eaec 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java @@ -19,7 +19,7 @@ import java.util.List; @NoArgsConstructor @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) -@Table(name = "mdb_images", uniqueConstraints = @UniqueConstraint(columnNames = {"repository", "tag"})) +@Table(name = "mdb_images", uniqueConstraints = @UniqueConstraint(columnNames = {"name", "version"})) public class ContainerImage { @Id @@ -30,13 +30,10 @@ public class ContainerImage { public Long id; @Column(nullable = false) - private String repository; - - @Column(nullable = false, columnDefinition = "TEXT default 'docker.io/library'") - private String registry; + private String name; @Column(nullable = false) - private String tag; + private String version; @Column(nullable = false) private String driverClass; @@ -47,23 +44,9 @@ public class ContainerImage { @Column(nullable = false) private String jdbcMethod; - @Column - private String hash; - - @Column(columnDefinition = "TIMESTAMP") - private Instant compiled; - - @Column - private Long size; - @Column(nullable = false) private Integer defaultPort; - @ToString.Exclude - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) - @JoinColumn(name = "iid", insertable = false, updatable = false) - private List<ContainerImageEnvironmentItem> environment; - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "image") private List<ContainerImageDate> dateFormats; diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java deleted file mode 100644 index 9b4e64a526c2166cb74ad3c9befa6786962b576f..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java +++ /dev/null @@ -1,62 +0,0 @@ -package at.tuwien.entities.container.image; - -import lombok.*; -import org.hibernate.annotations.GenericGenerator; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.LastModifiedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import jakarta.persistence.*;; -import java.time.Instant; - -@Data -@Entity -@Builder -@ToString -@AllArgsConstructor -@NoArgsConstructor -@IdClass(ContainerImageEnvironmentItemKey.class) -@EntityListeners(AuditingEntityListener.class) -@EqualsAndHashCode(onlyExplicitlyIncluded = true) -@Table(name = "mdb_images_environment_item") -public class ContainerImageEnvironmentItem { - - @Id - @EqualsAndHashCode.Include - @GeneratedValue(generator = "environments-sequence") - @GenericGenerator(name = "environments-sequence", strategy = "increment") - @Column(updatable = false, nullable = false) - public Long id; - - @Id - @EqualsAndHashCode.Include - public Long iid; - - @Column(nullable = false, columnDefinition = "VARCHAR(255)") - private String key; - - @Column(nullable = false, columnDefinition = "VARCHAR(255)") - private String value; - - @Column(nullable = false, name = "etype", columnDefinition = "enum('USERNAME', 'PASSWORD', 'PRIVILEGED_USERNAME', 'PRIVILEGED_PASSWORD')") - @Enumerated(EnumType.STRING) - private ContainerImageEnvironmentItemType type; - - @ToString.Exclude - @org.springframework.data.annotation.Transient - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumns({ - @JoinColumn(name = "iid", referencedColumnName = "id", insertable = false, updatable = false) - }) - private ContainerImage image; - - @CreatedDate - @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP") - private Instant created; - - @LastModifiedDate - @Column(columnDefinition = "TIMESTAMP") - private Instant lastModified; - -} - diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItemKey.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItemKey.java deleted file mode 100644 index 969a8491e78e53cb34f40cdc2954d0bb6577929e..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItemKey.java +++ /dev/null @@ -1,14 +0,0 @@ -package at.tuwien.entities.container.image; - -import lombok.EqualsAndHashCode; - -import java.io.Serializable; - -@EqualsAndHashCode -public class ContainerImageEnvironmentItemKey implements Serializable { - - private Long id; - - private Long iid; - -} diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItemType.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItemType.java deleted file mode 100644 index 2136ba805954b1bb65b14f6dc7f6f75595eeb42b..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItemType.java +++ /dev/null @@ -1,8 +0,0 @@ -package at.tuwien.entities.container.image; - -public enum ContainerImageEnvironmentItemType { - USERNAME, - PASSWORD, - PRIVILEGED_USERNAME, - PRIVILEGED_PASSWORD; -} diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java index e987416bc7c1e06aeaa54f2778ac58fb7f1e7317..2b95075c9dd5a0c90da3fe6745ca2fa6d43660fd 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java @@ -4,20 +4,21 @@ import at.tuwien.entities.container.Container; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.identifier.Identifier; import at.tuwien.entities.user.User; +import jakarta.persistence.CascadeType; +import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.*; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; -import jakarta.persistence.*;; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Entity; import java.io.Serializable; import java.time.Instant; import java.util.List; import java.util.UUID; +; + @Data @Entity @Builder @@ -26,12 +27,14 @@ import java.util.UUID; @NoArgsConstructor @EntityListeners(AuditingEntityListener.class) @jakarta.persistence.Table(name = "mdb_databases", uniqueConstraints = { - @UniqueConstraint(columnNames = {"id", "internalName"}) + @UniqueConstraint(columnNames = {"cid", "internalName"}) }) public class Database implements Serializable { @Id @EqualsAndHashCode.Include + @GeneratedValue(generator = "databases-sequence") + @GenericGenerator(name = "databases-sequence", strategy = "increment") @Column(updatable = false, nullable = false) private Long id; @@ -57,11 +60,14 @@ public class Database implements Serializable { }) private User owner; + @Column(nullable = false) + private Long cid; + @ToString.Exclude @org.springframework.data.annotation.Transient - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + @ManyToOne(cascade = CascadeType.PERSIST) @JoinColumns({ - @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false) + @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false) }) private Container container; diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java index 80542a403f91f41509d498a4e50068bf761c642b..4119af3ccf241edf570bbeab53a0de5ec7d22686 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java @@ -2,6 +2,7 @@ package at.tuwien.entities.database; import at.tuwien.entities.database.table.columns.TableColumn; import at.tuwien.entities.user.User; +import jakarta.persistence.*; import lombok.*; import net.sf.jsqlparser.statement.select.FromItem; import org.hibernate.annotations.GenericGenerator; @@ -10,12 +11,11 @@ import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; -import jakarta.persistence.*;; import java.time.Instant; import java.util.List; import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; + +; @Data @Entity @@ -41,10 +41,6 @@ public class View { @Column(updatable = false, nullable = false) private Long id; - @Id - @EqualsAndHashCode.Include - private Long vcid; - @Id @EqualsAndHashCode.Include private Long vdbid; @@ -100,7 +96,6 @@ public class View { @JoinTable(name = "mdb_view_columns", joinColumns = { @JoinColumn(name = "vid", referencedColumnName = "id", insertable = false, updatable = false), - @JoinColumn(name = "vcid", referencedColumnName = "vcid", insertable = false, updatable = false), @JoinColumn(name = "vdbid", referencedColumnName = "vdbid", insertable = false, updatable = false) }, inverseJoinColumns = { diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/ViewKey.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/ViewKey.java index 3a2d610051c0a10d42bba8363a16de067598356f..d23b539afab301bd47034cc9f66e94b8c7a0c12a 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/ViewKey.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/ViewKey.java @@ -9,7 +9,5 @@ public class ViewKey implements Serializable { private Long id; - private Long vcid; - private Long vdbid; } diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java index 56a8b87a9df1f55180fbed30812fc6cfa499ba2b..8ba5d6faf522b40c17d727e950bb8964720d5854 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java @@ -4,18 +4,20 @@ import at.tuwien.entities.database.Database; import at.tuwien.entities.database.LanguageType; import at.tuwien.entities.database.License; import at.tuwien.entities.user.User; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotBlank; import lombok.*; import org.hibernate.annotations.GenericGenerator; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; -import jakarta.persistence.*;; -import jakarta.validation.constraints.NotBlank; import java.io.Serializable; import java.time.Instant; import java.util.List; +; + @Data @Entity @Builder @@ -24,7 +26,7 @@ import java.util.List; @NoArgsConstructor @EntityListeners(AuditingEntityListener.class) @jakarta.persistence.Table(name = "mdb_identifiers", uniqueConstraints = { - @UniqueConstraint(columnNames = {"qid", "cid", "dbid"}) + @UniqueConstraint(columnNames = {"qid", "dbid"}) }) public class Identifier implements Serializable { @@ -35,9 +37,6 @@ public class Identifier implements Serializable { @Column(updatable = false, nullable = false) private Long id; - @Column(name = "cid", nullable = false) - private Long containerId; - @Column(name = "dbid", nullable = false) private Long databaseId; diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java index 551acd615d9afcee94f4940ef1a8f1da41518672..776006ea12208d2683445489f6b062d8065260c1 100644 --- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java +++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java @@ -1,18 +1,19 @@ package at.tuwien.entities.user; -import at.tuwien.entities.container.Container; import at.tuwien.entities.database.Database; import at.tuwien.entities.identifier.Identifier; +import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.JdbcTypeCode; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import org.springframework.security.core.Authentication; -import jakarta.persistence.*;; import java.security.Principal; import java.util.List; import java.util.UUID; +; + @Data @Entity @Builder @@ -21,7 +22,7 @@ import java.util.UUID; @ToString @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) -@Table(name = "user_entity", uniqueConstraints = { +@Table(name = "USER_ENTITY", uniqueConstraints = { @UniqueConstraint(columnNames = {"REALM_ID", "EMAIL"}), @UniqueConstraint(columnNames = {"REALM_ID", "USERNAME"}) }) @@ -78,11 +79,6 @@ public class User { @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user") private List<Credential> credentials; - @Transient - @ToString.Exclude - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "owner") - private List<Container> containers; - @Transient @ToString.Exclude @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "owner") diff --git a/dbrepo-metadata-db/pom.xml b/dbrepo-metadata-db/pom.xml index 0fb24fd6ea1b841a9337014f643f43a876247226..35b8b185da8a4c6895057a76eecde59f3d1b23db 100644 --- a/dbrepo-metadata-db/pom.xml +++ b/dbrepo-metadata-db/pom.xml @@ -27,7 +27,6 @@ <java.version>17</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> - <docker.version>3.3.0</docker.version> <jsql-parser.version>4.6</jsql-parser.version> <jackson-datatype.version>2.15.0</jackson-datatype.version> <commons.version>2.11.0</commons.version> @@ -87,23 +86,6 @@ <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>${springdoc-openapi.version}</version> </dependency> - <!-- Docker --> - <dependency> - <groupId>com.github.docker-java</groupId> - <artifactId>docker-java</artifactId> - <version>${docker.version}</version> - <exclusions> - <exclusion> - <groupId>javax.ws.rs</groupId> - <artifactId>jsr311-api</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.docker-java</groupId> - <artifactId>docker-java-transport-httpclient5</artifactId> - <version>${docker.version}</version> - </dependency> </dependencies> <!-- build at.tuwien.gateway.config in ./rest-service/pom.xml --> diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/setup-schema.sql index db145811a11093d65a2961ac508371bfead606eb..7cca2cb20586081c79afc2d61c8d76a2af656694 100644 --- a/dbrepo-metadata-db/setup-schema.sql +++ b/dbrepo-metadata-db/setup-schema.sql @@ -3,20 +3,16 @@ BEGIN; CREATE TABLE IF NOT EXISTS `fda`.`mdb_images` ( id bigint NOT NULL AUTO_INCREMENT, - registry text NOT NULL DEFAULT 'docker.io/library', - repository character varying(255) NOT NULL, - tag character varying(255) NOT NULL, + name character varying(255) NOT NULL, + version character varying(255) NOT NULL, default_port integer NOT NULL, dialect character varying(255) NOT NULL, driver_class character varying(255) NOT NULL, jdbc_method character varying(255) NOT NULL, - compiled timestamp, - hash character varying(255), - size bigint, created timestamp NOT NULL DEFAULT NOW(), last_modified timestamp, PRIMARY KEY (id), - UNIQUE (repository, tag) + UNIQUE (name, version) ) WITH SYSTEM VERSIONING; CREATE TABLE IF NOT EXISTS `fda`.`mdb_images_date` @@ -35,34 +31,20 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_images_date` CREATE TABLE IF NOT EXISTS `fda`.`mdb_containers` ( - id bigint NOT NULL AUTO_INCREMENT, - HASH character varying(255) NOT NULL, - INTERNAL_NAME character varying(255) NOT NULL, - NAME character varying(255) NOT NULL, - PORT integer, - image_id bigint NOT NULL, - ip_address character varying(255), - created timestamp NOT NULL DEFAULT NOW(), - created_by character varying(255) NOT NULL, - owned_by character varying(255) NOT NULL, + id bigint NOT NULL AUTO_INCREMENT, + INTERNAL_NAME character varying(255) NOT NULL, + NAME character varying(255) NOT NULL, + HOST character varying(255) NOT NULL, + PORT integer NOT NULL, + image_id bigint NOT NULL, + created timestamp NOT NULL DEFAULT NOW(), LAST_MODIFIED timestamp, + privileged_username character varying(255) NOT NULL, + privileged_password character varying(255) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (image_id) REFERENCES mdb_images (id) ) WITH SYSTEM VERSIONING; -CREATE TABLE IF NOT EXISTS `fda`.`mdb_images_environment_item` -( - id bigint NOT NULL AUTO_INCREMENT, - `key` character varying(255) NOT NULL, - value character varying(255) NOT NULL, - etype ENUM ('PRIVILEGED_USERNAME', 'PRIVILEGED_PASSWORD', 'USERNAME', 'PASSWORD') NOT NULL, - iid bigint NOT NULL, - created timestamp NOT NULL DEFAULT NOW(), - last_modified timestamp, - PRIMARY KEY (id, iid), - FOREIGN KEY (iid) REFERENCES mdb_images (id) -) WITH SYSTEM VERSIONING; - CREATE TABLE IF NOT EXISTS `fda`.`mdb_data` ( ID bigint NOT NULL AUTO_INCREMENT, @@ -85,6 +67,7 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_licenses` CREATE TABLE IF NOT EXISTS `fda`.`mdb_databases` ( id bigint NOT NULL AUTO_INCREMENT, + cid bigint NOT NULL, name character varying(255) NOT NULL, internal_name character varying(255) NOT NULL, exchange_name character varying(255) NOT NULL, @@ -97,7 +80,7 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_databases` created timestamp NOT NULL DEFAULT NOW(), last_modified timestamp, PRIMARY KEY (id), - FOREIGN KEY (id) REFERENCES mdb_containers (id) /* currently we only support one-to-one */ + FOREIGN KEY (cid) REFERENCES mdb_containers (id) /* currently we only support one-to-one */ ) WITH SYSTEM VERSIONING; CREATE TABLE IF NOT EXISTS `fda`.`mdb_databases_subjects` @@ -319,7 +302,6 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_columns_units` CREATE TABLE IF NOT EXISTS `fda`.`mdb_view` ( id bigint NOT NULL AUTO_INCREMENT, - vcid bigint NOT NULL, vdbid bigint NOT NULL, vName VARCHAR(255) NOT NULL, internal_name VARCHAR(255) NOT NULL, @@ -331,7 +313,7 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_view` created timestamp NOT NULL DEFAULT NOW(), last_modified timestamp, created_by character varying(255) NOT NULL, - PRIMARY KEY (id, vcid, vdbid), + PRIMARY KEY (id, vdbid), FOREIGN KEY (vdbid) REFERENCES mdb_databases (id) ) WITH SYSTEM VERSIONING; @@ -368,18 +350,16 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_view_columns` ctid BIGINT NOT NULL, cdbid BIGINT NOT NULL, vid BIGINT NOT NULL, - vcid BIGINT NOT NULL, vdbid BIGINT NOT NULL, position INTEGER NULL, PRIMARY KEY (id), - FOREIGN KEY (vid, vcid, vdbid) REFERENCES mdb_view (id, vcid, vdbid), + FOREIGN KEY (vid, vdbid) REFERENCES mdb_view (id, vdbid), FOREIGN KEY (cid, cdbid, ctid) REFERENCES mdb_columns (ID, cDBID, tID) ) WITH SYSTEM VERSIONING; CREATE TABLE IF NOT EXISTS `fda`.`mdb_identifiers` ( id bigint NOT NULL AUTO_INCREMENT, - cid bigint NOT NULL, dbid bigint NOT NULL, qid bigint, title VARCHAR(255) NOT NULL, @@ -403,9 +383,8 @@ CREATE TABLE IF NOT EXISTS `fda`.`mdb_identifiers` created_by character varying(255) NOT NULL, last_modified timestamp, PRIMARY KEY (id), /* must be a single id from persistent identifier concept */ - FOREIGN KEY (cid) REFERENCES mdb_containers (id), FOREIGN KEY (dbid) REFERENCES mdb_databases (id), - UNIQUE (cid, dbid, qid) + UNIQUE (dbid, qid) ) WITH SYSTEM VERSIONING; CREATE TABLE IF NOT EXISTS `fda`.`mdb_related_identifiers` @@ -488,15 +467,9 @@ VALUES ('MIT', 'https://opensource.org/licenses/MIT'), ('CC0-1.0', 'https://creativecommons.org/publicdomain/zero/1.0/legalcode'), ('CC-BY-4.0', 'https://creativecommons.org/licenses/by/4.0/legalcode'); -INSERT INTO `fda`.`mdb_images` (repository, tag, default_port, dialect, driver_class, jdbc_method) +INSERT INTO `fda`.`mdb_images` (name, version, default_port, dialect, driver_class, jdbc_method) VALUES ('mariadb', '10.5', 3306, 'org.hibernate.dialect.MariaDBDialect', 'org.mariadb.jdbc.Driver', 'mariadb'); -INSERT INTO `fda`.`mdb_images_environment_item` (`key`, value, etype, iid) -VALUES ('ROOT', 'root', 'PRIVILEGED_USERNAME', 1), - ('MARIADB_ROOT_PASSWORD', 'mariadb', 'PRIVILEGED_PASSWORD', 1), - ('MARIADB_USER', 'mariadb', 'USERNAME', 1), - ('MARIADB_PASSWORD', 'mariadb', 'PASSWORD', 1); - INSERT INTO `fda`.`mdb_images_date` (iid, database_format, unix_format, example, has_time) VALUES (1, '%Y-%c-%d %H:%i:%S.%f', 'yyyy-MM-dd HH:mm:ss.SSSSSS', '2022-01-30 13:44:25.499', true), (1, '%Y-%c-%d %H:%i:%S', 'yyyy-MM-dd HH:mm:ss', '2022-01-30 13:44:25', true), diff --git a/dbrepo-metadata-db/setup-schema_local.sql b/dbrepo-metadata-db/setup-schema_local.sql new file mode 100644 index 0000000000000000000000000000000000000000..1dceaa96f7b53b1ae3d979e35c2bc7a1c633014b --- /dev/null +++ b/dbrepo-metadata-db/setup-schema_local.sql @@ -0,0 +1,6 @@ +BEGIN; + +INSERT INTO `fda`.`mdb_containers` (name, internal_name, image_id, host, port, privileged_username, privileged_password) +VALUES ('MariaDB 10.5', 'mariadb_10_5', 1, 'user-db', 3306, 'root', 'dbrepo'); + +COMMIT; diff --git a/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/DockerConfig.java b/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/DockerConfig.java deleted file mode 100644 index e642c44251f7da13e48e811e859f6aa0a20d2120..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/DockerConfig.java +++ /dev/null @@ -1,216 +0,0 @@ -package at.tuwien.config; - -import at.tuwien.entities.container.Container; -import at.tuwien.test.BaseTest; -import com.github.dockerjava.api.DockerClient; -import com.github.dockerjava.api.command.CreateContainerCmd; -import com.github.dockerjava.api.command.CreateContainerResponse; -import com.github.dockerjava.api.command.InspectContainerResponse; -import com.github.dockerjava.api.exception.NotModifiedException; -import com.github.dockerjava.api.model.*; -import com.github.dockerjava.core.DefaultDockerClientConfig; -import com.github.dockerjava.core.DockerClientBuilder; -import com.github.dockerjava.core.DockerClientConfig; -import com.github.dockerjava.httpclient5.ApacheDockerHttpClient; -import com.github.dockerjava.transport.DockerHttpClient; -import lombok.extern.log4j.Log4j2; - -import java.util.Arrays; -import java.util.Objects; - -@Log4j2 -public class DockerConfig extends BaseTest { - - private final static DockerClientConfig dockerClientConfig = DefaultDockerClientConfig.createDefaultConfigBuilder() - .withDockerHost("unix:///var/run/docker.sock") - .build(); - - private final static DockerHttpClient dockerHttpClient = new ApacheDockerHttpClient.Builder() - .dockerHost(dockerClientConfig.getDockerHost()) - .sslConfig(dockerClientConfig.getSSLConfig()) - .build(); - - public final static HostConfig hostConfig = HostConfig.newHostConfig() - .withRestartPolicy(RestartPolicy.alwaysRestart()); - - public final static DockerClient dockerClient = DockerClientBuilder.getInstance() - .withDockerHttpClient(dockerHttpClient) - .build(); - - public static void startContainer(Container container) throws InterruptedException { - final InspectContainerResponse inspect = dockerClient.inspectContainerCmd(container.getHash()) - .exec(); - log.trace("container {} state {}", container.getHash(), inspect.getState().getStatus()); - if (Objects.equals(inspect.getState().getStatus(), "running")) { - return; - } - log.info("container {} needs to be started", container.getInternalName()); - dockerClient.startContainerCmd(container.getHash()) - .exec(); - int i = 0; - final int max = 10; - String state; - final boolean hasHealthCheck = getHealthCheck(container.getId()) != null; - do { - final InspectContainerResponse response = dockerClient.inspectContainerCmd(container.getHash()) - .exec(); - if (hasHealthCheck && response.getState().getHealth() == null) { - log.error("Container does not have a healthcheck response"); - throw new InterruptedException("Container does not have a healthcheck response"); - } - if (hasHealthCheck) { - state = response.getState().getHealth().getStatus(); - log.trace("container {} state is {}, attempt {} of {}", container.getInternalName(), state, i, max); - if (!state.equals("healthy")) { - Thread.sleep(10 * 1000L); - } - } else { - Thread.sleep(60 * 1000L); - state = "healthy"; - } - i++; - } while (!state.equals("healthy") && i != max); - if (state.equals("healthy")) { - log.info("container {} was started", container.getInternalName()); - } else { - log.error("failed to start container {} as state {} is not healthy after {} tries", container.getHash(), - state, i); - throw new RuntimeException("Failed to start container " + container.getHash() + " as state " + state + " is not healthy after " + i + " tries"); - } - } - - public static void stopContainer(Container container) { - final InspectContainerResponse inspect = dockerClient.inspectContainerCmd(container.getHash()) - .exec(); - log.trace("container {} state {}", container.getHash(), inspect.getState().getStatus()); - if (Objects.equals(inspect.getState().getStatus(), "exited")) { - return; - } - log.info("container {} needs to be stopped", container.getInternalName()); - dockerClient.stopContainerCmd(container.getHash()) - .exec(); - } - - public static void createContainer(String bind, Container container, String... environment) { - createContainer(bind, container, null, environment); - } - - public static void createContainer(String bind, Container container, Integer port, String... environment) { - log.trace("creating container with internalName={}, ipAddress={}, hostname={}, environment={}", - container.getInternalName(), container.getIpAddress(), container.getInternalName(), - environment); - final HostConfig hostConfig1; - final String network = (container.getInternalName().contains("userdb") ? "fda-userdb" : "fda-public"); - if (bind == null) { - log.trace("map standard binding /tmp:/tmp"); - hostConfig1 = hostConfig.withNetworkMode(network) - .withBinds(Bind.parse("/tmp:/tmp")); - } else { - log.trace("map non-standard binding {}, /tmp:/tmp", bind); - hostConfig1 = hostConfig.withNetworkMode(network) - .withBinds(Bind.parse(bind), Bind.parse("/tmp:/tmp")); - } - if (port != null) { - log.trace("map port binding {}:{}", port, port); - hostConfig1.withPortBindings(PortBinding.parse(port + ":" + port)); - } - final CreateContainerCmd cmd = dockerClient.createContainerCmd(container.getImage().getRepository() + ":" + container.getImage().getTag()) - .withHostConfig(hostConfig1) - .withName(container.getInternalName()) - .withIpv4Address(container.getIpAddress()) - .withHostName(container.getInternalName()) - .withEnv(environment) - .withHealthcheck(getHealthCheck(container.getId())); - final CreateContainerResponse response; - if (container.getInternalName().contains("search")) { - response = cmd.withPortBindings(PortBinding.parse("9200:9200")) - .exec(); - } else { - response = cmd.exec(); - } - container.setHash(response.getId()); - } - - public static void removeAllContainers() { - dockerClient.listContainersCmd() - .withShowAll(true) - .exec() - .forEach(container -> { - log.info("Delete container {}", Arrays.asList(container.getNames())); - try { - dockerClient.stopContainerCmd(container.getId()).exec(); - } catch (NotModifiedException e) { - // ignore - } - dockerClient.removeContainerCmd(container.getId()).exec(); - }); - dockerClient.listVolumesCmd() - .withDanglingFilter(true) - .exec() - .getVolumes() - .forEach(volume -> { - log.info("Delete volume {}", volume.getName()); - try { - dockerClient.removeVolumeCmd(volume.getName()).exec(); - } catch (NotModifiedException e) { - // ignore - } - }); - } - - public static void removeAllNetworks() { - dockerClient.listNetworksCmd() - .exec() - .stream() - .filter(n -> n.getName().startsWith("fda")) - .forEach(network -> { - log.info("Delete network {}", network.getName()); - dockerClient.removeNetworkCmd(network.getId()).exec(); - }); - } - - public static void createAllNetworks() { - dockerClient.createNetworkCmd() - .withName("fda-userdb") - .withIpam(new Network.Ipam() - .withConfig(new Network.Ipam.Config() - .withSubnet("172.30.0.0/16"))) - .withEnableIpv6(false) - .exec(); - dockerClient.createNetworkCmd() - .withName("fda-public") - .withIpam(new Network.Ipam() - .withConfig(new Network.Ipam.Config() - .withSubnet("172.31.0.0/16"))) - .withEnableIpv6(false) - .exec(); - } - - private static HealthCheck getHealthCheck(Long containerId) { - if (containerId == null) { - log.trace("container does not have a healthcheck config"); - return null; - } - switch (Integer.parseInt("" + containerId)) { - case 1: - log.debug("container with id {} has a health check config", containerId); - return CONTAINER_1_HEALTHCHECK; - case 2: - log.debug("container with id {} has a health check config", containerId); - return CONTAINER_2_HEALTHCHECK; - case 3: - log.debug("container with id {} has a health check config", containerId); - return CONTAINER_3_HEALTHCHECK; - case 4: - log.debug("container with id {} has a health check config", containerId); - return CONTAINER_4_HEALTHCHECK; - case 5: - log.debug("container with id {} has a health check config", containerId); - return CONTAINER_BROKER_HEALTHCHECK; - } - log.trace("container with id {} does not have a healthcheck config", containerId); - return null; - } - - -} diff --git a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java index 84e89a26418be53fa0a71e47ac3db987f7af2b90..f74c46576d1c7f61112ad51a1eec6b5b7282a263 100644 --- a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java @@ -4,8 +4,10 @@ import at.tuwien.api.amqp.CreateVirtualHostDto; import at.tuwien.api.amqp.GrantVirtualHostPermissionsDto; import at.tuwien.api.auth.SignupRequestDto; import at.tuwien.api.container.ContainerDto; -import at.tuwien.api.container.ContainerStateDto; -import at.tuwien.api.container.image.*; +import at.tuwien.api.container.image.ImageBriefDto; +import at.tuwien.api.container.image.ImageCreateDto; +import at.tuwien.api.container.image.ImageDateDto; +import at.tuwien.api.container.image.ImageDto; import at.tuwien.api.database.DatabaseCreateDto; import at.tuwien.api.database.DatabaseDto; import at.tuwien.api.database.LicenseDto; @@ -27,9 +29,14 @@ import at.tuwien.api.maintenance.BannerMessageUpdateDto; import at.tuwien.api.semantics.OntologyCreateDto; import at.tuwien.api.semantics.OntologyModifyDto; import at.tuwien.api.user.*; +import at.tuwien.entities.container.Container; +import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.container.image.ContainerImageDate; import at.tuwien.entities.database.*; +import at.tuwien.entities.database.table.Table; +import at.tuwien.entities.database.table.columns.TableColumn; import at.tuwien.entities.database.table.columns.TableColumnConcept; +import at.tuwien.entities.database.table.columns.TableColumnType; import at.tuwien.entities.database.table.columns.TableColumnUnit; import at.tuwien.entities.database.table.constraints.Constraints; import at.tuwien.entities.database.table.constraints.foreignKey.ForeignKey; @@ -44,19 +51,11 @@ import at.tuwien.entities.user.Role; import at.tuwien.entities.user.User; import at.tuwien.entities.user.UserAttribute; import at.tuwien.querystore.Query; -import at.tuwien.entities.container.Container; -import at.tuwien.entities.container.image.ContainerImage; -import at.tuwien.entities.container.image.ContainerImageEnvironmentItem; -import at.tuwien.entities.container.image.ContainerImageEnvironmentItemType; -import at.tuwien.entities.database.table.Table; -import at.tuwien.entities.database.table.columns.TableColumn; -import at.tuwien.entities.database.table.columns.TableColumnType; import at.tuwien.utils.ArrayUtil; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; -import com.github.dockerjava.api.model.HealthCheck; import java.math.BigInteger; import java.security.Principal; @@ -64,7 +63,8 @@ import java.time.Instant; import java.util.*; import java.util.stream.Collectors; -import static java.time.temporal.ChronoUnit.*; +import static java.time.temporal.ChronoUnit.HOURS; +import static java.time.temporal.ChronoUnit.MINUTES; /** * Database 1 (Private, User 1) @@ -661,54 +661,12 @@ public abstract class BaseTest { public final static Long IMAGE_1_ID = 1L; public final static String IMAGE_1_REGISTRY = "docker.io/library"; - public final static String IMAGE_1_REPOSITORY = "mariadb"; - public final static String IMAGE_1_TAG = "10.5"; - public final static String IMAGE_1_HASH = "d6a5e003eae42397f7ee4589e9f21e231d3721ac131970d2286bd616e7f55bb4"; + public final static String IMAGE_1_NAME = "mariadb"; + public final static String IMAGE_1_VERSION = "10.5"; public final static String IMAGE_1_DIALECT = "org.hibernate.dialect.MariaDBDialect"; public final static String IMAGE_1_DRIVER = "org.mariadb.jdbc.Driver"; public final static String IMAGE_1_JDBC = "mariadb"; public final static Integer IMAGE_1_PORT = 3306; - public final static Long IMAGE_1_SIZE = 12000L; - public final static Instant IMAGE_1_BUILT = Instant.now().minus(40, HOURS); - - public final static List<ContainerImageEnvironmentItem> IMAGE_1_ENV = List.of( - ContainerImageEnvironmentItem.builder() - .iid(IMAGE_1_ID) - .key("UZERNAME") - .value("root") - .type(ContainerImageEnvironmentItemType.PRIVILEGED_USERNAME) - .build(), - ContainerImageEnvironmentItem.builder() - .iid(IMAGE_1_ID) - .key("MARIADB_ROOT_PASSWORD") - .value("mariadb") - .type(ContainerImageEnvironmentItemType.PRIVILEGED_PASSWORD) - .build(), - ContainerImageEnvironmentItem.builder() - .iid(IMAGE_1_ID) - .key("MARIADB_USER") - .value("mariadb") - .type(ContainerImageEnvironmentItemType.USERNAME) - .build(), - ContainerImageEnvironmentItem.builder() - .iid(IMAGE_1_ID) - .key("MARIADB_PASSWORD") - .value("mariadb") - .type(ContainerImageEnvironmentItemType.PASSWORD) - .build()); - - public final static List<ImageEnvItemDto> IMAGE_1_ENV_DTO = List.of(ImageEnvItemDto.builder() - .iid(IMAGE_1_ID) - .key("MARIADB_USER") - .value("mariadb") - .type(ImageEnvItemTypeDto.USERNAME) - .build(), - ImageEnvItemDto.builder() - .iid(IMAGE_1_ID) - .key("MARIADB_PASSWORD") - .value("mariadb") - .type(ImageEnvItemTypeDto.PASSWORD) - .build()); public final static Long IMAGE_DATE_1_ID = 1L; public final static Long IMAGE_DATE_1_IMAGE_ID = IMAGE_1_ID; @@ -736,13 +694,12 @@ public abstract class BaseTest { public final static ImageCreateDto IMAGE_1_CREATE_DTO = ImageCreateDto.builder() .registry(IMAGE_1_REGISTRY) - .repository(IMAGE_1_REPOSITORY) - .tag(IMAGE_1_TAG) + .name(IMAGE_1_NAME) + .version(IMAGE_1_VERSION) .dialect(IMAGE_1_DIALECT) .jdbcMethod(IMAGE_1_JDBC) .driverClass(IMAGE_1_DRIVER) .defaultPort(IMAGE_1_PORT) - .environment(IMAGE_1_ENV_DTO) .build(); public final static Long IMAGE_DATE_2_ID = 2L; @@ -795,64 +752,46 @@ public abstract class BaseTest { public final static ContainerImage IMAGE_1 = ContainerImage.builder() .id(IMAGE_1_ID) - .registry(IMAGE_1_REGISTRY) - .repository(IMAGE_1_REPOSITORY) - .tag(IMAGE_1_TAG) - .hash(IMAGE_1_HASH) - .compiled(IMAGE_1_BUILT) + .name(IMAGE_1_NAME) + .version(IMAGE_1_VERSION) .dialect(IMAGE_1_DIALECT) .jdbcMethod(IMAGE_1_JDBC) .driverClass(IMAGE_1_DRIVER) - .size(IMAGE_1_SIZE) - .environment(IMAGE_1_ENV) .defaultPort(IMAGE_1_PORT) .dateFormats(List.of(IMAGE_DATE_1, IMAGE_DATE_2, IMAGE_DATE_3)) .build(); public final static ContainerImage IMAGE_1_SIMPLE = ContainerImage.builder() .id(IMAGE_1_ID) - .registry(IMAGE_1_REGISTRY) - .repository(IMAGE_1_REPOSITORY) - .tag(IMAGE_1_TAG) - .hash(IMAGE_1_HASH) - .compiled(IMAGE_1_BUILT) + .name(IMAGE_1_NAME) + .version(IMAGE_1_VERSION) .dialect(IMAGE_1_DIALECT) .jdbcMethod(IMAGE_1_JDBC) .driverClass(IMAGE_1_DRIVER) - .size(IMAGE_1_SIZE) - .environment(List.of() /* for jpa */) .defaultPort(IMAGE_1_PORT) - .environment(List.of() /* for jpa */) .build(); public final static ImageDto IMAGE_1_DTO = ImageDto.builder() .id(IMAGE_1_ID) .registry(IMAGE_1_REGISTRY) - .repository(IMAGE_1_REPOSITORY) - .tag(IMAGE_1_TAG) - .hash(IMAGE_1_HASH) - .compiled(IMAGE_1_BUILT) + .name(IMAGE_1_NAME) + .version(IMAGE_1_VERSION) .dialect(IMAGE_1_DIALECT) .jdbcMethod(IMAGE_1_JDBC) .driverClass(IMAGE_1_DRIVER) - .size(BigInteger.valueOf(IMAGE_1_SIZE)) - .environment(IMAGE_1_ENV_DTO) .defaultPort(IMAGE_1_PORT) .dateFormats(List.of(IMAGE_DATE_1_DTO, IMAGE_DATE_2_DTO, IMAGE_DATE_3_DTO)) .build(); public final static ImageBriefDto IMAGE_1_BRIEF_DTO = ImageBriefDto.builder() .id(IMAGE_1_ID) - .registry(IMAGE_1_REGISTRY) - .repository(IMAGE_1_REPOSITORY) - .tag(IMAGE_1_TAG) + .name(IMAGE_1_NAME) + .version(IMAGE_1_VERSION) .build(); public final static Long IMAGE_2_ID = 2L; - public final static String IMAGE_2_REGISTRY = "docker.io/library"; - public final static String IMAGE_2_REPOSITORY = "mysql"; - public final static String IMAGE_2_TAG = "8.0"; - public final static String IMAGE_2_HASH = "83b40f2726e5"; + public final static String IMAGE_2_NAME = "mariadb"; + public final static String IMAGE_2_VERSION = "8.0"; public final static Integer IMAGE_2_PORT = 3306; public final static String IMAGE_2_DIALECT = "org.hibernate.dialect.MySQLDialect"; public final static String IMAGE_2_DRIVER = "com.mysql.jdbc.Driver"; @@ -860,66 +799,17 @@ public abstract class BaseTest { public final static Long IMAGE_2_SIZE = 12000L; public final static Instant IMAGE_2_BUILT = Instant.now().minus(38, HOURS); - public final static List<ImageEnvItemDto> IMAGE_2_ENV_DTO = List.of(ImageEnvItemDto.builder() - .iid(IMAGE_2_ID) - .key("MYSQL_USER") - .value("mysql") - .type(ImageEnvItemTypeDto.USERNAME) - .build(), - ImageEnvItemDto.builder() - .iid(IMAGE_2_ID) - .key("MYSQL_PASSWORD") - .value("mysql") - .type(ImageEnvItemTypeDto.PASSWORD) - .build()); - - public final static Long IMAGE_BROKER_ID = 2L; - public final static String IMAGE_BROKER_REPOSITORY = "rabbitmq"; - public final static String IMAGE_BROKER_TAG = "3-management-alpine"; - public final static String IMAGE_BROKER_HASH = "d6a5e003eae42397f7ee4589e9f21e231d3721ac131970d2286bd616e7f55bb4\n"; - public final static String IMAGE_BROKER_DIALECT = "org.hibernate.dialect.MariaDBDialect"; - public final static String IMAGE_BROKER_DRIVER = "org.mariadb.jdbc.Driver"; - public final static String IMAGE_BROKER_JDBC = "mariadb"; - public final static Integer IMAGE_BROKER_PORT = 15672; - public final static Long IMAGE_BROKER_SIZE = 12000L; - public final static Instant IMAGE_BROKER_BUILT = Instant.now().minus(40, HOURS); - - public final static ContainerImage IMAGE_BROKER = ContainerImage.builder() - .id(IMAGE_BROKER_ID) - .repository(IMAGE_BROKER_REPOSITORY) - .tag(IMAGE_BROKER_TAG) - .hash(IMAGE_BROKER_HASH) - .compiled(IMAGE_BROKER_BUILT) - .dialect(IMAGE_BROKER_DIALECT) - .jdbcMethod(IMAGE_BROKER_JDBC) - .driverClass(IMAGE_BROKER_DRIVER) - .size(IMAGE_BROKER_SIZE) - .defaultPort(IMAGE_BROKER_PORT) - .build(); - - public final static Long IMAGE_ELASTIC_ID = 3L; - public final static String IMAGE_ELASTIC_REPOSITORY = "opensearchproject/opensearch"; - public final static String IMAGE_ELASTIC_TAG = "2"; - - public final static ContainerImage IMAGE_ELASTIC = ContainerImage.builder() - .id(IMAGE_ELASTIC_ID) - .repository(IMAGE_ELASTIC_REPOSITORY) - .tag(IMAGE_ELASTIC_TAG) - .build(); public final static Long CONTAINER_1_ID = 1L; - public final static String CONTAINER_1_HASH = "deadbeef"; public final static ContainerImage CONTAINER_1_IMAGE = IMAGE_1; public final static ImageBriefDto CONTAINER_1_IMAGE_BRIEF_DTO = IMAGE_1_BRIEF_DTO; public final static String CONTAINER_1_NAME = "u01"; public final static String CONTAINER_1_INTERNALNAME = "dbrepo-userdb-u01"; - public final static String CONTAINER_1_IP = "172.30.0.5"; + public final static String CONTAINER_1_IP = "127.0.0.1"; + public final static Integer CONTAINER_1_PORT = 3308; + public final static String CONTAINER_1_PRIVILEGED_USERNAME = "root"; + public final static String CONTAINER_1_PRIVILEGED_PASSWORD = "dbrepo"; public final static Instant CONTAINER_1_CREATED = Instant.ofEpochSecond(1677399629) /* 2023-02-26 08:20:29 (UTC) */; - public final static HealthCheck CONTAINER_1_HEALTHCHECK = new HealthCheck() - .withTest(List.of("CMD", "mysqladmin", "ping", "--host=127.0.0.1", "--password=mariadb")); - public final static String[] CONTAINER_1_ENV = new String[]{"MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=weather"}; - public final static ContainerStateDto CONTAINER_1_STATE = ContainerStateDto.RUNNING; - public final static Boolean CONTAINER_1_RUNNING = true; public final static Container CONTAINER_1 = Container.builder() .id(CONTAINER_1_ID) @@ -927,13 +817,11 @@ public abstract class BaseTest { .internalName(CONTAINER_1_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_1_IMAGE) - .hash(CONTAINER_1_HASH) .created(CONTAINER_1_CREATED) - .ipAddress(CONTAINER_1_IP) - .createdBy(USER_1_ID) - .ownedBy(USER_1_ID) - .creator(USER_1) - .owner(USER_1) + .host(CONTAINER_1_IP) + .port(CONTAINER_1_PORT) + .privilegedUsername(CONTAINER_1_PRIVILEGED_USERNAME) + .privilegedPassword(CONTAINER_1_PRIVILEGED_PASSWORD) .build(); public final static Container CONTAINER_1_SIMPLE = Container.builder() @@ -941,14 +829,12 @@ public abstract class BaseTest { .name(CONTAINER_1_NAME) .internalName(CONTAINER_1_INTERNALNAME) .imageId(IMAGE_1_ID) - .image(CONTAINER_1_IMAGE) - .hash(CONTAINER_1_HASH) + .image(null /* for jpa */) .created(CONTAINER_1_CREATED) - .ipAddress(CONTAINER_1_IP) - .createdBy(USER_1_ID) - .ownedBy(USER_1_ID) - .creator(null /* for jpa */) - .owner(null /* for jpa */) + .host(CONTAINER_1_IP) + .port(CONTAINER_1_PORT) + .privilegedUsername(CONTAINER_1_PRIVILEGED_USERNAME) + .privilegedPassword(CONTAINER_1_PRIVILEGED_PASSWORD) .build(); public final static ContainerDto CONTAINER_1_DTO = ContainerDto.builder() @@ -956,24 +842,17 @@ public abstract class BaseTest { .name(CONTAINER_1_NAME) .internalName(CONTAINER_1_INTERNALNAME) .image(CONTAINER_1_IMAGE_BRIEF_DTO) - .hash(CONTAINER_1_HASH) .created(CONTAINER_1_CREATED) - .ipAddress(CONTAINER_1_IP) + .host(CONTAINER_1_IP) .owner(USER_1_BRIEF_DTO) - .state(CONTAINER_1_STATE) - .running(CONTAINER_1_RUNNING) .build(); public final static Long CONTAINER_2_ID = 2L; - public final static String CONTAINER_2_HASH = "deadbeef"; public final static ContainerImage CONTAINER_2_IMAGE = IMAGE_1; public final static String CONTAINER_2_NAME = "u02"; public final static String CONTAINER_2_INTERNALNAME = "dbrepo-userdb-u02"; public final static String CONTAINER_2_IP = "172.30.0.6"; public final static Instant CONTAINER_2_CREATED = Instant.ofEpochSecond(1677399655) /* 2023-02-26 08:20:55 (UTC) */; - public final static HealthCheck CONTAINER_2_HEALTHCHECK = new HealthCheck() - .withTest(List.of("CMD", "mysqladmin", "ping", "--host=127.0.0.1", "--password=mariadb")); - public final static String[] CONTAINER_2_ENV = new String[]{"MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=zoo"}; public final static Container CONTAINER_2 = Container.builder() .id(CONTAINER_2_ID) @@ -981,13 +860,8 @@ public abstract class BaseTest { .internalName(CONTAINER_2_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_2_IMAGE) - .hash(CONTAINER_2_HASH) .created(CONTAINER_2_CREATED) - .ipAddress(CONTAINER_2_IP) - .createdBy(USER_2_ID) - .ownedBy(USER_2_ID) - .creator(USER_2) - .owner(USER_2) + .host(CONTAINER_2_IP) .build(); public final static Container CONTAINER_2_SIMPLE = Container.builder() @@ -996,25 +870,16 @@ public abstract class BaseTest { .internalName(CONTAINER_2_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_2_IMAGE) - .hash(CONTAINER_2_HASH) .created(CONTAINER_2_CREATED) - .ipAddress(CONTAINER_2_IP) - .createdBy(USER_2_ID) - .ownedBy(USER_2_ID) - .creator(null /* for jpa */) - .owner(null /* for jpa */) + .host(CONTAINER_2_IP) .build(); public final static Long CONTAINER_3_ID = 3L; - public final static String CONTAINER_3_HASH = "deadbeef"; public final static ContainerImage CONTAINER_3_IMAGE = IMAGE_1; public final static String CONTAINER_3_NAME = "u03"; public final static String CONTAINER_3_INTERNALNAME = "dbrepo-userdb-u03"; public final static String CONTAINER_3_IP = "172.30.0.7"; public final static Instant CONTAINER_3_CREATED = Instant.ofEpochSecond(1677399672) /* 2023-02-26 08:21:12 (UTC) */; - public final static HealthCheck CONTAINER_3_HEALTHCHECK = new HealthCheck() - .withTest(List.of("CMD", "mysqladmin", "ping", "--host=127.0.0.1", "--password=mariadb")); - public final static String[] CONTAINER_3_ENV = new String[]{"MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=musicology"}; public final static Container CONTAINER_3 = Container.builder() .id(CONTAINER_3_ID) @@ -1022,13 +887,8 @@ public abstract class BaseTest { .internalName(CONTAINER_3_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_3_IMAGE) - .hash(CONTAINER_3_HASH) .created(CONTAINER_3_CREATED) - .ipAddress(CONTAINER_3_IP) - .createdBy(USER_3_ID) - .ownedBy(USER_3_ID) - .creator(USER_3) - .owner(USER_3) + .host(CONTAINER_3_IP) .build(); public final static Container CONTAINER_3_SIMPLE = Container.builder() @@ -1037,25 +897,16 @@ public abstract class BaseTest { .internalName(CONTAINER_3_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_3_IMAGE) - .hash(CONTAINER_3_HASH) .created(CONTAINER_3_CREATED) - .ipAddress(CONTAINER_3_IP) - .createdBy(USER_3_ID) - .ownedBy(USER_3_ID) - .creator(null /* for jpa */) - .owner(null /* for jpa */) + .host(CONTAINER_3_IP) .build(); public final static Long CONTAINER_4_ID = 4L; - public final static String CONTAINER_4_HASH = "deadbeef"; public final static ContainerImage CONTAINER_4_IMAGE = IMAGE_1; public final static String CONTAINER_4_NAME = "u04"; public final static String CONTAINER_4_INTERNALNAME = "dbrepo-userdb-u04"; public final static String CONTAINER_4_IP = "172.30.0.8"; public final static Instant CONTAINER_4_CREATED = Instant.ofEpochSecond(1677399688) /* 2023-02-26 08:21:28 (UTC) */; - public final static HealthCheck CONTAINER_4_HEALTHCHECK = new HealthCheck() - .withTest(List.of("CMD", "mysqladmin", "ping", "--host=127.0.0.1", "--password=mariadb")); - public final static String[] CONTAINER_4_ENV = new String[]{"MARIADB_ROOT_PASSWORD=mariadb", "MARIADB_DATABASE=sensor"}; public final static Container CONTAINER_4 = Container.builder() .id(CONTAINER_4_ID) @@ -1063,13 +914,8 @@ public abstract class BaseTest { .internalName(CONTAINER_4_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_4_IMAGE) - .hash(CONTAINER_4_HASH) .created(CONTAINER_4_CREATED) - .ipAddress(CONTAINER_4_IP) - .createdBy(USER_4_ID) - .ownedBy(USER_4_ID) - .creator(USER_4) - .owner(USER_4) + .host(CONTAINER_4_IP) .build(); public final static Container CONTAINER_4_SIMPLE = Container.builder() @@ -1078,57 +924,12 @@ public abstract class BaseTest { .internalName(CONTAINER_4_INTERNALNAME) .imageId(IMAGE_1_ID) .image(CONTAINER_4_IMAGE) - .hash(CONTAINER_4_HASH) .created(CONTAINER_4_CREATED) - .ipAddress(CONTAINER_4_IP) - .createdBy(USER_4_ID) - .ownedBy(USER_4_ID) - .creator(null /* for jpa */) - .owner(null /* for jpa */) + .host(CONTAINER_4_IP) .build(); - public final static Long CONTAINER_BROKER_ID = 5L; - public final static String CONTAINER_BROKER_NAME = "dbrepo-broker-service"; - public final static String CONTAINER_BROKER_INTERNAL_NAME = "dbrepo-broker-service"; - public final static String CONTAINER_BROKER_IP = "172.31.0.2"; - public final static String CONTAINER_BROKER_HASH = "deadbeef"; - public final static Instant CONTAINER_BROKER_CREATED = Instant.ofEpochSecond(1677399705) /* 2023-02-26 08:21:45 (UTC) */; - public final static HealthCheck CONTAINER_BROKER_HEALTHCHECK = new HealthCheck() - .withTest(List.of("CMD", "rabbitmq-diagnostics", "-q", "ping")); - public final static String[] CONTAINER_BROKER_ENV = new String[]{}; - - public final static Container CONTAINER_BROKER = Container.builder() - .id(CONTAINER_BROKER_ID) - .name(CONTAINER_BROKER_NAME) - .internalName(CONTAINER_BROKER_INTERNAL_NAME) - .imageId(IMAGE_BROKER_ID) - .image(IMAGE_BROKER) - .ipAddress(CONTAINER_BROKER_IP) - .hash(CONTAINER_BROKER_HASH) - .created(CONTAINER_BROKER_CREATED) - .creator(USER_1) - .build(); - public final static Long CONTAINER_ELASTIC_ID = 6L; - public final static String CONTAINER_ELASTIC_NAME = "dbrepo-search-db"; - public final static String CONTAINER_ELASTIC_INTERNAL_NAME = "dbrepo-search-db"; - public final static String CONTAINER_ELASTIC_IP = "172.31.0.3"; - public final static String CONTAINER_ELASTIC_HASH = "deadbeef"; - public final static Instant CONTAINER_ELASTIC_CREATED = Instant.ofEpochSecond(1677399721) /* 2023-02-26 08:22:01 (UTC) */; - public final static String[] CONTAINER_ELASTIC_ENV = new String[]{"discovery.type=single-node", "ES_JAVA_OPTS=-Xms4g -Xmx4g", - "logger.level=WARN", "bootstrap.memory_lock=true", "plugins.security.disabled=true"}; - - public final static Container CONTAINER_ELASTIC = Container.builder() - .id(CONTAINER_ELASTIC_ID) - .name(CONTAINER_ELASTIC_NAME) - .internalName(CONTAINER_ELASTIC_INTERNAL_NAME) - .imageId(IMAGE_ELASTIC_ID) - .image(IMAGE_ELASTIC) - .hash(CONTAINER_ELASTIC_HASH) - .ipAddress(CONTAINER_ELASTIC_IP) - .created(CONTAINER_ELASTIC_CREATED) - .creator(USER_1) - .build(); + public final static Long DATABASE_1_ID = 1L; public final static String DATABASE_1_NAME = "Weather"; @@ -1148,6 +949,7 @@ public abstract class BaseTest { .isPublic(DATABASE_1_PUBLIC) .name(DATABASE_1_NAME) .description(DATABASE_1_DESCRIPTION) + .cid(CONTAINER_1_ID) .container(CONTAINER_1) .internalName(DATABASE_1_INTERNALNAME) .exchangeName(DATABASE_1_EXCHANGE) @@ -1170,6 +972,7 @@ public abstract class BaseTest { .isPublic(DATABASE_1_PUBLIC) .name(DATABASE_1_NAME) .description(DATABASE_1_DESCRIPTION) + .cid(CONTAINER_1_ID) .container(null /* for jpa */) .internalName(DATABASE_1_INTERNALNAME) .exchangeName(DATABASE_1_EXCHANGE) @@ -1253,6 +1056,7 @@ public abstract class BaseTest { public final static DatabaseCreateDto DATABASE_1_CREATE = DatabaseCreateDto.builder() .name(DATABASE_1_NAME) .isPublic(DATABASE_1_PUBLIC) + .cid(CONTAINER_1_ID) .build(); public final static Long DATABASE_2_ID = 2L; @@ -1273,7 +1077,8 @@ public abstract class BaseTest { .isPublic(DATABASE_2_PUBLIC) .name(DATABASE_2_NAME) .description(DATABASE_2_DESCRIPTION) - .container(CONTAINER_2) + .cid(CONTAINER_1_ID) + .container(CONTAINER_1) .internalName(DATABASE_2_INTERNALNAME) .exchangeName(DATABASE_2_EXCHANGE) .created(DATABASE_2_CREATED) @@ -1295,6 +1100,7 @@ public abstract class BaseTest { .isPublic(DATABASE_2_PUBLIC) .name(DATABASE_2_NAME) .description(DATABASE_2_DESCRIPTION) + .cid(CONTAINER_1_ID) .container(null /* for jpa */) .internalName(DATABASE_2_INTERNALNAME) .exchangeName(DATABASE_2_EXCHANGE) @@ -1384,6 +1190,7 @@ public abstract class BaseTest { public final static DatabaseCreateDto DATABASE_2_CREATE = DatabaseCreateDto.builder() .name(DATABASE_2_NAME) .isPublic(DATABASE_2_PUBLIC) + .cid(CONTAINER_1_ID) .build(); public final static Long DATABASE_3_ID = 3L; @@ -1404,7 +1211,8 @@ public abstract class BaseTest { .isPublic(DATABASE_3_PUBLIC) .name(DATABASE_3_NAME) .description(DATABASE_3_DESCRIPTION) - .container(CONTAINER_3) + .cid(CONTAINER_1_ID) + .container(CONTAINER_1) .internalName(DATABASE_3_INTERNALNAME) .exchangeName(DATABASE_3_EXCHANGE) .created(DATABASE_3_CREATED) @@ -1426,6 +1234,7 @@ public abstract class BaseTest { .isPublic(DATABASE_3_PUBLIC) .name(DATABASE_3_NAME) .description(DATABASE_3_DESCRIPTION) + .cid(CONTAINER_1_ID) .container(null /* for jpa */) .internalName(DATABASE_3_INTERNALNAME) .exchangeName(DATABASE_3_EXCHANGE) @@ -1509,6 +1318,7 @@ public abstract class BaseTest { public final static DatabaseCreateDto DATABASE_3_CREATE = DatabaseCreateDto.builder() .name(DATABASE_3_NAME) .isPublic(DATABASE_3_PUBLIC) + .cid(CONTAINER_1_ID) .build(); public final static Long DATABASE_4_ID = 4L; @@ -1527,6 +1337,7 @@ public abstract class BaseTest { .isPublic(DATABASE_4_PUBLIC) .name(DATABASE_4_NAME) .description(DATABASE_4_DESCRIPTION) + .cid(CONTAINER_4_ID) .container(CONTAINER_4) .internalName(DATABASE_4_INTERNALNAME) .exchangeName(DATABASE_4_EXCHANGE) @@ -1549,6 +1360,7 @@ public abstract class BaseTest { .isPublic(DATABASE_4_PUBLIC) .name(DATABASE_4_NAME) .description(DATABASE_4_DESCRIPTION) + .cid(CONTAINER_4_ID) .container(CONTAINER_4) .internalName(DATABASE_4_INTERNALNAME) .exchangeName(DATABASE_4_EXCHANGE) @@ -4291,7 +4103,6 @@ public abstract class BaseTest { public final static Boolean VIEW_1_INITIAL_VIEW = false; public final static String VIEW_1_NAME = "JUnit"; public final static String VIEW_1_INTERNAL_NAME = "junit"; - public final static Long VIEW_1_CONTAINER_ID = CONTAINER_1_ID; public final static Long VIEW_1_DATABASE_ID = DATABASE_1_ID; public final static Boolean VIEW_1_PUBLIC = true; public final static String VIEW_1_QUERY = "select `location`, `lat`, `lng` from `weather_location`"; @@ -4347,7 +4158,6 @@ public abstract class BaseTest { .isInitialView(VIEW_1_INITIAL_VIEW) .name(VIEW_1_NAME) .internalName(VIEW_1_INTERNAL_NAME) - .vcid(VIEW_1_CONTAINER_ID) .vdbid(VIEW_1_DATABASE_ID) .isPublic(VIEW_1_PUBLIC) .query(VIEW_1_QUERY) @@ -4371,7 +4181,6 @@ public abstract class BaseTest { public final static Boolean VIEW_2_INITIAL_VIEW = false; public final static String VIEW_2_NAME = "JUnit2"; public final static String VIEW_2_INTERNAL_NAME = "junit2"; - public final static Long VIEW_2_CONTAINER_ID = CONTAINER_1_ID; public final static Long VIEW_2_DATABASE_ID = DATABASE_1_ID; public final static Boolean VIEW_2_PUBLIC = true; public final static String VIEW_2_QUERY = "select `date`, `location`, `mintemp`, `rainfall` from `weather_aus` where `location` = 'Albury'"; @@ -4457,7 +4266,6 @@ public abstract class BaseTest { .isInitialView(VIEW_2_INITIAL_VIEW) .name(VIEW_2_NAME) .internalName(VIEW_2_INTERNAL_NAME) - .vcid(VIEW_2_CONTAINER_ID) .vdbid(VIEW_2_DATABASE_ID) .isPublic(VIEW_2_PUBLIC) .columns(VIEW_2_COLUMNS) @@ -4481,7 +4289,6 @@ public abstract class BaseTest { public final static Boolean VIEW_3_INITIAL_VIEW = false; public final static String VIEW_3_NAME = "JUnit3"; public final static String VIEW_3_INTERNAL_NAME = "junit3"; - public final static Long VIEW_3_CONTAINER_ID = CONTAINER_1_ID; public final static Long VIEW_3_DATABASE_ID = DATABASE_1_ID; public final static Boolean VIEW_3_PUBLIC = false; public final static String VIEW_3_QUERY = "select w.`mintemp`, w.`rainfall`, w.`location`, m.`date` from `weather_aus` w join `junit2` m on m.`location` = w.`location`"; @@ -4552,7 +4359,6 @@ public abstract class BaseTest { .isInitialView(VIEW_3_INITIAL_VIEW) .name(VIEW_3_NAME) .internalName(VIEW_3_INTERNAL_NAME) - .vcid(VIEW_3_CONTAINER_ID) .vdbid(VIEW_3_DATABASE_ID) .isPublic(VIEW_3_PUBLIC) .columns(VIEW_3_COLUMNS) @@ -4576,7 +4382,6 @@ public abstract class BaseTest { public final static Boolean VIEW_4_INITIAL_VIEW = false; public final static String VIEW_4_NAME = "Mock View"; public final static String VIEW_4_INTERNAL_NAME = "mock_view"; - public final static Long VIEW_4_CONTAINER_ID = CONTAINER_2_ID; public final static Long VIEW_4_DATABASE_ID = DATABASE_2_ID; public final static Long VIEW_4_TABLE_ID = TABLE_4_ID; public final static Boolean VIEW_4_PUBLIC = true; @@ -4840,7 +4645,6 @@ public abstract class BaseTest { .isInitialView(VIEW_4_INITIAL_VIEW) .name(VIEW_4_NAME) .internalName(VIEW_4_INTERNAL_NAME) - .vcid(VIEW_4_CONTAINER_ID) .vdbid(VIEW_4_DATABASE_ID) .isPublic(VIEW_4_PUBLIC) .query(VIEW_4_QUERY) @@ -4853,7 +4657,6 @@ public abstract class BaseTest { public final static Boolean VIEW_5_INITIAL_VIEW = false; public final static String VIEW_5_NAME = "Mock View"; public final static String VIEW_5_INTERNAL_NAME = "mock_view"; - public final static Long VIEW_5_CONTAINER_ID = CONTAINER_2_ID; public final static Long VIEW_5_DATABASE_ID = DATABASE_2_ID; public final static Boolean VIEW_5_PUBLIC = true; public final static String VIEW_5_QUERY = "SELECT `location`, `lat`, `lng` FROM `weather_location` WHERE `location` = 'Albury'"; @@ -4863,7 +4666,6 @@ public abstract class BaseTest { .isInitialView(VIEW_5_INITIAL_VIEW) .name(VIEW_5_NAME) .internalName(VIEW_5_INTERNAL_NAME) - .vcid(VIEW_5_CONTAINER_ID) .vdbid(VIEW_5_DATABASE_ID) .isPublic(VIEW_5_PUBLIC) .query(VIEW_5_QUERY) @@ -4950,7 +4752,6 @@ public abstract class BaseTest { public final static Long IDENTIFIER_1_ID = 1L; public final static Long IDENTIFIER_1_QUERY_ID = QUERY_1_ID; - public final static Long IDENTIFIER_1_CONTAINER_ID = CONTAINER_1_ID; public final static Long IDENTIFIER_1_DATABASE_ID = DATABASE_1_ID; public final static String IDENTIFIER_1_DESCRIPTION = "Selecting all from the weather Austrian table"; public final static String IDENTIFIER_1_DESCRIPTION_MODIFY = "Selecting some from the weather Austrian table"; @@ -4997,7 +4798,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_1 = Identifier.builder() .id(IDENTIFIER_1_ID) - .containerId(IDENTIFIER_1_CONTAINER_ID) .databaseId(IDENTIFIER_1_DATABASE_ID) .queryId(IDENTIFIER_1_QUERY_ID) .description(IDENTIFIER_1_DESCRIPTION) @@ -5022,7 +4822,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_1_SIMPLE = Identifier.builder() .id(IDENTIFIER_1_ID) - .containerId(IDENTIFIER_1_CONTAINER_ID) .databaseId(IDENTIFIER_1_DATABASE_ID) .queryId(IDENTIFIER_1_QUERY_ID) .description(IDENTIFIER_1_DESCRIPTION) @@ -5047,7 +4846,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_1_WITH_DOI = Identifier.builder() .id(IDENTIFIER_1_ID) - .containerId(IDENTIFIER_1_CONTAINER_ID) .databaseId(IDENTIFIER_1_DATABASE_ID) .queryId(IDENTIFIER_1_QUERY_ID) .description(IDENTIFIER_1_DESCRIPTION) @@ -5072,7 +4870,6 @@ public abstract class BaseTest { public final static IdentifierDto IDENTIFIER_1_DTO = IdentifierDto.builder() .id(IDENTIFIER_1_ID) - .containerId(IDENTIFIER_1_CONTAINER_ID) .databaseId(IDENTIFIER_1_DATABASE_ID) .queryId(IDENTIFIER_1_QUERY_ID) .description(IDENTIFIER_1_DESCRIPTION) @@ -5097,7 +4894,6 @@ public abstract class BaseTest { public final static IdentifierDto IDENTIFIER_1_WITH_DOI_DTO = IdentifierDto.builder() .id(IDENTIFIER_1_ID) - .containerId(IDENTIFIER_1_CONTAINER_ID) .databaseId(IDENTIFIER_1_DATABASE_ID) .queryId(IDENTIFIER_1_QUERY_ID) .description(IDENTIFIER_1_DESCRIPTION) @@ -5122,7 +4918,6 @@ public abstract class BaseTest { public final static Long IDENTIFIER_2_ID = 2L; public final static Long IDENTIFIER_2_QUERY_ID = QUERY_2_ID; - public final static Long IDENTIFIER_2_CONTAINER_ID = CONTAINER_2_ID; public final static Long IDENTIFIER_2_DATABASE_ID = DATABASE_2_ID; public final static String IDENTIFIER_2_DESCRIPTION = "Selecting all from the weather Austria table"; public final static String IDENTIFIER_2_TITLE = "Australian weather data"; @@ -5188,7 +4983,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_2 = Identifier.builder() .id(IDENTIFIER_2_ID) - .containerId(IDENTIFIER_2_CONTAINER_ID) .databaseId(IDENTIFIER_2_DATABASE_ID) .queryId(IDENTIFIER_2_QUERY_ID) .description(IDENTIFIER_2_DESCRIPTION) @@ -5214,7 +5008,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_2_SIMPLE = Identifier.builder() .id(IDENTIFIER_2_ID) - .containerId(IDENTIFIER_2_CONTAINER_ID) .databaseId(IDENTIFIER_2_DATABASE_ID) .queryId(IDENTIFIER_2_QUERY_ID) .description(IDENTIFIER_2_DESCRIPTION) @@ -5240,7 +5033,6 @@ public abstract class BaseTest { public final static IdentifierDto IDENTIFIER_2_DTO = IdentifierDto.builder() .id(IDENTIFIER_2_ID) - .containerId(IDENTIFIER_2_CONTAINER_ID) .databaseId(IDENTIFIER_2_DATABASE_ID) .queryId(IDENTIFIER_2_QUERY_ID) .description(IDENTIFIER_2_DESCRIPTION) @@ -5331,7 +5123,6 @@ public abstract class BaseTest { public final static IdentifierDto IDENTIFIER_1_MODIFY_DTO = IdentifierDto.builder() .id(IDENTIFIER_1_ID) - .containerId(CONTAINER_1_ID) .databaseId(DATABASE_1_ID) .queryId(IDENTIFIER_1_QUERY_ID) .databaseId(IDENTIFIER_1_DATABASE_ID) @@ -5349,7 +5140,6 @@ public abstract class BaseTest { .build(); public final static IdentifierCreateDto IDENTIFIER_1_DTO_REQUEST = IdentifierCreateDto.builder() - .cid(IDENTIFIER_1_CONTAINER_ID) .dbid(IDENTIFIER_1_DATABASE_ID) .description(IDENTIFIER_1_DESCRIPTION) .title(IDENTIFIER_1_TITLE) @@ -5363,7 +5153,6 @@ public abstract class BaseTest { .build(); public final static IdentifierUpdateDto IDENTIFIER_1_DTO_UPDATE_REQUEST = IdentifierUpdateDto.builder() - .cid(IDENTIFIER_1_CONTAINER_ID) .dbid(IDENTIFIER_1_DATABASE_ID) .description(IDENTIFIER_1_DESCRIPTION) .title(IDENTIFIER_1_TITLE_MODIFY) @@ -5401,7 +5190,6 @@ public abstract class BaseTest { public final static IdentifierCreateDto IDENTIFIER_2_DTO_REQUEST = IdentifierCreateDto.builder() .qid(IDENTIFIER_2_QUERY_ID) - .cid(IDENTIFIER_2_CONTAINER_ID) .qid(IDENTIFIER_2_QUERY_ID) .dbid(IDENTIFIER_2_DATABASE_ID) .description(IDENTIFIER_2_DESCRIPTION) @@ -5418,7 +5206,6 @@ public abstract class BaseTest { public final static IdentifierUpdateDto IDENTIFIER_2_DTO_UPDATE_REQUEST = IdentifierUpdateDto.builder() .qid(IDENTIFIER_2_QUERY_ID) - .cid(IDENTIFIER_2_CONTAINER_ID) .qid(IDENTIFIER_2_QUERY_ID) .dbid(IDENTIFIER_2_DATABASE_ID) .description(IDENTIFIER_2_DESCRIPTION) @@ -5436,7 +5223,6 @@ public abstract class BaseTest { public final static Long IDENTIFIER_3_ID = 3L; public final static Long IDENTIFIER_3_QUERY_ID = QUERY_3_ID; - public final static Long IDENTIFIER_3_CONTAINER_ID = CONTAINER_3_ID; public final static Long IDENTIFIER_3_DATABASE_ID = DATABASE_3_ID; public final static String IDENTIFIER_3_DESCRIPTION = "Selecting all from the weather Norwegian table"; public final static String IDENTIFIER_3_TITLE = "Norwegian weather data"; @@ -5522,7 +5308,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_3 = Identifier.builder() .id(IDENTIFIER_3_ID) - .containerId(IDENTIFIER_3_CONTAINER_ID) .databaseId(IDENTIFIER_3_DATABASE_ID) .queryId(IDENTIFIER_3_QUERY_ID) .description(IDENTIFIER_3_DESCRIPTION) @@ -5548,7 +5333,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_3_SIMPLE = Identifier.builder() .id(IDENTIFIER_3_ID) - .containerId(IDENTIFIER_3_CONTAINER_ID) .databaseId(IDENTIFIER_3_DATABASE_ID) .queryId(IDENTIFIER_3_QUERY_ID) .description(IDENTIFIER_3_DESCRIPTION) @@ -5574,7 +5358,6 @@ public abstract class BaseTest { public final static IdentifierDto IDENTIFIER_3_DTO = IdentifierDto.builder() .id(IDENTIFIER_3_ID) - .containerId(IDENTIFIER_3_CONTAINER_ID) .databaseId(IDENTIFIER_3_DATABASE_ID) .queryId(IDENTIFIER_3_QUERY_ID) .description(IDENTIFIER_3_DESCRIPTION) @@ -5599,7 +5382,6 @@ public abstract class BaseTest { .build(); public final static IdentifierCreateDto IDENTIFIER_3_DTO_REQUEST = IdentifierCreateDto.builder() - .cid(IDENTIFIER_3_CONTAINER_ID) .dbid(IDENTIFIER_3_DATABASE_ID) .qid(IDENTIFIER_3_QUERY_ID) .description(IDENTIFIER_3_DESCRIPTION) @@ -5614,7 +5396,6 @@ public abstract class BaseTest { .build(); public final static IdentifierUpdateDto IDENTIFIER_3_DTO_UPDATE_REQUEST = IdentifierUpdateDto.builder() - .cid(IDENTIFIER_3_CONTAINER_ID) .dbid(IDENTIFIER_3_DATABASE_ID) .qid(IDENTIFIER_3_QUERY_ID) .description(IDENTIFIER_3_DESCRIPTION) @@ -5630,7 +5411,6 @@ public abstract class BaseTest { .build(); public final static Long IDENTIFIER_4_ID = 4L; - public final static Long IDENTIFIER_4_CONTAINER_ID = CONTAINER_4_ID; public final static Long IDENTIFIER_4_DATABASE_ID = DATABASE_4_ID; public final static String IDENTIFIER_4_DESCRIPTION = "Selecting all from the weather Sweden table"; public final static String IDENTIFIER_4_TITLE = "Sweden weather data"; @@ -5655,7 +5435,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_4 = Identifier.builder() .id(IDENTIFIER_4_ID) - .containerId(IDENTIFIER_4_CONTAINER_ID) .databaseId(IDENTIFIER_4_DATABASE_ID) .description(IDENTIFIER_4_DESCRIPTION) .title(IDENTIFIER_4_TITLE) @@ -5680,7 +5459,6 @@ public abstract class BaseTest { public final static Identifier IDENTIFIER_4_SIMPLE = Identifier.builder() .id(IDENTIFIER_4_ID) - .containerId(IDENTIFIER_4_CONTAINER_ID) .databaseId(IDENTIFIER_4_DATABASE_ID) .description(IDENTIFIER_4_DESCRIPTION) .title(IDENTIFIER_4_TITLE) diff --git a/dbrepo-metadata-db/test/src/test/resources/schema.sql b/dbrepo-metadata-db/test/src/test/resources/schema.sql deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000