Skip to content
Snippets Groups Projects
Commit 34bf63d7 authored by OZGCloud's avatar OZGCloud
Browse files

Add parameter for performing user sync on start up.

parent 99644331
No related branches found
No related tags found
No related merge requests found
...@@ -25,10 +25,14 @@ package de.ozgcloud.user.sync; ...@@ -25,10 +25,14 @@ package de.ozgcloud.user.sync;
import static io.quarkus.scheduler.Scheduled.ConcurrentExecution.*; import static io.quarkus.scheduler.Scheduled.ConcurrentExecution.*;
import de.ozgcloud.user.common.lock.LockService;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.event.Observes;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import de.ozgcloud.user.common.lock.LockService;
import io.quarkus.runtime.StartupEvent;
import io.quarkus.scheduler.Scheduled; import io.quarkus.scheduler.Scheduled;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -41,6 +45,15 @@ public class SyncScheduler { ...@@ -41,6 +45,15 @@ public class SyncScheduler {
@Inject @Inject
LockService syncLockService; LockService syncLockService;
@ConfigProperty(name = "ozgcloud.usersync.onstart")
boolean syncUsers;
void onStart(@Observes StartupEvent event) {
if (syncUsers) {
start();
}
}
@Scheduled(every = "{ozgcloud.usersync.period}", concurrentExecution = SKIP) @Scheduled(every = "{ozgcloud.usersync.period}", concurrentExecution = SKIP)
public void start() { public void start() {
if (syncLockService.isNotLocked()) { if (syncLockService.isNotLocked()) {
......
...@@ -47,3 +47,4 @@ ozgcloud: ...@@ -47,3 +47,4 @@ ozgcloud:
client: alfa client: alfa
usersync: usersync:
period: "6h" period: "6h"
onstart: false
\ No newline at end of file
...@@ -38,6 +38,7 @@ import org.mockito.Spy; ...@@ -38,6 +38,7 @@ import org.mockito.Spy;
import de.ozgcloud.user.common.lock.Lock; import de.ozgcloud.user.common.lock.Lock;
import de.ozgcloud.user.common.lock.LockService; import de.ozgcloud.user.common.lock.LockService;
import io.quarkus.runtime.StartupEvent;
class SyncSchedulerTest { class SyncSchedulerTest {
...@@ -124,4 +125,31 @@ class SyncSchedulerTest { ...@@ -124,4 +125,31 @@ class SyncSchedulerTest {
verify(syncLockService).unlock(); verify(syncLockService).unlock();
} }
} }
@Nested
class OnStartTest {
@Test
void shouldSyncUsers() {
doNothing().when(scheduler).start();
scheduler.syncUsers = true;
callScheduler();
verify(scheduler).start();
}
@Test
void shouldNOTSyncUsers() {
scheduler.syncUsers = false;
callScheduler();
verify(scheduler, never()).start();
}
private void callScheduler() {
scheduler.onStart(new StartupEvent());
}
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment