Browse Source

convey support/applinks via bubble env, update progress meter ticks and labels

tags/v0.12.2
Jonathan Cobb 4 years ago
parent
commit
f3b5c1dea2
8 changed files with 82 additions and 61 deletions
  1. +2
    -0
      bubble-server/src/main/java/bubble/service/cloud/AnsiblePrepService.java
  2. +5
    -5
      bubble-server/src/main/java/bubble/service/cloud/NodeProgressMeterConstants.java
  3. +2
    -1
      bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java
  4. +1
    -1
      bubble-server/src/main/resources/META-INF/bubble/bubble.properties
  5. +11
    -1
      bubble-server/src/main/resources/ansible/roles/bubble/files/bubble_role.json
  6. +10
    -0
      bubble-server/src/main/resources/ansible/roles/bubble/templates/bubble.env.j2
  7. +11
    -22
      bubble-server/src/main/resources/bubble/node_progress_meter_ticks.json
  8. +40
    -31
      bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties

+ 2
- 0
bubble-server/src/main/java/bubble/service/cloud/AnsiblePrepService.java View File

@@ -81,6 +81,8 @@ public class AnsiblePrepService {
}
ctx.put("sslPort", network.getSslPort());
ctx.put("publicBaseUri", network.getPublicUri());
ctx.put("support", configuration.getSupport());
ctx.put("appLinks", configuration.getAppLinks());

if (network.sendErrors() && configuration.hasErrorApi()) {
final ErrorApiConfiguration errorApi = configuration.getErrorApi();


+ 5
- 5
bubble-server/src/main/java/bubble/service/cloud/NodeProgressMeterConstants.java View File

@@ -58,11 +58,11 @@ public class NodeProgressMeterConstants {
{METER_TICK_VALIDATING_NODE_NETWORK_AND_PLAN, 1},
{METER_TICK_CREATING_NODE, 1},
{METER_TICK_LAUNCHING_NODE, 1},
{METER_TICK_PREPARING_ROLES, 2},
{METER_TICK_PREPARING_INSTALL, 4},
{METER_TICK_STARTING_INSTALL, 6},
{METER_TICK_COPYING_ANSIBLE, 7},
{METER_TICK_RUNNING_ANSIBLE, 15}
{METER_TICK_PREPARING_ROLES, 5},
{METER_TICK_PREPARING_INSTALL, 7},
{METER_TICK_STARTING_INSTALL, 33},
{METER_TICK_COPYING_ANSIBLE, 34},
{METER_TICK_RUNNING_ANSIBLE, 37}
});

public static List<NodeProgressMeterTick> getStandardTicks(NewNodeNotification nn) {


+ 2
- 1
bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java View File

@@ -74,7 +74,8 @@ import static bubble.service.boot.StandardSelfNodeService.*;
import static bubble.service.cloud.NodeProgressMeter.getProgressMeterKey;
import static bubble.service.cloud.NodeProgressMeter.getProgressMeterPrefix;
import static bubble.service.cloud.NodeProgressMeterConstants.*;
import static java.util.concurrent.TimeUnit.*;
import static java.util.concurrent.TimeUnit.MINUTES;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric;
import static org.cobbzilla.util.daemon.Await.awaitAll;
import static org.cobbzilla.util.daemon.ZillaRuntime.*;


+ 1
- 1
bubble-server/src/main/resources/META-INF/bubble/bubble.properties View File

@@ -1 +1 @@
bubble.version=0.11.2
bubble.version=0.11.3

+ 11
- 1
bubble-server/src/main/resources/ansible/roles/bubble/files/bubble_role.json View File

@@ -25,9 +25,19 @@
{"name": "restore_key", "value": "[[restoreKey]]"},
{"name": "restore_timeout", "value": "[[restoreTimeoutSeconds]]"},
{"name": "test_mode", "value": "[[testMode]]"},

{"name": "error_url", "value": "[[error_url]]"},
{"name": "error_key", "value": "[[error_key]]"},
{"name": "error_env", "value": "[[error_env]]"}
{"name": "error_env", "value": "[[error_env]]"},

{"name": "support_email", "value": "[[support.email]]"},
{"name": "support_site", "value": "[[support.site]]"},

{"name": "app_link_ios", "value": "[[appLinks.ios]]"},
{"name": "app_link_android", "value": "[[appLinks.android]]"},
{"name": "app_link_windows", "value": "[[appLinks.windows]]"},
{"name": "app_link_macosx", "value": "[[appLinks.macosx]]"},
{"name": "app_link_linux", "value": "[[appLinks.linux]]"}
],
"optionalConfigNames": ["restore_key", "restore_timeout", "error_url", "error_key", "error_env"]
}

+ 10
- 0
bubble-server/src/main/resources/ansible/roles/bubble/templates/bubble.env.j2 View File

