From dd2162f6bddce522c4c3f74e3b3a939f0ba07540 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Tue, 31 Aug 2021 14:01:03 +0200 Subject: [PATCH] more import cleanups Signed-off-by: Wolfgang Bumiller --- src/api2/node/disks/directory.rs | 12 +++++----- src/api2/node/disks/zfs.rs | 6 ++--- src/api2/types/mod.rs | 8 +++---- src/api2/types/tape/media_pool.rs | 23 ++++++++----------- src/bin/proxmox-backup-proxy.rs | 5 +--- .../proxmox_file_restore/block_driver_qemu.rs | 10 ++++---- src/server/email_notifications.rs | 2 +- src/server/jobstate.rs | 9 ++++---- src/tape/drive/mod.rs | 2 +- src/tape/inventory.rs | 3 ++- src/tape/media_pool.rs | 2 +- src/tools/systemd/mod.rs | 5 ---- src/tools/systemd/types.rs | 4 ++-- 13 files changed, 37 insertions(+), 54 deletions(-) diff --git a/src/api2/node/disks/directory.rs b/src/api2/node/disks/directory.rs index 75e0ea02..cd6cb66b 100644 --- a/src/api2/node/disks/directory.rs +++ b/src/api2/node/disks/directory.rs @@ -175,9 +175,9 @@ pub fn create_datastore_disk( let mount_unit_name = create_datastore_mount_unit(&name, &mount_point, filesystem, &uuid_path)?; - systemd::reload_daemon()?; - systemd::enable_unit(&mount_unit_name)?; - systemd::start_unit(&mount_unit_name)?; + pbs_systemd::reload_daemon()?; + pbs_systemd::enable_unit(&mount_unit_name)?; + pbs_systemd::start_unit(&mount_unit_name)?; if add_datastore { let lock = open_backup_lockfile(datastore::DATASTORE_CFG_LOCKFILE, None, true)?; @@ -231,9 +231,9 @@ pub fn delete_datastore_disk(name: String) -> Result<(), Error> { } // disable systemd mount-unit - let mut mount_unit_name = systemd::escape_unit(&path, true); + let mut mount_unit_name = pbs_systemd::escape_unit(&path, true); mount_unit_name.push_str(".mount"); - systemd::disable_unit(&mount_unit_name)?; + pbs_systemd::disable_unit(&mount_unit_name)?; // delete .mount-file let mount_unit_path = format!("/etc/systemd/system/{}", mount_unit_name); @@ -270,7 +270,7 @@ fn create_datastore_mount_unit( what: &str, ) -> Result { - let mut mount_unit_name = systemd::escape_unit(&mount_point, true); + let mut mount_unit_name = pbs_systemd::escape_unit(&mount_point, true); mount_unit_name.push_str(".mount"); let mount_unit_path = format!("/etc/systemd/system/{}", mount_unit_name); diff --git a/src/api2/node/disks/zfs.rs b/src/api2/node/disks/zfs.rs index 90ba52ad..e18f1bd1 100644 --- a/src/api2/node/disks/zfs.rs +++ b/src/api2/node/disks/zfs.rs @@ -26,8 +26,6 @@ use crate::server::WorkerTask; use crate::api2::types::*; -use crate::tools::systemd; - pub const DISK_ARRAY_SCHEMA: Schema = ArraySchema::new( "Disk name list.", &BLOCKDEVICE_NAME_SCHEMA) .schema(); @@ -362,8 +360,8 @@ pub fn create_zpool( worker.log(output); if std::path::Path::new("/lib/systemd/system/zfs-import@.service").exists() { - let import_unit = format!("zfs-import@{}.service", systemd::escape_unit(&name, false)); - systemd::enable_unit(&import_unit)?; + let import_unit = format!("zfs-import@{}.service", pbs_systemd::escape_unit(&name, false)); + pbs_systemd::enable_unit(&import_unit)?; } if let Some(compression) = compression { diff --git a/src/api2/types/mod.rs b/src/api2/types/mod.rs index 2d9d0d39..a1892371 100644 --- a/src/api2/types/mod.rs +++ b/src/api2/types/mod.rs @@ -264,25 +264,25 @@ pub const MEDIA_UUID_SCHEMA: Schema = pub const SYNC_SCHEDULE_SCHEMA: Schema = StringSchema::new( "Run sync job at specified schedule.") - .format(&ApiStringFormat::VerifyFn(crate::tools::systemd::time::verify_calendar_event)) + .format(&ApiStringFormat::VerifyFn(pbs_systemd::time::verify_calendar_event)) .type_text("") .schema(); pub const GC_SCHEDULE_SCHEMA: Schema = StringSchema::new( "Run garbage collection job at specified schedule.") - .format(&ApiStringFormat::VerifyFn(crate::tools::systemd::time::verify_calendar_event)) + .format(&ApiStringFormat::VerifyFn(pbs_systemd::time::verify_calendar_event)) .type_text("") .schema(); pub const PRUNE_SCHEDULE_SCHEMA: Schema = StringSchema::new( "Run prune job at specified schedule.") - .format(&ApiStringFormat::VerifyFn(crate::tools::systemd::time::verify_calendar_event)) + .format(&ApiStringFormat::VerifyFn(pbs_systemd::time::verify_calendar_event)) .type_text("") .schema(); pub const VERIFICATION_SCHEDULE_SCHEMA: Schema = StringSchema::new( "Run verify job at specified schedule.") - .format(&ApiStringFormat::VerifyFn(crate::tools::systemd::time::verify_calendar_event)) + .format(&ApiStringFormat::VerifyFn(pbs_systemd::time::verify_calendar_event)) .type_text("") .schema(); diff --git a/src/api2/types/tape/media_pool.rs b/src/api2/types/tape/media_pool.rs index 5507cf09..242f6221 100644 --- a/src/api2/types/tape/media_pool.rs +++ b/src/api2/types/tape/media_pool.rs @@ -4,8 +4,9 @@ //! so we cannot use them directly for the API. Instead, we represent //! them as String. -use anyhow::Error; use std::str::FromStr; + +use anyhow::Error; use serde::{Deserialize, Serialize}; use proxmox::api::{ @@ -13,19 +14,13 @@ use proxmox::api::{ schema::{Schema, StringSchema, ApiStringFormat, Updater}, }; -use crate::{ - tools::systemd::time::{ - CalendarEvent, - TimeSpan, - parse_time_span, - parse_calendar_event, - }, - api2::types::{ - PROXMOX_SAFE_ID_FORMAT, - SINGLE_LINE_COMMENT_FORMAT, - SINGLE_LINE_COMMENT_SCHEMA, - TAPE_ENCRYPTION_KEY_FINGERPRINT_SCHEMA, - }, +use pbs_systemd::time::{parse_calendar_event, parse_time_span, CalendarEvent, TimeSpan}; + +use crate::api2::types::{ + PROXMOX_SAFE_ID_FORMAT, + SINGLE_LINE_COMMENT_FORMAT, + SINGLE_LINE_COMMENT_SCHEMA, + TAPE_ENCRYPTION_KEY_FINGERPRINT_SCHEMA, }; pub const MEDIA_POOL_NAME_SCHEMA: Schema = StringSchema::new("Media pool name.") diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs index 2877408e..37926e72 100644 --- a/src/bin/proxmox-backup-proxy.rs +++ b/src/bin/proxmox-backup-proxy.rs @@ -26,13 +26,10 @@ use proxmox_backup::{ }, rotate_task_log_archive, }, - tools::systemd::time::{ - parse_calendar_event, - compute_next_event, - }, }; use pbs_buildcfg::configdir; +use pbs_systemd::time::{compute_next_event, parse_calendar_event}; use proxmox_backup::api2::types::Authid; use proxmox_backup::server; diff --git a/src/bin/proxmox_file_restore/block_driver_qemu.rs b/src/bin/proxmox_file_restore/block_driver_qemu.rs index 7fc6331f..8954223c 100644 --- a/src/bin/proxmox_file_restore/block_driver_qemu.rs +++ b/src/bin/proxmox_file_restore/block_driver_qemu.rs @@ -14,8 +14,6 @@ use pbs_client::{DEFAULT_VSOCK_PORT, BackupRepository, VsockClient}; use pbs_datastore::backup_info::BackupDir; use pbs_datastore::catalog::ArchiveEntry; -use proxmox_backup::tools; - use super::block_driver::*; use crate::get_user_run_dir; @@ -82,7 +80,7 @@ impl VMStateMap { 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 @@ -259,7 +257,7 @@ impl BlockRestoreDriver for QemuBlockDriver { 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(|_| "".to_owned()); let mut extra = json!({"pid": s.pid, "cid": s.cid}); @@ -297,7 +295,7 @@ impl BlockRestoreDriver for QemuBlockDriver { fn stop(&self, id: String) -> Async> { 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) { @@ -327,7 +325,7 @@ impl BlockRestoreDriver for QemuBlockDriver { 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(), } diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs index 70830915..fb1349c1 100644 --- a/src/server/email_notifications.rs +++ b/src/server/email_notifications.rs @@ -440,7 +440,7 @@ pub fn send_tape_backup_status( ) -> Result<(), Error> { let (fqdn, port) = get_server_url(); - let duration: crate::tools::systemd::time::TimeSpan = summary.duration.into(); + let duration: pbs_systemd::time::TimeSpan = summary.duration.into(); let mut data = json!({ "job": job, "fqdn": fqdn, diff --git a/src/server/jobstate.rs b/src/server/jobstate.rs index 4b15fabc..cfd8be23 100644 --- a/src/server/jobstate.rs +++ b/src/server/jobstate.rs @@ -40,17 +40,16 @@ use std::path::{Path, PathBuf}; use anyhow::{bail, format_err, Error}; +use serde::{Deserialize, Serialize}; + use proxmox::tools::fs::{ create_path, file_read_optional_string, replace_file, CreateOptions, }; -use serde::{Deserialize, Serialize}; + +use pbs_systemd::time::{compute_next_event, parse_calendar_event}; use crate::{ backup::{open_backup_lockfile, BackupLockGuard}, - tools::systemd::time::{ - parse_calendar_event, - compute_next_event, - }, api2::types::JobScheduleStatus, server::{ UPID, diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs index 6b8c201a..4ec3ed93 100644 --- a/src/tape/drive/mod.rs +++ b/src/tape/drive/mod.rs @@ -607,7 +607,7 @@ pub struct DeviceLockGuard(std::fs::File); // Uses systemd escape_unit to compute a file name from `device_path`, the try // to lock `/var/lock/`. fn open_device_lock(device_path: &str) -> Result { - let lock_name = crate::tools::systemd::escape_unit(device_path, true); + let lock_name = pbs_systemd::escape_unit(device_path, true); let mut path = std::path::PathBuf::from(crate::tape::DRIVE_LOCK_DIR); path.push(lock_name); diff --git a/src/tape/inventory.rs b/src/tape/inventory.rs index e97f07f3..4de85d14 100644 --- a/src/tape/inventory.rs +++ b/src/tape/inventory.rs @@ -39,8 +39,9 @@ use proxmox::tools::{ }, }; +use pbs_systemd::time::compute_next_event; + use crate::{ - tools::systemd::time::compute_next_event, api2::types::{ MediaSetPolicy, RetentionPolicy, diff --git a/src/tape/media_pool.rs b/src/tape/media_pool.rs index c04a9cc0..50263529 100644 --- a/src/tape/media_pool.rs +++ b/src/tape/media_pool.rs @@ -15,6 +15,7 @@ use serde::{Deserialize, Serialize}; use proxmox::tools::Uuid; use pbs_api_types::Fingerprint; +use pbs_systemd::time::compute_next_event; use crate::{ backup::BackupLockGuard, @@ -25,7 +26,6 @@ use crate::{ RetentionPolicy, MediaPoolConfig, }, - tools::systemd::time::compute_next_event, tape::{ MediaId, MediaSet, diff --git a/src/tools/systemd/mod.rs b/src/tools/systemd/mod.rs index d0ae2b43..c6635022 100644 --- a/src/tools/systemd/mod.rs +++ b/src/tools/systemd/mod.rs @@ -1,7 +1,2 @@ -pub use pbs_systemd::reload_daemon; -pub use pbs_systemd::time; -pub use pbs_systemd::{disable_unit, enable_unit, reload_unit, start_unit, stop_unit}; -pub use pbs_systemd::{escape_unit, unescape_unit}; - pub mod config; pub mod types; diff --git a/src/tools/systemd/types.rs b/src/tools/systemd/types.rs index bec18d8f..eec6348f 100644 --- a/src/tools/systemd/types.rs +++ b/src/tools/systemd/types.rs @@ -248,10 +248,10 @@ pub enum ServiceStartup { pub const SYSTEMD_TIMESPAN_SCHEMA: Schema = StringSchema::new( "systemd time span") - .format(&ApiStringFormat::VerifyFn(super::time::verify_time_span)) + .format(&ApiStringFormat::VerifyFn(pbs_systemd::time::verify_time_span)) .schema(); pub const SYSTEMD_CALENDAR_EVENT_SCHEMA: Schema = StringSchema::new( "systemd calendar event") - .format(&ApiStringFormat::VerifyFn(super::time::verify_calendar_event)) + .format(&ApiStringFormat::VerifyFn(pbs_systemd::time::verify_calendar_event)) .schema();