in torchx/cli/cmd_status.py [0:0]
def format_replica_status(replica_status: api.ReplicaStatus) -> str:
if replica_status.structured_error_msg != NONE:
error_data = json.loads(replica_status.structured_error_msg)
error_message = format_error_message(
msg=error_data["message"]["message"], header=" error_msg: "
)
timestamp = int(error_data["message"]["extraInfo"]["timestamp"])
exitcode = error_data["message"]["errorCode"]
if not exitcode:
exitcode = "<N/A>"
data = f"""{str(replica_status.state)} (exitcode: {exitcode})
timestamp: {datetime.fromtimestamp(timestamp)}
hostname: {replica_status.hostname}
{error_message}"""
else:
data = f"{str(replica_status.state)}"
if replica_status.state in [
api.ReplicaState.CANCELLED,
api.ReplicaState.FAILED,
]:
data += " (no reply file)"
# mark index 0 for each role with a "*" for a visual queue on role boundaries
header = " "
if replica_status.id == 0:
header = "*"
return f"\n {header}{replica_status.role}[{replica_status.id}]:{data}"