feat(cli): add more details to get cli (#10815)

This commit is contained in:
Aseem Bansal 2024-07-03 12:25:15 +05:30 committed by GitHub
parent 099021c7a3
commit e45f7a4167
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 3 deletions

View File

@ -522,6 +522,7 @@ def get_aspects_for_entity(
aspects: List[str], aspects: List[str],
typed: bool = False, typed: bool = False,
cached_session_host: Optional[Tuple[Session, str]] = None, cached_session_host: Optional[Tuple[Session, str]] = None,
details: bool = False,
) -> Dict[str, Union[dict, _Aspect]]: ) -> Dict[str, Union[dict, _Aspect]]:
# Process non-timeseries aspects # Process non-timeseries aspects
non_timeseries_aspects = [a for a in aspects if a not in TIMESERIES_ASPECT_MAP] non_timeseries_aspects = [a for a in aspects if a not in TIMESERIES_ASPECT_MAP]
@ -553,7 +554,12 @@ def get_aspects_for_entity(
aspect_name aspect_name
) )
aspect_dict = a["value"] if details:
aspect_dict = a
for k in ["name", "version", "type"]:
del aspect_dict[k]
else:
aspect_dict = a["value"]
if not typed: if not typed:
aspect_map[aspect_name] = aspect_dict aspect_map[aspect_name] = aspect_dict
elif aspect_py_class: elif aspect_py_class:

View File

@ -21,10 +21,17 @@ def get() -> None:
@get.command() @get.command()
@click.option("--urn", required=False, type=str) @click.option("--urn", required=False, type=str)
@click.option("-a", "--aspect", required=False, multiple=True, type=str) @click.option("-a", "--aspect", required=False, multiple=True, type=str)
@click.option(
"--details/--no-details",
required=False,
is_flag=True,
default=False,
help="Whether to print details from database which help in audit.",
)
@click.pass_context @click.pass_context
@upgrade.check_upgrade @upgrade.check_upgrade
@telemetry.with_telemetry() @telemetry.with_telemetry()
def urn(ctx: Any, urn: Optional[str], aspect: List[str]) -> None: def urn(ctx: Any, urn: Optional[str], aspect: List[str], details: bool) -> None:
""" """
Get metadata for an entity with an optional list of aspects to project. Get metadata for an entity with an optional list of aspects to project.
This works for both versioned aspects and timeseries aspects. For timeseries aspects, it fetches the latest value. This works for both versioned aspects and timeseries aspects. For timeseries aspects, it fetches the latest value.
@ -39,7 +46,9 @@ def urn(ctx: Any, urn: Optional[str], aspect: List[str]) -> None:
logger.debug(f"Using urn from args {urn}") logger.debug(f"Using urn from args {urn}")
click.echo( click.echo(
json.dumps( json.dumps(
get_aspects_for_entity(entity_urn=urn, aspects=aspect, typed=False), get_aspects_for_entity(
entity_urn=urn, aspects=aspect, typed=False, details=details
),
sort_keys=True, sort_keys=True,
indent=2, indent=2,
) )