//! Block file access via a small QEMU restore VM using the PBS block driver in QEMU
+use std::collections::HashMap;
+use std::fs::{File, OpenOptions};
+use std::io::{prelude::*, SeekFrom};
+
use anyhow::{bail, Error};
use futures::FutureExt;
use serde::{Deserialize, Serialize};
use serde_json::json;
-use std::collections::HashMap;
-use std::fs::{File, OpenOptions};
-use std::io::{prelude::*, SeekFrom};
-
use proxmox::tools::fs::lock_file;
-use proxmox_backup::api2::types::ArchiveEntry;
-use proxmox_backup::backup::BackupDir;
-use proxmox_backup::client::*;
-use proxmox_backup::tools;
+
+use pbs_client::{DEFAULT_VSOCK_PORT, BackupRepository, VsockClient};
+use pbs_datastore::backup_info::BackupDir;
+use pbs_datastore::catalog::ArchiveEntry;
use super::block_driver::*;
-use crate::proxmox_client_tools::get_user_run_dir;
+use crate::get_user_run_dir;
const RESTORE_VM_MAP: &str = "restore-vm-map.json";
fn make_name(repo: &BackupRepository, snap: &BackupDir) -> String {
let full = format!("qemu_{}/{}", repo, snap);
- tools::systemd::escape_unit(&full, false)
+ pbs_systemd::escape_unit(&full, false)
}
/// remove non-responsive VMs from given map, returns 'true' if map was modified
let resp = client
.get("api2/json/status", Some(json!({"keep-timeout": true})))
.await;
- let name = tools::systemd::unescape_unit(n)
+ let name = pbs_systemd::unescape_unit(n)
.unwrap_or_else(|_| "<invalid name>".to_owned());
let mut extra = json!({"pid": s.pid, "cid": s.cid});
fn stop(&self, id: String) -> Async<Result<(), Error>> {
async move {
- let name = tools::systemd::escape_unit(&id, false);
+ let name = pbs_systemd::escape_unit(&id, false);
let mut map = VMStateMap::load()?;
let map_mod = cleanup_map(&mut map.map).await;
match map.map.get(&name) {
match VMStateMap::load_read_only() {
Ok(state) => state
.iter()
- .filter_map(|(name, _)| tools::systemd::unescape_unit(&name).ok())
+ .filter_map(|(name, _)| pbs_systemd::unescape_unit(&name).ok())
.collect(),
Err(_) => Vec::new(),
}