def show(pulp_ctx: PulpContext, task_ctx: PulpTaskContext, href: str, wait: bool) -> None: """Shows details of a task.""" entity = task_ctx.show(href) if wait and entity["state"] in ["waiting", "running"]: click.echo(f"Waiting for task {href} to finish.", err=True) entity = pulp_ctx.wait_for_task(entity) pulp_ctx.output_result(entity)
def cancel(pulp_ctx: PulpContext, task_ctx: PulpTaskContext, href: str) -> None: """Cancels a task and waits until the cancellation is confirmed.""" entity = task_ctx.show(href) if entity["state"] not in ["waiting", "running"]: click.ClickException( f"Task {href} is in state {entity['state']} and cannot be canceled." ) task_ctx.cancel(href) click.echo(f"Waiting to cancel task {href}", err=True) try: pulp_ctx.wait_for_task(entity) except Exception as e: if str(e) != "Task canceled": raise e click.echo("Done.", err=True)