tape: add pmt lock/unlock
This commit is contained in:
		| @ -466,6 +466,31 @@ fn load(param: Value) -> Result<(), Error> { | ||||
| } | ||||
|  | ||||
|  | ||||
| #[api( | ||||
|    input: { | ||||
|         properties: { | ||||
|             drive: { | ||||
|                 schema: DRIVE_NAME_SCHEMA, | ||||
|                 optional: true, | ||||
|             }, | ||||
|             device: { | ||||
|                 schema: LINUX_DRIVE_PATH_SCHEMA, | ||||
|                 optional: true, | ||||
|             }, | ||||
|        }, | ||||
|     }, | ||||
| )] | ||||
| /// Lock the tape drive door | ||||
| fn lock(param: Value) -> Result<(), Error> { | ||||
|  | ||||
|     let mut handle = get_tape_handle(¶m)?; | ||||
|  | ||||
|     handle.mtop(MTCmd::MTLOCK, 1, "lock tape drive door")?; | ||||
|  | ||||
|     Ok(()) | ||||
| } | ||||
|  | ||||
|  | ||||
| #[api( | ||||
|    input: { | ||||
|         properties: { | ||||
| @ -577,6 +602,32 @@ fn status(param: Value) -> Result<(), Error> { | ||||
|     Ok(()) | ||||
| } | ||||
|  | ||||
|  | ||||
| #[api( | ||||
|    input: { | ||||
|         properties: { | ||||
|             drive: { | ||||
|                 schema: DRIVE_NAME_SCHEMA, | ||||
|                 optional: true, | ||||
|             }, | ||||
|             device: { | ||||
|                 schema: LINUX_DRIVE_PATH_SCHEMA, | ||||
|                 optional: true, | ||||
|             }, | ||||
|        }, | ||||
|     }, | ||||
| )] | ||||
| /// Unlock the tape drive door | ||||
| fn unlock(param: Value) -> Result<(), Error> { | ||||
|  | ||||
|     let mut handle = get_tape_handle(¶m)?; | ||||
|  | ||||
|     handle.mtop(MTCmd::MTUNLOCK, 1, "unlock tape drive door")?; | ||||
|  | ||||
|     Ok(()) | ||||
| } | ||||
|  | ||||
|  | ||||
| #[api( | ||||
|     input: { | ||||
|         properties: { | ||||
| @ -681,9 +732,11 @@ fn main() -> Result<(), Error> { | ||||
|         .insert("fsfm", std_cmd(&API_METHOD_FSFM).arg_param(&["count"])) | ||||
|         .insert("fsr", std_cmd(&API_METHOD_FSR).arg_param(&["count"])) | ||||
|         .insert("load", std_cmd(&API_METHOD_LOAD)) | ||||
|         .insert("lock", std_cmd(&API_METHOD_LOCK)) | ||||
|         .insert("rewind", std_cmd(&API_METHOD_REWIND)) | ||||
|         .insert("scan", CliCommand::new(&API_METHOD_SCAN)) | ||||
|         .insert("status", std_cmd(&API_METHOD_STATUS)) | ||||
|         .insert("unlock", std_cmd(&API_METHOD_UNLOCK)) | ||||
|         .insert("volume-statistics", std_cmd(&API_METHOD_VOLUME_STATISTICS)) | ||||
|         .insert("weof", std_cmd(&API_METHOD_WEOF).arg_param(&["count"])) | ||||
|         ; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user