Esempio n. 1
0
def get_optional_docker_service_names(base_dir,
                                      start_foreign_node) -> List[str]:
    docker_service_names = []

    if is_netstats_prepared(base_dir=base_dir):
        docker_service_names.append("netstats-client")

    if is_bridge_prepared(base_dir=base_dir):
        docker_service_names.append("bridge-client")
        if start_foreign_node:
            docker_service_names.append("foreign-node")

    return docker_service_names
Esempio n. 2
0
def setup_interactively(base_dir, bridge_config_file, foreign_chain_name) -> None:
    user_file = os.path.join(base_dir, BRIDGE_CONFIG_FILE_EXTERNAL)
    if is_bridge_prepared(base_dir):
        click.echo("\nThe bridge client has already been set up.")
        if file_hash(user_file) in LEGACY_CONFIG_HASHES:
            # Override former config files without asking
            copy_default_bridge_config(user_file, bridge_config_file)
            return
        elif filecmp.cmp(user_file, bridge_config_file):
            # same file, so nothing to do
            return
        else:
            # Custom changes
            if not _should_overwrite_prompt(base_dir, bridge_config_file):
                # not overwriting, so nothing to do
                return
    else:
        if not is_validator_account_prepared(base_dir):
            click.echo(
                "\nNo bridge node will be set up when running as a non-validator."
            )
            return

        click.echo(
            "\n".join(
                (
                    "",
                    fill(
                        "As a validator of the Trustlines blockchain, you are required to run a "
                        "bridge node. Checkout the following link for more information:"
                    ),
                    BRIDGE_DOCUMENTATION_URL,
                    "",
                )
            )
        )
        if not click.confirm(
            "Do you want to set up a bridge node now? (recommended)", default=True
        ):
            # Necessary to make docker-compose not complain about it.
            Path(user_file).touch()
            return

    _write_bridge_config_dialog(
        base_dir=base_dir,
        bridge_config_file=bridge_config_file,
        user_file=user_file,
        foreign_chain_name=foreign_chain_name,
    )

    click.echo("Bridge client setup complete.")
Esempio n. 3
0
def should_foreign_node_be_started(*, base_dir, bridge_config_file):
    if not utils.is_bridge_prepared(base_dir=base_dir):
        return False
    else:
        return bridge.is_bridge_using_template_json_rpc_url(
            base_dir, bridge_config_file)