@@ -7,6 +7,16 @@ 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={{ error_url | default('') }}
export ERRBIT_KEY={{ error_key | default('') }}
export ERRBIT_ENV={{ error_env | default('') }}

export SUPPORT_EMAIL={{ support_email }}
export SUPPORT_SITE={{ support_site }}

export APP_LINK_IOS={{ app_link_ios }}
export APP_LINK_ANDROID={{ app_link_android }}
export APP_LINK_WINDOWS={{ app_link_windows }}
export APP_LINK_MACOSX={{ app_link_macosx }}
export APP_LINK_LINUX={{ app_link_linux }}

+ 11
- 22
bubble-server/src/main/resources/bubble/node_progress_meter_ticks.json View File

@@ -1,24 +1,13 @@
[
{ "percent": 15,"messageKey":"apt_update", "match": "prefix", "pattern":"Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease" },
{ "percent": 16,"messageKey":"apt_upgrade", "match": "exact", "pattern":"Calculating upgrade..." },
{ "percent": 18,"messageKey":"lib_ssl", "match": "prefix", "pattern":"Setting up libssl1.1:amd64" },
{ "percent": 22,"messageKey":"apt_install_done","match":"exact", "pattern":"Installation finished. No error reported." },
{ "percent": 25,"messageKey":"pip_install", "match":"exact", "pattern":"python3 set to manually installed." },
{ "percent": 28,"messageKey":"pyyaml_pycparser","match":"exact", "pattern":"Successfully built ansible PyYAML pycparser" },
{ "percent": 29,"messageKey":"playbook_start", "pattern":"PLAY \\[[\\w\\s]+] \\*{5,}" },
{ "percent": 30,"messageKey":"role_common", "pattern":"TASK \\[common : [\\w\\s]+] \\*{5,}" },
{ "percent": 35,"messageKey":"role_common_packages", "pattern":"TASK \\[common : Install common packages] \\*{5,}" },
{ "percent": 38,"messageKey":"role_firewall", "pattern":"TASK \\[firewall : [\\w\\s]+] \\*{5,}" },
{ "percent": 40,"messageKey":"role_bubble", "pattern":"TASK \\[bubble : [\\w\\s]+] \\*{5,}" },
{ "percent": 44,"messageKey":"role_bubble_jar", "pattern":"TASK \\[bubble : Install bubble jar] \\*{5,}" },
{ "percent": 48,"messageKey":"role_bubble_db", "pattern":"TASK \\[bubble : Populate database] \\*{5,}" },
{ "percent": 51,"messageKey":"role_bubble_restore", "pattern":"TASK \\[bubble : Install restore helper scripts] \\*{5,}" },
{ "percent": 52,"messageKey":"role_bubble_algo", "pattern":"TASK \\[algo : [\\w\\s]+] \\*{5,}" },
{ "percent": 76,"messageKey":"role_nginx", "pattern":"TASK \\[nginx : [\\w\\s]+] \\*{5,}" },
{ "percent": 81,"messageKey":"role_nginx_certbot", "pattern":"TASK \\[nginx : Init certbot] \\*{5,}" },
{ "percent": 91,"messageKey":"role_mitmproxy", "pattern":"TASK \\[mitmproxy : [\\w\\s]+] \\*{5,}" },
{ "percent": 94,"messageKey":"role_finalizer", "pattern":"TASK \\[finalizer : [\\w\\s]+] \\*{5,}" },
{ "percent": 98,"messageKey":"role_finalizer_touch", "pattern":"TASK \\[finalizer : Touch first-time setup file] \\*{5,}" },
{ "percent": 99,"messageKey":"role_finalizer_start", "pattern":"TASK \\[finalizer : Ensure bubble is started] \\*{5,}" },
{"percent": 100,"messageKey":"install_complete", "pattern":"PLAY RECAP \\*{5,}" }
{ "percent": 38,"messageKey":"ansible_deps", "match": "prefix", "pattern":"Building wheel for PyYAML (setup.py): started" },
{ "percent": 41,"messageKey":"config_node", "match": "prefix", "pattern":"PLAY [Configure new bubble node]" },
{ "percent": 42,"messageKey":"nginx_dhparam", "match": "prefix", "pattern":"TASK [nginx : Create a strong dhparam.pem]" },
{ "percent": 55,"messageKey":"nginx_dh_conf", "match": "prefix", "pattern":"TASK [Create dhparam nginx conf]" },
{ "percent": 56,"messageKey":"nginx_certbot", "match": "prefix", "pattern":"TASK [nginx : Init certbot]" },
{ "percent": 58,"messageKey":"bubble_db", "match": "prefix", "pattern":"TASK [bubble : Populate database]" },
{ "percent": 65,"messageKey":"algo_sh", "match": "prefix", "pattern":"TASK [Write install_algo.sh template]" },
{ "percent": 92,"messageKey":"restart_algo", "match": "prefix", "pattern":"TASK [Restart algo monitors]" },
{ "percent": 95,"messageKey":"snapshot_ansible", "match": "prefix", "pattern":"TASK [finalizer : Snapshot ansible roles]" },
{ "percent": 98,"messageKey":"touch_first_setup","match": "prefix", "pattern":"TASK [finalizer : Touch first-time setup file]" },
{ "percent": 99,"messageKey":"ssh_keys", "match": "prefix", "pattern":"TASK [finalizer : Ensure authorized SSH keys are up-to-date]" }
]

