From cb42133a56b3f1521a0df7efe0281e9b88b73521 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Mon, 28 Nov 2022 21:58:58 +0100
Subject: [PATCH] Works partly

---
 .env.unix.example                             |  4 +--
 .env.win.example                              |  4 +--
 docker-compose.yml                            | 30 +++++++++++++++++++
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  1 +
 .../src/main/resources/application.yml        |  1 +
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  1 +
 .../src/main/resources/application.yml        |  1 +
 .../service/impl/ContainerServiceImpl.java    |  2 +-
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  5 ++--
 .../src/main/resources/application.yml        |  1 +
 .../service/impl/HibernateConnector.java      |  4 ++-
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  1 +
 .../src/main/resources/application.yml        |  1 +
 .../tuwien/entities/container/Container.java  |  3 ++
 fda-metadata-db/setup-schema.sql              |  2 +-
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  1 +
 .../src/main/resources/application.yml        |  1 +
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  1 +
 .../src/main/resources/application.yml        |  1 +
 .../src/main/resources/application-docker.yml |  1 +
 .../src/main/resources/application-local.yml  |  1 +
 .../src/main/resources/application.yml        |  1 +
 28 files changed, 65 insertions(+), 9 deletions(-)

diff --git a/.env.unix.example b/.env.unix.example
index a5413b4849..c49d387856 100644
--- a/.env.unix.example
+++ b/.env.unix.example
@@ -1,6 +1,6 @@
 METADATA_DB=fda
-METADATA_USERNAME=postgres
-METADATA_PASSWORD=postgres
+METADATA_USERNAME=root
+METADATA_PASSWORD=dbrepo
 BROKER_USERNAME=fda
 BROKER_PASSWORD=fda
 BROKER_CONSUMERS=2
diff --git a/.env.win.example b/.env.win.example
index db2d3f030a..cd9cff61cb 100644
--- a/.env.win.example
+++ b/.env.win.example
@@ -1,6 +1,6 @@
 METADATA_DB=fda
-METADATA_USERNAME=postgres
-METADATA_PASSWORD=postgres
+METADATA_USERNAME=root
+METADATA_PASSWORD=dbrepo
 BROKER_USERNAME=fda
 BROKER_PASSWORD=fda
 BROKER_CONSUMERS=2
diff --git a/docker-compose.yml b/docker-compose.yml
index f93b872143..df03d641e5 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -43,6 +43,8 @@ services:
       - metadata-db-data:/var/lib/mysql
     ports:
       - "3306:3306"
+    env_file:
+      - .env
     logging:
       driver: json-file
 
@@ -56,6 +58,8 @@ services:
       core:
     ports:
       - "9090:9090"
+    env_file:
+      - .env
     environment:
       SPRING_PROFILES_ACTIVE: docker
     logging:
@@ -73,6 +77,8 @@ services:
       SPRING_PROFILES_ACTIVE: docker
     ports:
       - "9095:9095"
+    env_file:
+      - .env
     depends_on:
       fda-discovery-service:
         condition: service_healthy
@@ -92,6 +98,8 @@ services:
       SPRING_PROFILES_ACTIVE: docker
     ports:
       - "9092:9092"
+    env_file:
+      - .env
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock
     depends_on:
@@ -116,6 +124,8 @@ services:
       SPRING_PROFILES_ACTIVE: docker
     ports:
       - "9091:9091"
+    env_file:
+      - .env
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock
     depends_on:
@@ -136,6 +146,8 @@ services:
       SPRING_PROFILES_ACTIVE: docker
     ports:
       - "9097:9097"
+    env_file:
+      - .env
     depends_on:
       fda-discovery-service:
         condition: service_healthy
@@ -157,6 +169,8 @@ services:
       userdb:
     ports:
       - "9093:9093"
+    env_file:
+      - .env
     environment:
       SPRING_PROFILES_ACTIVE: docker
     volumes:
@@ -185,6 +199,8 @@ services:
       multipart.location: /tmp
     ports:
       - "9094:9094"
+    env_file:
+      - .env
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock
       - "/tmp:/tmp"
@@ -210,6 +226,8 @@ services:
       SPRING_PROFILES_ACTIVE: docker
     ports:
       - "9096:9096"
+    env_file:
+      - .env
     volumes:
       - "/tmp:/tmp"
     depends_on:
@@ -232,6 +250,8 @@ services:
       SPRING_PROFILES_ACTIVE: docker
     ports:
       - "9099:9099"
+    env_file:
+      - .env
     depends_on:
       fda-metadata-db:
         condition: service_started
@@ -252,6 +272,8 @@ services:
       hostname: analyse-service
     ports:
       - "5000:5000"
+    env_file:
+      - .env
     volumes:
       - "/tmp:/tmp"
       - /var/run/docker.sock:/var/run/docker.sock
@@ -271,6 +293,8 @@ services:
       core:
     ports:
       - "5010:5010"
