@@ -23,8 +23,11 @@ | |||||
{"name": "is_fork", "value": "[[fork]]"}, | {"name": "is_fork", "value": "[[fork]]"}, | ||||
{"name": "restore_key", "value": "[[restoreKey]]"}, | {"name": "restore_key", "value": "[[restoreKey]]"}, | ||||
{"name": "restore_timeout", "value": "[[restoreTimeoutSeconds]]"}, | {"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": "" | "tgzB64": "" | ||||
} | } |
@@ -5,3 +5,6 @@ export LETSENCRYPT_EMAIL={{ letsencrypt_email }} | |||||
export BUBBLE_SERVER_PORT={{ admin_port }} | export BUBBLE_SERVER_PORT={{ admin_port }} | ||||
export BUBBLE_TEST_MODE={{ test_mode }} | export BUBBLE_TEST_MODE={{ test_mode }} | ||||
export BUBBLE_DEFAULT_LOCALE={{ default_locale }} | export BUBBLE_DEFAULT_LOCALE={{ default_locale }} | ||||
export ERRBIT_URL={{ errbit_url | default('') }} | |||||
export ERRBIT_KEY={{ errbit_key | default('') }} | |||||
export ERRBIT_ENV={{ errbit_env | default('') }} |
@@ -14,6 +14,7 @@ import org.cobbzilla.wizard.server.RestServerLifecycleListener; | |||||
import org.cobbzilla.wizard.server.RestServerLifecycleListenerBase; | import org.cobbzilla.wizard.server.RestServerLifecycleListenerBase; | ||||
import org.cobbzilla.wizard.server.config.factory.ConfigurationSource; | import org.cobbzilla.wizard.server.config.factory.ConfigurationSource; | ||||
import org.cobbzilla.wizard.server.listener.BrowserLauncherListener; | 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.FlywayMigrationListener; | ||||
import org.cobbzilla.wizard.server.listener.SystemInitializerListener; | import org.cobbzilla.wizard.server.listener.SystemInitializerListener; | ||||
import org.slf4j.bridge.SLF4JBridgeHandler; | import org.slf4j.bridge.SLF4JBridgeHandler; | ||||
@@ -41,6 +42,7 @@ public class BubbleServer extends RestServerBase<BubbleConfiguration> { | |||||
public static final String BUBBLE_DUMP_CONFIG = "BUBBLE_DUMP_CONFIG"; | public static final String BUBBLE_DUMP_CONFIG = "BUBBLE_DUMP_CONFIG"; | ||||
public static final List<RestServerLifecycleListener> LIFECYCLE_LISTENERS = Arrays.asList(new RestServerLifecycleListener[] { | public static final List<RestServerLifecycleListener> LIFECYCLE_LISTENERS = Arrays.asList(new RestServerLifecycleListener[] { | ||||
new ErrbitConfigListener(), | |||||
new SystemInitializerListener(), | new SystemInitializerListener(), | ||||
new FlywayMigrationListener<BubbleConfiguration>(), | new FlywayMigrationListener<BubbleConfiguration>(), | ||||
new NodeInitializerListener(), | new NodeInitializerListener(), | ||||
@@ -104,7 +104,7 @@ public class AnsiblePrepService { | |||||
for (NameAndValue cfg : role.getConfig()) { | for (NameAndValue cfg : role.getConfig()) { | ||||
final String cfgName = cfg.getName(); | final String cfgName = cfg.getName(); | ||||
final String rawVal = cfg.getValue(); | 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 (value == null || value.trim().length() == 0) { | ||||
if (!role.hasOptionalConfigNames() || !role.isOptionalConfigName(cfgName)) { | if (!role.hasOptionalConfigNames() || !role.isOptionalConfigName(cfgName)) { | ||||
errors.addViolation("err.role.config." + cfgName + ".required", "value for " + cfgName + " evaluated to empty string"); | errors.addViolation("err.role.config." + cfgName + ".required", "value for " + cfgName + " evaluated to empty string"); | ||||
@@ -59,6 +59,11 @@ redis: | |||||
key: '{{#exists BUBBLE_REDIS_ENCRYPTION_KEY}}{{BUBBLE_REDIS_ENCRYPTION_KEY}}{{else}}{{key_file '.BUBBLE_REDIS_ENCRYPTION_KEY'}}{{/exists}}' | key: '{{#exists BUBBLE_REDIS_ENCRYPTION_KEY}}{{BUBBLE_REDIS_ENCRYPTION_KEY}}{{else}}{{key_file '.BUBBLE_REDIS_ENCRYPTION_KEY'}}{{/exists}}' | ||||
prefix: bubble_ | prefix: bubble_ | ||||
errorApi: | |||||
url: {{ERRBIT_URL}} | |||||
key: {{ERRBIT_KEY}} | |||||
env: {{ERRBIT_ENV}} | |||||
letsencryptEmail: {{LETSENCRYPT_EMAIL}} | letsencryptEmail: {{LETSENCRYPT_EMAIL}} | ||||
localStorageDir: {{LOCALSTORAGE_BASE_DIR}} | localStorageDir: {{LOCALSTORAGE_BASE_DIR}} | ||||
@@ -265,7 +265,7 @@ message_verified_card=Card Successfully Verified | |||||
# Launch progress meter: pre-launch (standard) ticks | # Launch progress meter: pre-launch (standard) ticks | ||||
meter_tick_confirming_network_lock=Confirming network lock | 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_creating_node=Creating Bubble node | ||||
meter_tick_launching_node=Launching Bubble node | meter_tick_launching_node=Launching Bubble node | ||||
meter_tick_preparing_roles=Preparing installation parameters | meter_tick_preparing_roles=Preparing installation parameters | ||||
@@ -20,6 +20,7 @@ import org.cobbzilla.wizard.client.script.ApiRunnerListener; | |||||
import org.cobbzilla.wizard.server.RestServer; | import org.cobbzilla.wizard.server.RestServer; | ||||
import org.cobbzilla.wizard.server.RestServerLifecycleListener; | import org.cobbzilla.wizard.server.RestServerLifecycleListener; | ||||
import org.cobbzilla.wizard.server.config.factory.StreamConfigurationSource; | import org.cobbzilla.wizard.server.config.factory.StreamConfigurationSource; | ||||
import org.cobbzilla.wizard.server.listener.ErrbitConfigListener; | |||||
import org.cobbzilla.wizardtest.resources.ApiModelTestBase; | import org.cobbzilla.wizardtest.resources.ApiModelTestBase; | ||||
import org.junit.AfterClass; | import org.junit.AfterClass; | ||||
import org.junit.Before; | import org.junit.Before; | ||||
@@ -44,6 +45,7 @@ import static org.cobbzilla.util.system.CommandShell.loadShellExportsOrDie; | |||||
public abstract class BubbleModelTestBase extends ApiModelTestBase<BubbleConfiguration, BubbleServer> { | public abstract class BubbleModelTestBase extends ApiModelTestBase<BubbleConfiguration, BubbleServer> { | ||||
public static final List<RestServerLifecycleListener> TEST_LIFECYCLE_LISTENERS = asList(new RestServerLifecycleListener[] { | public static final List<RestServerLifecycleListener> TEST_LIFECYCLE_LISTENERS = asList(new RestServerLifecycleListener[] { | ||||
new ErrbitConfigListener(), | |||||
new NodeInitializerListener() | new NodeInitializerListener() | ||||
}); | }); | ||||
@@ -60,9 +60,13 @@ redis: | |||||
key: '{{#exists BUBBLE_REDIS_ENCRYPTION_KEY}}{{BUBBLE_REDIS_ENCRYPTION_KEY}}{{else}}{{key_file '.BUBBLE_REDIS_ENCRYPTION_KEY'}}{{/exists}}' | key: '{{#exists BUBBLE_REDIS_ENCRYPTION_KEY}}{{BUBBLE_REDIS_ENCRYPTION_KEY}}{{else}}{{key_file '.BUBBLE_REDIS_ENCRYPTION_KEY'}}{{/exists}}' | ||||
prefix: bubble_ | prefix: bubble_ | ||||
errorApi: | |||||
url: {{ERRBIT_URL}} | |||||
key: {{ERRBIT_KEY}} | |||||
env: {{ERRBIT_ENV}} | |||||
letsencryptEmail: {{LETSENCRYPT_EMAIL}} | letsencryptEmail: {{LETSENCRYPT_EMAIL}} | ||||
localStorageDir: {{LOCALSTORAGE_BASE_DIR}} | localStorageDir: {{LOCALSTORAGE_BASE_DIR}} | ||||
# US OFAC list | |||||
disallowedCountries: [IR, KP, SY, SD, CU, VE] | |||||
disallowedCountries: {{DISALLOWED_COUNTRIES}} | |||||
paymentsEnabled: {{BUBBLE_PAYMENTS_ENABLED}} | paymentsEnabled: {{BUBBLE_PAYMENTS_ENABLED}} |
@@ -1 +1 @@ | |||||
Subproject commit 31dde8a290f6339c34866b1e15e17ef0041034e9 | |||||
Subproject commit 08c3e93363bef00a5291189683cae0c0627f0ac3 |
@@ -1 +1 @@ | |||||
Subproject commit b171791b38e47716ff299b99b8941ce60e9ee4d9 | |||||
Subproject commit 577bcd1f18224f11dcc467be725b9ca786e6aa37 |