+ 40
- 31
bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties View File

@@ -329,39 +329,48 @@ footprint_name_Worldwide=World-wide
footprint_description_Worldwide=Your Bubble can run anywhere in the world

# Launch progress meter: pre-launch (standard) ticks
meter_tick_confirming_network_lock=Confirming network lock
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
meter_tick_preparing_install=Creating installation package
meter_tick_starting_install=Connecting to node to install Bubble
meter_tick_copying_ansible=Copying files required to install Bubble
meter_tick_running_ansible=Starting Bubble installation
meter_tick_confirming_network_lock=Thinking about baking a pie
meter_tick_validating_node_network_and_plan=Grabbing the cookbook...
meter_tick_creating_node=Finding the best pie recipe ever...
meter_tick_launching_node=Assembling pie ingredients...
meter_tick_preparing_roles=Pre-heating the oven...
meter_tick_preparing_install=Peeling the apples...
meter_tick_starting_install=Slicing the apples...
meter_tick_copying_ansible=Rolling out the pie dough...
meter_tick_running_ansible=Whipping the batter...
#meter_tick_confirming_network_lock=Confirming network lock
#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
#meter_tick_preparing_install=Creating installation package
#meter_tick_starting_install=Connecting to node to install Bubble
#meter_tick_copying_ansible=Copying files required to install Bubble
#meter_tick_running_ansible=Starting Bubble installation

# Launch progress meter: install ticks
meter_tick_apt_update=Updating system packages
meter_tick_apt_upgrade=Upgrading system packages
meter_tick_lib_ssl=Installing SSL libraries
meter_tick_apt_install_done=Installing system packages
meter_tick_pip_install=Installing python packages
meter_tick_pyyaml_pycparser=Continuing to install python packages
meter_tick_playbook_start=Running configuration playbook
meter_tick_role_common=Installing core system packages
meter_tick_role_common_packages=Installing Bubble packages
meter_tick_role_firewall=Setting up firewall
meter_tick_role_bubble=Installing Bubble API
meter_tick_role_bubble_jar=Installing Bubble JAR
meter_tick_role_bubble_db=Setting up Bubble database
meter_tick_role_bubble_restore=Setting up Bubble backup/restore services
meter_tick_role_bubble_algo=Setting up VPN
meter_tick_role_nginx=Setting up web server
meter_tick_role_nginx_certbot=Installing SSL certificates
meter_tick_role_mitmproxy=Setting up MITM server
meter_tick_role_finalizer=Finalizing Bubble installation
meter_tick_role_finalizer_touch=Turning on "first-time" setting to allow you to unlock your Bubble
meter_tick_role_finalizer_start=Starting Bubble API services
meter_tick_install_complete=Bubble installation completed
meter_tick_ansible_deps=Mixing the pie filling...
meter_tick_config_node=Filling the pie...
meter_tick_nginx_dhparam=Gently adding the lattice top crust...
meter_tick_nginx_dh_conf=Glazing the top crust...
meter_tick_nginx_certbot=Checking the temperature...
meter_tick_bubble_db=Putting pie into the oven...
meter_tick_algo_sh=Baking the pie...
meter_tick_restart_algo=Removing pie from the oven...
meter_tick_snapshot_ansible=Letting the pie cool a bit...
meter_tick_touch_first_setup=Setting the table...
meter_tick_ssh_keys=Get everybody, the pie is ready!
#meter_tick_ansible_deps=Installing installer dependencies
#meter_tick_config_node=Configuration installation
#meter_tick_nginx_dhparam=Securing SSL libraries
#meter_tick_nginx_dh_conf=Setting up web server
#meter_tick_nginx_certbot=Installing SSL certificate
#meter_tick_bubble_db=Writing bubble database
#meter_tick_algo_sh=Setting up VPN
#meter_tick_restart_algo=Setting up device subsystem
#meter_tick_snapshot_ansible=Snapshotting installation
#meter_tick_touch_first_setup=Finalizing installation
#meter_tick_ssh_keys=Setting up SSH keys

# Launch progress meter: success marker
meter_completed=Bubble installation completed successfully! On to your Bubble!


Loading…
Cancel
Save