Fix #4636 - CLI: Remove --skip-sample-data and add --ingest-sample-data (#4646)

This commit is contained in:
Pere Miquel Brull 2022-05-04 03:54:43 +02:00 committed by GitHub
parent acae6b4fac
commit 8aa88b1efc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 52 deletions

View File

@ -1,19 +0,0 @@
name: Auto Assign Issues to Roadmap
on:
issues:
types: [ labeled ]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
assign_to_project:
runs-on: ubuntu-latest
name: Assign topic to Project
steps:
- name: Assign issues with new-topic label to GitHub Project
uses: srggrs/assign-one-project-github-action@1.2.0
if: contains(github.event.issue.labels.*.name, 'epic')
with:
project: 'https://github.com/orgs/open-metadata/projects/6'
column_name: 'No Status'

View File

@ -1,5 +1,4 @@
import json import json
import logging
import pathlib import pathlib
import sys import sys
import tempfile import tempfile
@ -17,14 +16,14 @@ from metadata.generated.schema.entity.services.connections.metadata.openMetadata
) )
from metadata.ingestion.ometa.client import REST, ClientConfig from metadata.ingestion.ometa.client import REST, ClientConfig
from metadata.ingestion.ometa.ometa_api import OpenMetadata from metadata.ingestion.ometa.ometa_api import OpenMetadata
from metadata.utils.logger import cli_logger from metadata.utils.logger import cli_logger, ometa_logger
logger = cli_logger() logger = cli_logger()
calc_gb = 1024 * 1024 * 1024 calc_gb = 1024 * 1024 * 1024
min_memory_limit = 6 * calc_gb min_memory_limit = 6 * calc_gb
def start_docker(docker, start_time, file_path, skip_sample_data): def start_docker(docker, start_time, file_path, ingest_sample_data: bool):
logger.info("Running docker compose for OpenMetadata..") logger.info("Running docker compose for OpenMetadata..")
click.secho("It may take some time on the first run", fg="bright_yellow") click.secho("It may take some time on the first run", fg="bright_yellow")
if file_path: if file_path:
@ -33,14 +32,14 @@ def start_docker(docker, start_time, file_path, skip_sample_data):
docker.compose.up(detach=True) docker.compose.up(detach=True)
logger.info("Ran docker compose for OpenMetadata successfully.") logger.info("Ran docker compose for OpenMetadata successfully.")
if not skip_sample_data: if ingest_sample_data:
logger.info("Waiting for ingestion to complete..") logger.info("Waiting for ingestion to complete..")
wait_for_containers(docker) wait_for_containers(docker)
ingest_sample_data() run_sample_data()
metadata_config = OpenMetadataConnection( metadata_config = OpenMetadataConnection(
hostPort="http://localhost:8585/api", authProvider="no-auth" hostPort="http://localhost:8585/api", authProvider="no-auth"
) )
logging.getLogger("metadata.ingestion.ometa.ometa_api").disabled = True ometa_logger().disabled = True
ometa_client = OpenMetadata(metadata_config) ometa_client = OpenMetadata(metadata_config)
while True: while True:
try: try:
@ -54,13 +53,27 @@ def start_docker(docker, start_time, file_path, skip_sample_data):
sys.stdout.write(".") sys.stdout.write(".")
sys.stdout.flush() sys.stdout.flush()
time.sleep(5) time.sleep(5)
logging.getLogger("metadata.ingestion.ometa.ometa_api").disabled = False ometa_logger().disabled = False
# Wait until docker is not only running, but the server is up
click.secho(
"Waiting for server to be up at http://localhost:8585", fg="bright_yellow"
)
while True:
try:
res = requests.get("http://localhost:8585")
if res.status_code == 200:
break
except Exception:
pass
time.sleep(5)
elapsed = time.time() - start_time elapsed = time.time() - start_time
logger.info( logger.info(
f"Time took to get OpenMetadata running: {str(timedelta(seconds=elapsed))}" f"Time taken to get OpenMetadata running: {str(timedelta(seconds=elapsed))}"
) )
click.secho( click.secho(
"\n✅ OpenMetadata is up and running", "\n OpenMetadata is up and running",
fg="bright_green", fg="bright_green",
) )
click.secho( click.secho(
@ -111,32 +124,32 @@ def file_path_check(file_path):
def run_docker( def run_docker(
start, start: bool,
stop, stop: bool,
pause, pause: bool,
resume, resume: bool,
clean, clean: bool,
file_path, file_path: str,
env_file_path, env_file_path: str,
reset_db, reset_db: bool,
skip_sample_data, ingest_sample_data: bool,
): ):
try: try:
from python_on_whales import DockerClient from python_on_whales import DockerClient
docker = DockerClient(compose_project_name="openmetadata", compose_files=[]) docker = DockerClient(compose_project_name="openmetadata", compose_files=[])
logger.info("Checking if docker compose is installed..") logger.info("Checking if docker compose is installed...")
if not docker.compose.is_installed(): if not docker.compose.is_installed():
raise Exception("Docker Compose CLI is not installed on the system.") raise Exception("Docker Compose CLI is not installed on the system.")
docker_info = docker.info() docker_info = docker.info()
logger.info("Checking if docker service is running..") logger.info("Checking if docker service is running...")
if not docker_info.id: if not docker_info.id:
raise Exception("Docker Service is not up and running.") raise Exception("Docker Service is not up and running.")
logger.info("Checking openmetadata memory constraints..") logger.info("Checking openmetadata memory constraints...")
if docker_info.mem_total < min_memory_limit: if docker_info.mem_total < min_memory_limit:
raise MemoryError raise MemoryError
@ -151,24 +164,24 @@ def run_docker(
compose_env_file=env_file, compose_env_file=env_file,
) )
if start: if start:
start_docker(docker, start_time, file_path, skip_sample_data) start_docker(docker, start_time, file_path, ingest_sample_data)
if pause: if pause:
logger.info("Pausing docker compose for OpenMetadata..") logger.info("Pausing docker compose for OpenMetadata...")
docker.compose.pause() docker.compose.pause()
logger.info("Pausing docker compose for OpenMetadata successful.") logger.info("Pausing docker compose for OpenMetadata successful.")
if resume: if resume:
logger.info("Resuming docker compose for OpenMetadata..") logger.info("Resuming docker compose for OpenMetadata...")
docker.compose.unpause() docker.compose.unpause()
logger.info("Resuming docker compose for OpenMetadata Successful.") logger.info("Resuming docker compose for OpenMetadata Successful.")
if stop: if stop:
logger.info("Stopping docker compose for OpenMetadata..") logger.info("Stopping docker compose for OpenMetadata...")
docker.compose.stop() docker.compose.stop()
logger.info("Docker compose for OpenMetadata stopped successfully.") logger.info("Docker compose for OpenMetadata stopped successfully.")
if reset_db: if reset_db:
reset_db_om(docker) reset_db_om(docker)
if clean: if clean:
logger.info( logger.info(
"Stopping docker compose for OpenMetadata and removing images, networks, volumes.." "Stopping docker compose for OpenMetadata and removing images, networks, volumes..."
) )
docker.compose.down(remove_orphans=True, remove_images="all", volumes=True) docker.compose.down(remove_orphans=True, remove_images="all", volumes=True)
logger.info( logger.info(
@ -224,7 +237,7 @@ def wait_for_containers(docker) -> None:
time.sleep(5) time.sleep(5)
def ingest_sample_data() -> None: def run_sample_data() -> None:
""" """
Trigger sample data DAGs Trigger sample data DAGs
""" """

View File

@ -23,9 +23,6 @@ from metadata.cli.backup import run_backup
from metadata.cli.docker import run_docker from metadata.cli.docker import run_docker
from metadata.cli.ingest import run_ingest from metadata.cli.ingest import run_ingest
from metadata.config.common import load_config_file from metadata.config.common import load_config_file
from metadata.generated.schema.metadataIngestion.workflow import (
OpenMetadataWorkflowConfig,
)
from metadata.ingestion.api.workflow import Workflow from metadata.ingestion.api.workflow import Workflow
from metadata.orm_profiler.api.workflow import ProfilerWorkflow from metadata.orm_profiler.api.workflow import ProfilerWorkflow
from metadata.utils.logger import cli_logger, set_loggers_level from metadata.utils.logger import cli_logger, set_loggers_level
@ -179,7 +176,7 @@ def report(config: str) -> None:
) )
@click.option("--reset-db", help="Reset OpenMetadata Data", is_flag=True) @click.option("--reset-db", help="Reset OpenMetadata Data", is_flag=True)
@click.option( @click.option(
"--skip-sample-data", help="Skip the ingestion of sample metadata", is_flag=True "--ingest-sample-data", help="Enable the sample metadata ingestion", is_flag=True
) )
def docker( def docker(
start, start,
@ -190,7 +187,7 @@ def docker(
file_path, file_path,
env_file_path, env_file_path,
reset_db, reset_db,
skip_sample_data, ingest_sample_data,
) -> None: ) -> None:
""" """
Checks Docker Memory Allocation Checks Docker Memory Allocation
@ -206,7 +203,7 @@ def docker(
file_path, file_path,
env_file_path, env_file_path,
reset_db, reset_db,
skip_sample_data, ingest_sample_data,
) )