tape: set encryption key on restore
This commit is contained in:
parent
aff3e16194
commit
8e6459a818
@ -134,13 +134,21 @@ pub fn restore(
|
|||||||
|
|
||||||
let mut media_id_list = Vec::new();
|
let mut media_id_list = Vec::new();
|
||||||
|
|
||||||
|
let mut encryption_key_fingerprint = None;
|
||||||
|
|
||||||
for (seq_nr, media_uuid) in media_list.iter().enumerate() {
|
for (seq_nr, media_uuid) in media_list.iter().enumerate() {
|
||||||
match media_uuid {
|
match media_uuid {
|
||||||
None => {
|
None => {
|
||||||
bail!("media set {} is incomplete (missing member {}).", media_set_uuid, seq_nr);
|
bail!("media set {} is incomplete (missing member {}).", media_set_uuid, seq_nr);
|
||||||
}
|
}
|
||||||
Some(media_uuid) => {
|
Some(media_uuid) => {
|
||||||
media_id_list.push(inventory.lookup_media(media_uuid).unwrap());
|
let media_id = inventory.lookup_media(media_uuid).unwrap();
|
||||||
|
if let Some(ref set) = media_id.media_set_label { // always true here
|
||||||
|
if encryption_key_fingerprint.is_none() && set.encryption_key_fingerprint.is_some() {
|
||||||
|
encryption_key_fingerprint = set.encryption_key_fingerprint.clone();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
media_id_list.push(media_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -148,6 +156,9 @@ pub fn restore(
|
|||||||
let drive = &pool_config.drive;
|
let drive = &pool_config.drive;
|
||||||
|
|
||||||
worker.log(format!("Restore mediaset '{}'", media_set));
|
worker.log(format!("Restore mediaset '{}'", media_set));
|
||||||
|
if let Some(fingerprint) = encryption_key_fingerprint {
|
||||||
|
worker.log(format!("Encryption key fingerprint: {}", fingerprint));
|
||||||
|
}
|
||||||
worker.log(format!("Pool: {}", pool));
|
worker.log(format!("Pool: {}", pool));
|
||||||
worker.log(format!("Datastore: {}", store));
|
worker.log(format!("Datastore: {}", store));
|
||||||
worker.log(format!("Drive: {}", drive));
|
worker.log(format!("Drive: {}", drive));
|
||||||
@ -206,6 +217,10 @@ pub fn request_and_restore_media(
|
|||||||
media_id.label.label_text, media_id.label.uuid,
|
media_id.label.label_text, media_id.label.uuid,
|
||||||
media_set_uuid);
|
media_set_uuid);
|
||||||
}
|
}
|
||||||
|
let encrypt_fingerprint = set.encryption_key_fingerprint.clone()
|
||||||
|
.map(|fp| (fp, set.uuid.clone()));
|
||||||
|
|
||||||
|
drive.set_encryption(encrypt_fingerprint)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user