+    env_file:
+      - .env
     volumes:
       - "/tmp:/tmp"
       - /var/run/docker.sock:/var/run/docker.sock
@@ -293,6 +317,8 @@ services:
     ports:
       - "5672:5672"
       - "15672:15672"
+    env_file:
+      - .env
     depends_on:
       fda-discovery-service:
         condition: service_healthy
@@ -320,6 +346,8 @@ services:
     ports:
       - 9200:9200
       - 9600:9600
+    env_file:
+      - .env
     volumes:
       - search-service-data:/usr/share/elasticsearch/data
     logging:
@@ -335,6 +363,8 @@ services:
       core:
     ports:
       - "3000:3000"
+    env_file:
+      - .env
     volumes:
       - "/tmp:/tmp"
     depends_on:
diff --git a/fda-authentication-service/rest-service/src/main/resources/application-docker.yml b/fda-authentication-service/rest-service/src/main/resources/application-docker.yml
index 9bd14ae2ff..b2f37baad9 100644
--- a/fda-authentication-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-authentication-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-authentication-service/rest-service/src/main/resources/application-local.yml b/fda-authentication-service/rest-service/src/main/resources/application-local.yml
index b9c10d9360..78f06b7339 100644
--- a/fda-authentication-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-authentication-service/rest-service/src/main/resources/application-local.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-authentication-service/rest-service/src/main/resources/application.yml b/fda-authentication-service/rest-service/src/main/resources/application.yml
index a8fb4837e3..77e0dde1d9 100644
--- a/fda-authentication-service/rest-service/src/main/resources/application.yml
+++ b/fda-authentication-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-container-service/rest-service/src/main/resources/application-docker.yml b/fda-container-service/rest-service/src/main/resources/application-docker.yml
index bff6830b95..9a58c8b516 100644
--- a/fda-container-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-container-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-container-service/rest-service/src/main/resources/application-local.yml b/fda-container-service/rest-service/src/main/resources/application-local.yml
index 0e03826a18..13b0d446f6 100644
--- a/fda-container-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-container-service/rest-service/src/main/resources/application-local.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-container-service/rest-service/src/main/resources/application.yml b/fda-container-service/rest-service/src/main/resources/application.yml
index b9605b4fdd..e23246138a 100644
--- a/fda-container-service/rest-service/src/main/resources/application.yml
+++ b/fda-container-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java b/fda-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
index eadb36f909..a58f00c227 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
@@ -71,7 +71,7 @@ public class ContainerServiceImpl implements ContainerService {
         /* entity */
         final Integer availableTcpPort = SocketUtils.findAvailableTcpPort(10000);
         Container container = new Container();
-        container.setImage(image.get());
+        container.setImageId(image.get().getId());
         container.setPort(availableTcpPort);
         container.setName(createDto.getName());
         container.setInternalName(containerMapper.containerToInternalContainerName(container));
diff --git a/fda-database-service/rest-service/src/main/resources/application-docker.yml b/fda-database-service/rest-service/src/main/resources/application-docker.yml
index 60f5b8729a..3c1663a172 100644
--- a/fda-database-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-database-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-database-service/rest-service/src/main/resources/application-local.yml b/fda-database-service/rest-service/src/main/resources/application-local.yml
index bc7fb96365..84337e9e82 100644
--- a/fda-database-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-database-service/rest-service/src/main/resources/application-local.yml
@@ -2,7 +2,7 @@ app.version: '@project.version@'
 spring:
   main.banner-mode: off
   datasource:
-    url: jdbc:mariadb://metadata-db:3306/fda
+    url: jdbc:mariadb://localhost:3306/fda
     driver-class-name: org.mariadb.jdbc.Driver
     username: root
     password: dbrepo
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
@@ -38,7 +39,7 @@ eureka:
   client.serviceUrl.defaultZone: http://localhost:9090/eureka/
 fda:
   elastic:
-    endpoint: search-service:9200
+    endpoint: localhost:9200
     username: elastic
     password: elastic
   ready.path: ./ready
diff --git a/fda-database-service/rest-service/src/main/resources/application.yml b/fda-database-service/rest-service/src/main/resources/application.yml
index c01a4243df..65c912faef 100644
--- a/fda-database-service/rest-service/src/main/resources/application.yml
+++ b/fda-database-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-database-service/services/src/main/java/at/tuwien/service/impl/HibernateConnector.java b/fda-database-service/services/src/main/java/at/tuwien/service/impl/HibernateConnector.java
index 3656f0a6ef..edb6d203d7 100644
--- a/fda-database-service/services/src/main/java/at/tuwien/service/impl/HibernateConnector.java
+++ b/fda-database-service/services/src/main/java/at/tuwien/service/impl/HibernateConnector.java
@@ -21,6 +21,9 @@ public abstract class HibernateConnector {
 
     protected static ComboPooledDataSource getDataSource(ContainerImage image, Container container, Database database) {
         final ComboPooledDataSource dataSource = new ComboPooledDataSource();
+        log.trace("jdbc method: {}", image.getJdbcMethod());
+        log.trace("jdbc url: {}", container.getInternalName());
+        log.trace("jdbc resource: {}", database != null ? database.getInternalName() : "");
         final String url = "jdbc:" + image.getJdbcMethod() + "://" + container.getInternalName() + "/" + (database != null ? database.getInternalName() : "");
         dataSource.setJdbcUrl(url);
         final String username = image.getEnvironment()
@@ -42,7 +45,6 @@ public abstract class HibernateConnector {
         dataSource.setAcquireIncrement(5);
         dataSource.setMaxPoolSize(20);
         dataSource.setMaxStatements(100);
-        log.trace("mapped data source {}", dataSource);
         return dataSource;
     }
 
diff --git a/fda-identifier-service/rest-service/src/main/resources/application-docker.yml b/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
index 5465a3c284..8fe0cad1c4 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-identifier-service/rest-service/src/main/resources/application-local.yml b/fda-identifier-service/rest-service/src/main/resources/application-local.yml
index 3211c42319..2d089cef27 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application-local.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-identifier-service/rest-service/src/main/resources/application.yml b/fda-identifier-service/rest-service/src/main/resources/application.yml
index f4004bb817..ccc0ba4a88 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
index 22894af699..2adde893da 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
@@ -50,6 +50,9 @@ public class Container {
     @Column(nullable = false)
     private String hash;
 
+    @Column(name = "image_id", nullable = false, updatable = false)
+    private Long imageId;
+
     @Column
     private Integer port;
 
diff --git a/fda-metadata-db/setup-schema.sql b/fda-metadata-db/setup-schema.sql
index 944a6b9e07..fd90720928 100644
--- a/fda-metadata-db/setup-schema.sql
+++ b/fda-metadata-db/setup-schema.sql
@@ -88,7 +88,7 @@ CREATE TABLE IF NOT EXISTS mdb_containers
     INTERNAL_NAME character varying(255) NOT NULL,
     NAME          character varying(255) NOT NULL,
     PORT          integer,
-    image_id      bigint,
+    image_id      bigint                 NOT NULL,
     ip_address    character varying(255),
     created       timestamp              NOT NULL DEFAULT NOW(),
     created_by    bigint                 NOT NULL,
diff --git a/fda-metadata-service/rest-service/src/main/resources/application-docker.yml b/fda-metadata-service/rest-service/src/main/resources/application-docker.yml
index 99da976873..f65c5a1e0f 100644
--- a/fda-metadata-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-metadata-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-metadata-service/rest-service/src/main/resources/application-local.yml b/fda-metadata-service/rest-service/src/main/resources/application-local.yml
index 15bd364258..819ac55e9f 100644
--- a/fda-metadata-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-metadata-service/rest-service/src/main/resources/application-local.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-metadata-service/rest-service/src/main/resources/application.yml b/fda-metadata-service/rest-service/src/main/resources/application.yml
index 291622e4ac..e489362136 100644
--- a/fda-metadata-service/rest-service/src/main/resources/application.yml
+++ b/fda-metadata-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-query-service/rest-service/src/main/resources/application-docker.yml b/fda-query-service/rest-service/src/main/resources/application-docker.yml
index 6ea04978aa..c82bd157f2 100644
--- a/fda-query-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-query-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-query-service/rest-service/src/main/resources/application-local.yml b/fda-query-service/rest-service/src/main/resources/application-local.yml
index 5de9ea5ac4..87c57d456c 100644
--- a/fda-query-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-query-service/rest-service/src/main/resources/application-local.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-query-service/rest-service/src/main/resources/application.yml b/fda-query-service/rest-service/src/main/resources/application.yml
index 0f84ade3e0..eaf5448ec2 100644
--- a/fda-query-service/rest-service/src/main/resources/application.yml
+++ b/fda-query-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-table-service/rest-service/src/main/resources/application-docker.yml b/fda-table-service/rest-service/src/main/resources/application-docker.yml
index 51bb0170a0..b2a1fbe26e 100644
--- a/fda-table-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-table-service/rest-service/src/main/resources/application-docker.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-table-service/rest-service/src/main/resources/application-local.yml b/fda-table-service/rest-service/src/main/resources/application-local.yml
index 99d3153d22..6e720cd3f5 100644
--- a/fda-table-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-table-service/rest-service/src/main/resources/application-local.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
diff --git a/fda-table-service/rest-service/src/main/resources/application.yml b/fda-table-service/rest-service/src/main/resources/application.yml
index 502aa32659..5428d2c0fb 100644
--- a/fda-table-service/rest-service/src/main/resources/application.yml
+++ b/fda-table-service/rest-service/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring:
     database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
+      use-new-id-generator-mappings: false
     open-in-view: false
     properties:
       hibernate:
-- 
GitLab