From 42212d05f870c558243a6bf0456aec09b8786ff2 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Wed, 15 Jan 2020 05:18:43 -0500 Subject: [PATCH] add errbit support --- automation/roles/bubble/files/bubble_role.json | 7 +++++-- automation/roles/bubble/templates/bubble.env.j2 | 3 +++ .../src/main/java/bubble/server/BubbleServer.java | 2 ++ .../java/bubble/service/cloud/AnsiblePrepService.java | 2 +- bubble-server/src/main/resources/bubble-config.yml | 5 +++++ .../en_US/server/post_auth/ResourceMessages.properties | 2 +- .../src/test/java/bubble/test/BubbleModelTestBase.java | 2 ++ bubble-server/src/test/resources/test-bubble-config.yml | 8 ++++++-- utils/cobbzilla-utils | 2 +- utils/cobbzilla-wizard | 2 +- 10 files changed, 27 insertions(+), 8 deletions(-) diff --git a/automation/roles/bubble/files/bubble_role.json b/automation/roles/bubble/files/bubble_role.json index 944c3ddd..436ee025 100644 --- a/automation/roles/bubble/files/bubble_role.json +++ b/automation/roles/bubble/files/bubble_role.json @@ -23,8 +23,11 @@ {"name": "is_fork", "value": "[[fork]]"}, {"name": "restore_key", "value": "[[restoreKey]]"}, {"name": "restore_timeout", "value": "[[restoreTimeoutSeconds]]"}, - {"name": "test_mode", "value": "[[testMode]]"} + {"name": "test_mode", "value": "[[testMode]]"}, + {"name": "errbit_url", "value": "[[#compare fork '==' true]][[configuration.errorApi.url]][[/compare]]"}, + {"name": "errbit_key", "value": "[[#compare fork '==' true]][[configuration.errorApi.key]][[/compare]]"}, + {"name": "errbit_env", "value": "[[#compare fork '==' true]][[node.fqdn]][[/compare]]"} ], - "optionalConfigNames": ["restore_key", "restore_timeout"], + "optionalConfigNames": ["restore_key", "restore_timeout", "errbit_url", "errbit_key", "errbit_env"], "tgzB64": "" } \ No newline at end of file diff --git a/automation/roles/bubble/templates/bubble.env.j2 b/automation/roles/bubble/templates/bubble.env.j2 index 14384f3d..73837c18 100644 --- a/automation/roles/bubble/templates/bubble.env.j2 +++ b/automation/roles/bubble/templates/bubble.env.j2 @@ -5,3 +5,6 @@ export LETSENCRYPT_EMAIL={{ letsencrypt_email }} export BUBBLE_SERVER_PORT={{ admin_port }} export BUBBLE_TEST_MODE={{ test_mode }} export BUBBLE_DEFAULT_LOCALE={{ default_locale }} +export ERRBIT_URL={{ errbit_url | default('') }} +export ERRBIT_KEY={{ errbit_key | default('') }} +export ERRBIT_ENV={{ errbit_env | default('') }} diff --git a/bubble-server/src/main/java/bubble/server/BubbleServer.java b/bubble-server/src/main/java/bubble/server/BubbleServer.java index 26b575f7..2bc528f5 100644 --- a/bubble-server/src/main/java/bubble/server/BubbleServer.java +++ b/bubble-server/src/main/java/bubble/server/BubbleServer.java @@ -14,6 +14,7 @@ import org.cobbzilla.wizard.server.RestServerLifecycleListener; import org.cobbzilla.wizard.server.RestServerLifecycleListenerBase; import org.cobbzilla.wizard.server.config.factory.ConfigurationSource; import org.cobbzilla.wizard.server.listener.BrowserLauncherListener; +import org.cobbzilla.wizard.server.listener.ErrbitConfigListener; import org.cobbzilla.wizard.server.listener.FlywayMigrationListener; import org.cobbzilla.wizard.server.listener.SystemInitializerListener; import org.slf4j.bridge.SLF4JBridgeHandler; @@ -41,6 +42,7 @@ public class BubbleServer extends RestServerBase { public static final String BUBBLE_DUMP_CONFIG = "BUBBLE_DUMP_CONFIG"; public static final List LIFECYCLE_LISTENERS = Arrays.asList(new RestServerLifecycleListener[] { + new ErrbitConfigListener(), new SystemInitializerListener(), new FlywayMigrationListener(), new NodeInitializerListener(), diff --git a/bubble-server/src/main/java/bubble/service/cloud/AnsiblePrepService.java b/bubble-server/src/main/java/bubble/service/cloud/AnsiblePrepService.java index 9c5513e1..aebe6f80 100644 --- a/bubble-server/src/main/java/bubble/service/cloud/AnsiblePrepService.java +++ b/bubble-server/src/main/java/bubble/service/cloud/AnsiblePrepService.java @@ -104,7 +104,7 @@ public class AnsiblePrepService { for (NameAndValue cfg : role.getConfig()) { final String cfgName = cfg.getName(); final String rawVal = cfg.getValue(); - String value = HandlebarsUtil.apply(handlebars, rawVal, ctx); + final String value = HandlebarsUtil.apply(handlebars, rawVal, ctx); if (value == null || value.trim().length() == 0) { if (!role.hasOptionalConfigNames() || !role.isOptionalConfigName(cfgName)) { errors.addViolation("err.role.config." + cfgName + ".required", "value for " + cfgName + " evaluated to empty string"); diff --git a/bubble-server/src/main/resources/bubble-config.yml b/bubble-server/src/main/resources/bubble-config.yml index 3b4482aa..3fdb80ea 100644 --- a/bubble-server/src/main/resources/bubble-config.yml +++ b/bubble-server/src/main/resources/bubble-config.yml @@ -59,6 +59,11 @@ redis: key: '{{#exists BUBBLE_REDIS_ENCRYPTION_KEY}}{{BUBBLE_REDIS_ENCRYPTION_KEY}}{{else}}{{key_file '.BUBBLE_REDIS_ENCRYPTION_KEY'}}{{/exists}}' prefix: bubble_ +errorApi: + url: {{ERRBIT_URL}} + key: {{ERRBIT_KEY}} + env: {{ERRBIT_ENV}} + letsencryptEmail: {{LETSENCRYPT_EMAIL}} localStorageDir: {{LOCALSTORAGE_BASE_DIR}} diff --git a/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties b/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties index cbb97653..99177b80 100644 --- a/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties +++ b/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties @@ -265,7 +265,7 @@ message_verified_card=Card Successfully Verified # Launch progress meter: pre-launch (standard) ticks meter_tick_confirming_network_lock=Confirming network lock -meter_tick_verifying_node_network_and_plan=Verifying settings for Bubble +meter_tick_validating_node_network_and_plan=Verifying settings for Bubble meter_tick_creating_node=Creating Bubble node meter_tick_launching_node=Launching Bubble node meter_tick_preparing_roles=Preparing installation parameters diff --git a/bubble-server/src/test/java/bubble/test/BubbleModelTestBase.java b/bubble-server/src/test/java/bubble/test/BubbleModelTestBase.java index 60a4b764..440cd7e7 100644 --- a/bubble-server/src/test/java/bubble/test/BubbleModelTestBase.java +++ b/bubble-server/src/test/java/bubble/test/BubbleModelTestBase.java @@ -20,6 +20,7 @@ import org.cobbzilla.wizard.client.script.ApiRunnerListener; import org.cobbzilla.wizard.server.RestServer; import org.cobbzilla.wizard.server.RestServerLifecycleListener; import org.cobbzilla.wizard.server.config.factory.StreamConfigurationSource; +import org.cobbzilla.wizard.server.listener.ErrbitConfigListener; import org.cobbzilla.wizardtest.resources.ApiModelTestBase; import org.junit.AfterClass; import org.junit.Before; @@ -44,6 +45,7 @@ import static org.cobbzilla.util.system.CommandShell.loadShellExportsOrDie; public abstract class BubbleModelTestBase extends ApiModelTestBase { public static final List TEST_LIFECYCLE_LISTENERS = asList(new RestServerLifecycleListener[] { + new ErrbitConfigListener(), new NodeInitializerListener() }); diff --git a/bubble-server/src/test/resources/test-bubble-config.yml b/bubble-server/src/test/resources/test-bubble-config.yml index 664c6779..93b33b90 100644 --- a/bubble-server/src/test/resources/test-bubble-config.yml +++ b/bubble-server/src/test/resources/test-bubble-config.yml @@ -60,9 +60,13 @@ redis: key: '{{#exists BUBBLE_REDIS_ENCRYPTION_KEY}}{{BUBBLE_REDIS_ENCRYPTION_KEY}}{{else}}{{key_file '.BUBBLE_REDIS_ENCRYPTION_KEY'}}{{/exists}}' prefix: bubble_ +errorApi: + url: {{ERRBIT_URL}} + key: {{ERRBIT_KEY}} + env: {{ERRBIT_ENV}} + letsencryptEmail: {{LETSENCRYPT_EMAIL}} localStorageDir: {{LOCALSTORAGE_BASE_DIR}} -# US OFAC list -disallowedCountries: [IR, KP, SY, SD, CU, VE] +disallowedCountries: {{DISALLOWED_COUNTRIES}} paymentsEnabled: {{BUBBLE_PAYMENTS_ENABLED}} \ No newline at end of file diff --git a/utils/cobbzilla-utils b/utils/cobbzilla-utils index 31dde8a2..08c3e933 160000 --- a/utils/cobbzilla-utils +++ b/utils/cobbzilla-utils @@ -1 +1 @@ -Subproject commit 31dde8a290f6339c34866b1e15e17ef0041034e9 +Subproject commit 08c3e93363bef00a5291189683cae0c0627f0ac3 diff --git a/utils/cobbzilla-wizard b/utils/cobbzilla-wizard index b171791b..577bcd1f 160000 --- a/utils/cobbzilla-wizard +++ b/utils/cobbzilla-wizard @@ -1 +1 @@ -Subproject commit b171791b38e47716ff299b99b8941ce60e9ee4d9 +Subproject commit 577bcd1f18224f11dcc467be725b9ca786e6aa37