(
gsettings: &GlobalSettings,
session: &mut ClientSession,
job_id_selector: SingleIdSelector,
task_id_selector: TaskIdSelector,
verbosity: Verbosity,
)
| 110 | } |
| 111 | |
| 112 | pub async fn output_job_task_info( |
| 113 | gsettings: &GlobalSettings, |
| 114 | session: &mut ClientSession, |
| 115 | job_id_selector: SingleIdSelector, |
| 116 | task_id_selector: TaskIdSelector, |
| 117 | verbosity: Verbosity, |
| 118 | ) -> anyhow::Result<()> { |
| 119 | let message = FromClientMessage::JobDetail(JobDetailRequest { |
| 120 | job_id_selector: match job_id_selector { |
| 121 | SingleIdSelector::Specific(id) => IdSelector::Specific(IntArray::from_id(id)), |
| 122 | SingleIdSelector::Last => IdSelector::LastN(1), |
| 123 | }, |
| 124 | task_selector: Some(TaskSelector { |
| 125 | id_selector: task_id_selector, |
| 126 | status_selector: TaskStatusSelector::All, |
| 127 | }), |
| 128 | }); |
| 129 | let response = |
| 130 | rpc_call!(session.connection(), message, ToClientMessage::JobDetailResponse(r) => r) |
| 131 | .await?; |
| 132 | |
| 133 | let (job_id, opt_job) = response.details.first().unwrap(); |
| 134 | match opt_job { |
| 135 | None => log::error!("Cannot find job {job_id}"), |
| 136 | Some(job) => { |
| 137 | let worker_map = get_worker_map(session).await?; |
| 138 | gsettings.printer().print_task_info( |
| 139 | (*job_id, job.clone()), |
| 140 | &job.tasks, |
| 141 | &worker_map, |
| 142 | &response.server_uid, |
| 143 | verbosity, |
| 144 | ); |
| 145 | |
| 146 | for task_id in &job.tasks_not_found { |
| 147 | log::warn!("Task {task_id} not found"); |
| 148 | } |
| 149 | } |
| 150 | } |
| 151 | |
| 152 | Ok(()) |
| 153 | } |
| 154 | |
| 155 | pub async fn output_job_task_ids( |
| 156 | gsettings: &GlobalSettings, |
no test coverage detected