def nuke(keep_data: bool) -> None: """Remove all Docker containers, networks, and volumes associated with DataHub.""" with get_client_with_error() as (client, error): if error: click.secho("Docker doesn't seem to be running. Did you start it?", fg="red") return click.echo("Removing containers in the datahub project") for container in client.containers.list( all=True, filters={"label": "com.docker.compose.project=datahub"}): container.remove(v=True, force=True) if keep_data: click.echo("Skipping deleting data volumes in the datahub project") else: click.echo("Removing volumes in the datahub project") for volume in client.volumes.list( filters={"label": "com.docker.compose.project=datahub"}): volume.remove(force=True) click.echo("Removing networks in the datahub project") for network in client.networks.list( filters={"label": "com.docker.compose.project=datahub"}): network.remove()
def check_neo4j_volume_exists(): with get_client_with_error() as (client, error): if error: click.secho("Docker doesn't seem to be running. Did you start it?", fg="red") return if len(client.volumes.list(filters={"name": "datahub_neo4jdata"})) > 0: click.echo( "Datahub Neo4j volume found, starting with neo4j as graph service.\n" "If you want to run using elastic, run `datahub docker nuke` and re-ingest your data.\n" ) return True click.echo( "No Datahub Neo4j volume found, starting with elasticsearch as graph service.\n" "To use neo4j as a graph backend, run \n" "`datahub docker quickstart --quickstart-compose-file ./docker/quickstart/docker-compose.quickstart.yml`" "\nfrom the root of the datahub repo\n") return False
def should_use_neo4j_for_graph_service( graph_service_override: Optional[str]) -> bool: if graph_service_override is not None: if graph_service_override == "elasticsearch": click.echo( "Starting with elasticsearch due to graph-service-impl param\n" ) return False if graph_service_override == "neo4j": click.echo("Starting with neo4j due to graph-service-impl param\n") return True else: click.secho( graph_service_override + " is not a valid graph service option. Choose either `neo4j` or " "`elasticsearch`\n", fg="red", ) raise ValueError( f"invalid graph service option: {graph_service_override}") with get_client_with_error() as (client, error): if error: click.secho("Docker doesn't seem to be running. Did you start it?", fg="red") raise error if len(client.volumes.list(filters={"name": "datahub_neo4jdata"})) > 0: click.echo( "Datahub Neo4j volume found, starting with neo4j as graph service.\n" "If you want to run using elastic, run `datahub docker nuke` and re-ingest your data.\n" ) return True click.echo( "No Datahub Neo4j volume found, starting with elasticsearch as graph service.\n" "To use neo4j as a graph backend, run \n" "`datahub docker quickstart --quickstart-compose-file ./docker/quickstart/docker-compose.quickstart.yml`" "\nfrom the root of the datahub repo\n") return False