From 644e91afebe9dae7b4f4cfa8185b44693103a341 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Tue, 7 Jan 2020 19:13:45 -0500 Subject: [PATCH] require email cloud. fix relative path for LocalStorage. add a BlankDevServerTest that preserves DB --- .../storage/local/LocalStorageDriver.java | 14 ++++++++- .../bubble/service/backup/BackupService.java | 11 +++++-- .../service/boot/ActivationService.java | 21 ++++++++++---- .../pre_auth/ResourceMessages.properties | 1 + .../bubble/test/dev/BlankDevServerTest.java | 18 ++++-------- .../java/bubble/test/dev/DevServerTest.java | 2 -- .../test/dev/NewBlankDevServerTest.java | 29 +++++++++++++++++++ 7 files changed, 72 insertions(+), 24 deletions(-) create mode 100644 bubble-server/src/test/java/bubble/test/dev/NewBlankDevServerTest.java diff --git a/bubble-server/src/main/java/bubble/cloud/storage/local/LocalStorageDriver.java b/bubble-server/src/main/java/bubble/cloud/storage/local/LocalStorageDriver.java index f216be64..dbdd57a5 100644 --- a/bubble-server/src/main/java/bubble/cloud/storage/local/LocalStorageDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/storage/local/LocalStorageDriver.java @@ -47,7 +47,11 @@ public class LocalStorageDriver extends CloudServiceDriverBase requestedCloud : requestConfigs.entrySet()) { final String name = requestedCloud.getKey(); @@ -92,17 +93,27 @@ public class ActivationService { } else if (errors.isValid()) { final CloudService cloud = new CloudService(defaultCloud).configure(config, errors); toCreate.add(cloud); - if (defaultCloud.getType() == CloudServiceType.dns && defaultCloud.getName().equals(request.getDomain().getPublicDns()) && publicDns == null) publicDns = cloud; - if (defaultCloud.getType() == CloudServiceType.storage) { - if (localStorage == null && defaultCloud.isLocalStorage()) localStorage = cloud; - if (networkStorage == null && defaultCloud.isNotLocalStorage()) networkStorage = cloud; + switch (defaultCloud.getType()) { + case dns: + if (defaultCloud.getName().equals(request.getDomain().getPublicDns()) && publicDns == null) publicDns = cloud; + break; + case storage: + if (localStorage == null && defaultCloud.isLocalStorage()) localStorage = cloud; + if (networkStorage == null && defaultCloud.isNotLocalStorage()) networkStorage = cloud; + break; + case compute: + if (compute == null) compute = cloud; + break; + case email: + if (email == null) email = cloud; + break; } - if (defaultCloud.getType() == CloudServiceType.compute && compute == null) compute = cloud; } } if (publicDns == null) errors.addViolation("err.publicDns.noneSpecified"); if (networkStorage == null) errors.addViolation("err.storage.noneSpecified"); if (compute == null && !configuration.testMode()) errors.addViolation("err.compute.noneSpecified"); + if (email == null && !configuration.testMode()) errors.addViolation("err.email.noneSpecified"); if (errors.isInvalid()) throw invalidEx(errors); // create local storage if it was not provided diff --git a/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties b/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties index c6d73091..f0f27cb9 100644 --- a/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties +++ b/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties @@ -147,6 +147,7 @@ err.cloud.notFound=No cloud exists with this name err.publicDns.noneSpecified=No DNS service was configured err.storage.noneSpecified=No Storage service was configured err.compute.noneSpecified=No Compute service was configured +err.email.noneSpecified=No Email service was configured err.cloud.localStorageIsReservedName=LocalStorage is a reserved name # Storage driver errors diff --git a/bubble-server/src/test/java/bubble/test/dev/BlankDevServerTest.java b/bubble-server/src/test/java/bubble/test/dev/BlankDevServerTest.java index 37b6ba9d..6acda58e 100644 --- a/bubble-server/src/test/java/bubble/test/dev/BlankDevServerTest.java +++ b/bubble-server/src/test/java/bubble/test/dev/BlankDevServerTest.java @@ -1,26 +1,18 @@ package bubble.test.dev; -import bubble.resources.EntityConfigsResource; -import bubble.server.BubbleConfiguration; -import bubble.test.BubbleModelTestBase; import lombok.extern.slf4j.Slf4j; -import org.cobbzilla.wizard.server.RestServer; import org.junit.Test; import static java.util.concurrent.TimeUnit.DAYS; import static org.cobbzilla.util.system.Sleep.sleep; @Slf4j -public class BlankDevServerTest extends BubbleModelTestBase { +public class BlankDevServerTest extends NewBlankDevServerTest { - @Override protected String getManifest() { return "manifest-empty"; } - - @Override protected boolean useMocks() { return false; } - - @Override public void onStart(RestServer server) { - getConfiguration().getBean(EntityConfigsResource.class).getAllowPublic().set(true); - super.onStart(server); - } + @Override protected String getDatabaseNameSuffix() { return "test"; } + @Override protected boolean dropPreExistingDatabase() { return false; } + @Override protected boolean allowPreExistingDatabase() { return true; } + @Override public boolean doTruncateDb() { return false; } @Test public void runBlankServer () throws Exception { log.info("runBlankServer: Bubble API server started and model initialized. You may now begin testing."); diff --git a/bubble-server/src/test/java/bubble/test/dev/DevServerTest.java b/bubble-server/src/test/java/bubble/test/dev/DevServerTest.java index 0829c05d..3596565a 100644 --- a/bubble-server/src/test/java/bubble/test/dev/DevServerTest.java +++ b/bubble-server/src/test/java/bubble/test/dev/DevServerTest.java @@ -14,9 +14,7 @@ import static org.cobbzilla.util.system.Sleep.sleep; public class DevServerTest extends ActivatedBubbleModelTestBase { @Override protected String getManifest() { return "manifest-dev"; } - @Override protected boolean useMocks() { return false; } - @Override protected String getDatabaseNameSuffix() { return "dev"; } @Override protected boolean dropPreExistingDatabase() { return false; } @Override protected boolean allowPreExistingDatabase() { return true; } diff --git a/bubble-server/src/test/java/bubble/test/dev/NewBlankDevServerTest.java b/bubble-server/src/test/java/bubble/test/dev/NewBlankDevServerTest.java new file mode 100644 index 00000000..5dad9996 --- /dev/null +++ b/bubble-server/src/test/java/bubble/test/dev/NewBlankDevServerTest.java @@ -0,0 +1,29 @@ +package bubble.test.dev; + +import bubble.resources.EntityConfigsResource; +import bubble.server.BubbleConfiguration; +import bubble.test.BubbleModelTestBase; +import lombok.extern.slf4j.Slf4j; +import org.cobbzilla.wizard.server.RestServer; +import org.junit.Test; + +import static java.util.concurrent.TimeUnit.DAYS; +import static org.cobbzilla.util.system.Sleep.sleep; + +@Slf4j +public class NewBlankDevServerTest extends BubbleModelTestBase { + + @Override protected String getManifest() { return "manifest-empty"; } + @Override protected boolean useMocks() { return false; } + + @Override public void onStart(RestServer server) { + getConfiguration().getBean(EntityConfigsResource.class).getAllowPublic().set(true); + super.onStart(server); + } + + @Test public void runBlankServer () throws Exception { + log.info("runBlankServer: Bubble API server started and model initialized. You may now begin testing."); + sleep(DAYS.toMillis(30), "running dev server"); + } + +}