tape: status - show thape alert flags

This commit is contained in:
Dietmar Maurer 2021-01-04 13:15:30 +01:00
parent 5c012b392a
commit 470f1c798a
3 changed files with 15 additions and 5 deletions

View File

@ -179,6 +179,9 @@ pub struct LinuxDriveAndMediaStatus {
pub density: Option<TapeDensity>, pub density: Option<TapeDensity>,
/// Status flags /// Status flags
pub status: String, pub status: String,
/// Tape Alert Flags
#[serde(skip_serializing_if="Option::is_none")]
pub alert_flags: Option<String>,
/// Current file number /// Current file number
#[serde(skip_serializing_if="Option::is_none")] #[serde(skip_serializing_if="Option::is_none")]
pub file_number: Option<u32>, pub file_number: Option<u32>,

View File

@ -592,6 +592,7 @@ fn status(
.column(ColumnConfig::new("blocksize")) .column(ColumnConfig::new("blocksize"))
.column(ColumnConfig::new("density")) .column(ColumnConfig::new("density"))
.column(ColumnConfig::new("status")) .column(ColumnConfig::new("status"))
.column(ColumnConfig::new("alert-flags"))
.column(ColumnConfig::new("file-number")) .column(ColumnConfig::new("file-number"))
.column(ColumnConfig::new("block-number")) .column(ColumnConfig::new("block-number"))
.column(ColumnConfig::new("manufactured").renderer(render_epoch)) .column(ColumnConfig::new("manufactured").renderer(render_epoch))

View File

@ -209,10 +209,15 @@ impl LinuxTapeHandle {
let drive_status = self.get_drive_status()?; let drive_status = self.get_drive_status()?;
let alert_flags = self.tape_alert_flags()
.map(|flags| format!("{:?}", flags))
.ok();
let mut status = LinuxDriveAndMediaStatus { let mut status = LinuxDriveAndMediaStatus {
blocksize: drive_status.blocksize, blocksize: drive_status.blocksize,
density: drive_status.density, density: drive_status.density,
status: format!("{:?}", drive_status.status), status: format!("{:?}", drive_status.status),
alert_flags,
file_number: drive_status.file_number, file_number: drive_status.file_number,
block_number: drive_status.block_number, block_number: drive_status.block_number,
manufactured: None, manufactured: None,
@ -222,7 +227,7 @@ impl LinuxTapeHandle {
if drive_status.tape_is_ready() { if drive_status.tape_is_ready() {
let mam = self.cartridge_memory()?; if let Ok(mam) = self.cartridge_memory() {
let usage = mam_extract_media_usage(&mam)?; let usage = mam_extract_media_usage(&mam)?;
@ -230,6 +235,7 @@ impl LinuxTapeHandle {
status.bytes_read = Some(usage.bytes_read); status.bytes_read = Some(usage.bytes_read);
status.bytes_written = Some(usage.bytes_written); status.bytes_written = Some(usage.bytes_written);
} }
}
Ok(status) Ok(status)
} }