Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
defaulting to elastic in quickstart
  • Loading branch information
gabe-lyons committed Jun 23, 2021
commit c4bc2bb670091e876496298369db94ff596b2a1f
16 changes: 15 additions & 1 deletion docker/quickstart.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,18 @@ DEFAULT_VERSION=$(echo $TAG_VERSION | sed 's/undefined/head/')
export DATAHUB_VERSION=${DATAHUB_VERSION:-${DEFAULT_VERSION}}

echo "Quickstarting DataHub: version ${DATAHUB_VERSION}"
cd $DIR && docker-compose pull && docker-compose -p datahub up
if docker volume ls | grep -c -q datahub_neo4jdata
then
echo "Datahub Neo4j volume found, starting with neo4j as graph service"
cd $DIR && docker-compose pull && docker-compose -p datahub up
cd $DIR && docker-compose pull && docker-compose -p datahub up
else
echo "No Datahub Neo4j volume found, starting with elasticsearch as graph service"
cd $DIR && \
docker-compose \
-f quickstart/docker-compose-without-neo4j.quickstart.yml \
pull && \
docker-compose -p datahub \
-f quickstart/docker-compose-without-neo4j.quickstart.yml \
up
fi
25 changes: 22 additions & 3 deletions metadata-ingestion/src/datahub/cli/docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@
)
from datahub.ingestion.run.pipeline import Pipeline

SIMPLE_QUICKSTART_COMPOSE_FILE = "docker/quickstart/docker-compose.quickstart.yml"
NEO4J_AND_ELASTIC_QUICKSTART_COMPOSE_FILE = "docker/quickstart/docker-compose.quickstart.yml"
ELASTIC_QUICKSTART_COMPOSE_FILE = "docker/quickstart/docker-compose-without-neo4j.quickstart.yml"
BOOTSTRAP_MCES_FILE = "metadata-ingestion/examples/mce_files/bootstrap_mce.json"

GITHUB_BASE_URL = "https://raw.githubusercontent.com/linkedin/datahub/master"
GITHUB_QUICKSTART_COMPOSE_URL = f"{GITHUB_BASE_URL}/{SIMPLE_QUICKSTART_COMPOSE_FILE}"
GITHUB_NEO4J_AND_ELASTIC_QUICKSTART_COMPOSE_URL = f"{GITHUB_BASE_URL}/{NEO4J_AND_ELASTIC_QUICKSTART_COMPOSE_FILE}"
GITHUB_ELASTIC_QUICKSTART_COMPOSE_URL = f"{GITHUB_BASE_URL}/{ELASTIC_QUICKSTART_COMPOSE_FILE}"
GITHUB_BOOTSTRAP_MCES_URL = f"{GITHUB_BASE_URL}/{BOOTSTRAP_MCES_FILE}"


Expand Down Expand Up @@ -58,6 +60,20 @@ def check() -> None:
docker_check_impl()


def check_neo4j_volume_exists():
ps = subprocess.run(['docker', 'volume', 'ls'], check=True, capture_output=True)
output = subprocess.run(('grep', '-c', 'datahub_neo4jdata'), input=ps.stdout, capture_output=True)

results = int(output.stdout.decode("utf-8").split('\n')[0])

if results > 0:
click.echo("Datahub Neo4j volume found, starting with neo4j as graph service")
return True

click.echo("No Datahub Neo4j volume found, starting with elasticsearch as graph service")
return False


@docker.command()
@click.option(
"--version",
Expand Down Expand Up @@ -110,12 +126,15 @@ def quickstart(
) # convert to list from tuple
if not quickstart_compose_file:
click.echo("Fetching docker-compose file from GitHub")
neo4j_volume_exists = check_neo4j_volume_exists()
with tempfile.NamedTemporaryFile(suffix=".yml", delete=False) as tmp_file:
path = pathlib.Path(tmp_file.name)
quickstart_compose_file.append(path)

# Download the quickstart docker-compose file from GitHub.
quickstart_download_response = requests.get(GITHUB_QUICKSTART_COMPOSE_URL)
quickstart_download_response = requests.get(
GITHUB_NEO4J_AND_ELASTIC_QUICKSTART_COMPOSE_URL if check_neo4j_volume_exists else GITHUB_ELASTIC_QUICKSTART_COMPOSE_URL
)
quickstart_download_response.raise_for_status()
tmp_file.write(quickstart_download_response.content)

Expand Down