Merge "Added support for using oauth token for Kafka"
authorPatrik Buhr <patrik.buhr@est.tech>
Thu, 23 Mar 2023 13:00:32 +0000 (13:00 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Thu, 23 Mar 2023 13:00:32 +0000 (13:00 +0000)
datafilecollector/Dockerfile
influxlogger/Dockerfile
pmproducer/Dockerfile
pmproducer/src/main/java/org/oran/pmproducer/tasks/ProducerRegstrationTask.java
pmproducer/src/test/java/org/oran/pmproducer/ApplicationTest.java

index cee8d75..784550f 100755 (executable)
 # SPDX-License-Identifier: Apache-2.0
 # ============LICENSE_END=========================================================
 #
-FROM openjdk:17-jdk-slim
+FROM openjdk:17-jdk as jre-build
+
+RUN $JAVA_HOME/bin/jlink \
+--verbose \
+--add-modules ALL-MODULE-PATH \
+--strip-debug \
+--no-man-pages \
+--no-header-files \
+--compress=2 \
+--output /customjre
+
+# Use debian base image (same as openjdk uses)
+FROM debian:11-slim
+
+ENV JAVA_HOME=/jre
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+#copy JRE from the base image
+COPY --from=jre-build /customjre $JAVA_HOME
 
 EXPOSE 8100 8433
 
@@ -48,4 +66,4 @@ RUN mkdir -p /var/log/ONAP /opt/app/datafile/etc/cert/ && \
 USER $user
 
 COPY --chown=$user:$group /target/datafile-app-server.jar /opt/app/datafile/
-ENTRYPOINT ["java", "-jar", "/opt/app/datafile/datafile-app-server.jar"]
+CMD ["/jre/bin/java", "-jar", "/opt/app/datafile/datafile-app-server.jar"]
index c1d6be5..fea4ba5 100644 (file)
 # ============LICENSE_END=========================================================
 
 
-FROM openjdk:17-jdk-slim
+FROM openjdk:17-jdk as jre-build
+
+RUN $JAVA_HOME/bin/jlink \
+--verbose \
+--add-modules ALL-MODULE-PATH \
+--strip-debug \
+--no-man-pages \
+--no-header-files \
+--compress=2 \
+--output /customjre
+
+# Use debian base image (same as openjdk uses)
+FROM debian:11-slim
+
+ENV JAVA_HOME=/jre
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+#copy JRE from the base image
+COPY --from=jre-build /customjre $JAVA_HOME
 
 EXPOSE 8084 8435
 
@@ -48,4 +66,4 @@ RUN chown -R $user:$group /var/pmlog-service
 USER ${user}
 
 ADD target/${JAR} /opt/app/pmlog-service/pmlog.jar
-CMD ["java", "-jar", "/opt/app/pmlog-service/pmlog.jar"]
+CMD ["/jre/bin/java", "-jar", "/opt/app/pmlog-service/pmlog.jar"]
index 0eebe91..5b621af 100644 (file)
 # ============LICENSE_END=========================================================
 
 
-FROM openjdk:17-jdk-slim
+FROM openjdk:17-jdk as jre-build
+
+RUN $JAVA_HOME/bin/jlink \
+--verbose \
+--add-modules ALL-MODULE-PATH \
+--strip-debug \
+--no-man-pages \
+--no-header-files \
+--compress=2 \
+--output /customjre
+
+# Use debian base image (same as openjdk uses)
+FROM debian:11-slim
+
+ENV JAVA_HOME=/jre
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+#copy JRE from the base image
+COPY --from=jre-build /customjre $JAVA_HOME
 
 EXPOSE 8084 8435
 
@@ -48,4 +66,4 @@ RUN chown -R $user:$group /var/pm-producer-service
 USER ${user}
 
 ADD target/${JAR} /opt/app/pm-producer-service/pmproducer.jar
-CMD ["java", "-jar", "/opt/app/pm-producer-service/pmproducer.jar"]
+CMD ["/jre/bin/java", "-jar", "/opt/app/pm-producer-service/pmproducer.jar"]
index 14789f4..d4b29be 100644 (file)
@@ -82,16 +82,13 @@ public class ProducerRegstrationTask {
 
     @Scheduled(fixedRate = REGISTRATION_SUPERVISION_INTERVAL_MS)
     public void runSupervisionTask() {
-        supervisionTask().subscribe( //
+        if (this.isRegisteredInIcs) {
+            return;
+        }
+        registerTypesAndProducer().subscribe( //
                 null, //
-                this::handleRegistrationFailure, //
-                this::handleRegistrationCompleted);
-    }
-
-    public Mono<String> supervisionTask() {
-        return checkRegistration() //
-                .filter(isRegistrationOk -> !isRegistrationOk || !this.isRegisteredInIcs) //
-                .flatMap(isRegisterred -> registerTypesAndProducer());
+                this::handleRegistrationFailure//
+        );
     }
 
     private void handleRegistrationCompleted() {
@@ -107,28 +104,11 @@ public class ProducerRegstrationTask {
         return applicationConfig.getIcsBaseUrl() + "/data-producer/v1/info-producers/" + producerId;
     }
 
-    // Returns TRUE if registration is correct
-    private Mono<Boolean> checkRegistration() {
-        return restClient.get(producerRegistrationUrl()) //
-                .flatMap(this::isRegisterredInfoCorrect) //
-                .onErrorResume(t -> Mono.just(Boolean.FALSE));
-    }
-
-    private Mono<Boolean> isRegisterredInfoCorrect(String registerredInfoStr) {
-        ProducerRegistrationInfo registerredInfo = gson.fromJson(registerredInfoStr, ProducerRegistrationInfo.class);
-        if (isEqual(producerRegistrationInfo(), registerredInfo)) {
-            logger.trace("Already registered in ICS");
-            return Mono.just(Boolean.TRUE);
-        } else {
-            return Mono.just(Boolean.FALSE);
-        }
-    }
-
     private String registerTypeUrl(InfoType type) {
         return applicationConfig.getIcsBaseUrl() + "/data-producer/v1/info-types/" + type.getId();
     }
 
-    private Mono<String> registerTypesAndProducer() {
+    public Mono<String> registerTypesAndProducer() {
         final int CONCURRENCY = 1;
 
         return Flux.fromIterable(this.types.getAll()) //
@@ -138,7 +118,8 @@ public class ProducerRegstrationTask {
                         CONCURRENCY) //
                 .collectList() //
                 .doOnNext(type -> logger.info("Registering producer")) //
-                .flatMap(resp -> restClient.put(producerRegistrationUrl(), gson.toJson(producerRegistrationInfo())));
+                .flatMap(resp -> restClient.put(producerRegistrationUrl(), gson.toJson(producerRegistrationInfo())))
+                .doOnNext(n -> handleRegistrationCompleted());
     }
 
     private Mono<InfoType> createInputDataJob(InfoType type) {
@@ -155,7 +136,6 @@ public class ProducerRegstrationTask {
         return restClient.put(consumerJobUrl(JOB_ID), body)
                 .doOnError(t -> logger.error("Could not create job of type {}, reason: {}", type.getInputJobType(),
                         t.getMessage()))
-                .onErrorResume(t -> Mono.just("")) //
                 .doOnNext(n -> logger.info("Created input job: {}, type: {}", JOB_ID, type.getInputJobType())) //
                 .map(x -> type);
     }
index 095a96c..04e8eed 100644 (file)
@@ -252,9 +252,10 @@ class ApplicationTest {
     }
 
     private void waitForRegistration() {
+        producerRegistrationTask.registerTypesAndProducer().block();
         // Register producer, Register types
         await().untilAsserted(() -> assertThat(icsSimulatorController.testResults.registrationInfo).isNotNull());
-        producerRegistrationTask.supervisionTask().block();
+        producerRegistrationTask.registerTypesAndProducer().block();
 
         assertThat(icsSimulatorController.testResults.registrationInfo.supportedTypeIds).hasSize(this.types.size());
         assertThat(producerRegistrationTask.isRegisteredInIcs()).isTrue();
@@ -424,23 +425,6 @@ class ApplicationTest {
         await().untilAsserted(() -> assertThat(this.jobs.size()).isEqualTo(1));
     }
 
-    @Test
-    void testReRegister() throws Exception {
-        // Wait foir register types and producer
-        waitForRegistration();
-
-        // Clear the registration, should trigger a re-register
-        icsSimulatorController.testResults.reset();
-        producerRegistrationTask.supervisionTask().block();
-        await().untilAsserted(() -> assertThat(icsSimulatorController.testResults.registrationInfo).isNotNull());
-        assertThat(icsSimulatorController.testResults.registrationInfo.supportedTypeIds).hasSize(this.types.size());
-
-        // Just clear the registerred types, should trigger a re-register
-        icsSimulatorController.testResults.types.clear();
-        await().untilAsserted(() -> assertThat(icsSimulatorController.testResults.registrationInfo.supportedTypeIds)
-                .hasSize(this.types.size()));
-    }
-
     @Test
     @SuppressWarnings("squid:S2925") // "Thread.sleep" should not be used in tests.
     void testZZActuator() throws Exception {