diff --git a/src/aleph_client/commands/instance/__init__.py b/src/aleph_client/commands/instance/__init__.py index 85b3fdc2..2e140de9 100644 --- a/src/aleph_client/commands/instance/__init__.py +++ b/src/aleph_client/commands/instance/__init__.py @@ -864,6 +864,33 @@ async def _show_instances(messages: builtins.list[InstanceMessage]): aleph_price = Text.assemble(psec, " | ", phour, " | ", pday, " | ", pmonth, style="violet") cost = Text.assemble("\n$ALEPH: ", aleph_price) + additional_infos = [] + if is_hold: + # XXX error management + async with aiohttp.ClientSession() as session: + request = await session.get("http://[2a01:240:ad00:2:be24:11ff:fece:9d3d]/api/v0/decisions") + decisions = await request.json() + decision = decisions["tasks_decisions"][str(item_hash_link)]["decision"] + description = decisions["tasks_decisions"][str(item_hash_link)]["description"] + decision_text = Text.assemble(f"[{decision}] {description}", style="yellow") + additional_infos.append(Text.assemble("\nScheduler: ", decision_text)) + + async with aiohttp.ClientSession() as session: + request = await session.get(f'{info["crn_url"]}/about/executions/records') + running_instances = await request.json() + for running_instance in running_instances: + if running_instance.get("vm_hash") == item_hash_link.plain: + additional_infos.append( + Text.assemble( + "\nCRN: ", Text.assemble(f"started at {running_instance['time_started']}", style="blue") + ) + ) + break + else: + additional_infos.append( + Text.assemble("\nCRN: ", Text.assemble("not listed on the CRN", style="orange1")) + ) + instance = Text.assemble( "Item Hash ↓\t Name: ", name, @@ -877,6 +904,7 @@ async def _show_instances(messages: builtins.list[InstanceMessage]): created_at, payer, cost, + *additional_infos, ) # 2nd Column