drive::{
media_changer,
lock_tape_device,
+ set_tape_device_state,
},
changer::update_changer_online_status,
},
move |worker| {
let _drive_lock = drive_lock; // keep lock guard
+ set_tape_device_state(&tape_job.drive, &worker.upid().to_string())?;
job.start(&worker.upid().to_string())?;
let eject_media = false;
);
}
+ if let Err(err) = set_tape_device_state(&tape_job.drive, "") {
+ eprintln!(
+ "could not unset drive state for {}: {}",
+ tape_job.drive,
+ err
+ );
+ }
+
job_result
}
)?;
to_stdout,
move |worker| {
let _drive_lock = drive_lock; // keep lock guard
+ set_tape_device_state(&drive, &worker.upid().to_string())?;
backup_worker(&worker, datastore, &drive, &pool_config, eject_media, export_media_set)?;
+ // ignore errors
+ let _ = set_tape_device_state(&drive, "");
Ok(())
}
)?;
TapeDriver,
request_and_load_media,
lock_tape_device,
+ set_tape_device_state,
},
},
};
move |worker| {
let _drive_lock = drive_lock; // keep lock guard
+ set_tape_device_state(&drive, &worker.upid().to_string())?;
+
let _lock = MediaPool::lock(status_path, &pool)?;
let members = inventory.compute_media_set_members(&media_set_uuid)?;
}
task_log!(worker, "Restore mediaset '{}' done", media_set);
+
+ if let Err(err) = set_tape_device_state(&drive, "") {
+ task_log!(
+ worker,
+ "could not unset drive state for {}: {}",
+ drive,
+ err
+ );
+ }
+
Ok(())
}
)?;
drive::{
open_drive,
lock_tape_device,
+ set_tape_device_state,
},
complete_media_label_text,
complete_media_set_uuid,
let drive = extract_drive_name(&mut param, &config)?;
let _lock = lock_tape_device(&config, &drive)?;
+ set_tape_device_state(&drive, "moving to eom")?;
let mut drive = open_drive(&config, &drive)?;
let drive = extract_drive_name(&mut param, &config)?;
let _lock = lock_tape_device(&config, &drive)?;
+ set_tape_device_state(&drive, "debug scan")?;
let mut drive = open_drive(&config, &drive)?;