move worker_task.rs into proxmox-rest-server crate
Also moved pbs-datastore/src/task.rs to pbs-tools, which now depends on 'log'.
This commit is contained in:
@ -54,7 +54,7 @@ use pbs_tools::blocking::WrappedReaderStream;
|
||||
use pbs_tools::stream::{AsyncReaderStream, AsyncChannelWriter};
|
||||
use pbs_tools::json::{required_integer_param, required_string_param};
|
||||
use pbs_config::CachedUserInfo;
|
||||
use proxmox_rest_server::formatter;
|
||||
use proxmox_rest_server::{WorkerTask, formatter};
|
||||
|
||||
use crate::api2::node::rrd::create_value_from_rrd;
|
||||
use crate::backup::{
|
||||
@ -62,7 +62,7 @@ use crate::backup::{
|
||||
DataStore, LocalChunkReader,
|
||||
};
|
||||
|
||||
use crate::server::{jobstate::Job, WorkerTask};
|
||||
use crate::server::jobstate::Job;
|
||||
|
||||
|
||||
const GROUP_NOTES_FILE_NAME: &str = "notes";
|
||||
|
@ -15,10 +15,10 @@ use pbs_datastore::backup_info::{BackupDir, BackupInfo};
|
||||
use pbs_datastore::dynamic_index::DynamicIndexWriter;
|
||||
use pbs_datastore::fixed_index::FixedIndexWriter;
|
||||
use pbs_api_types::Authid;
|
||||
use proxmox_rest_server::formatter::*;
|
||||
use proxmox_rest_server::{WorkerTask, formatter::*};
|
||||
|
||||
use crate::backup::{verify_backup_dir_with_lock, DataStore};
|
||||
use crate::server::WorkerTask;
|
||||
|
||||
use hyper::{Body, Response};
|
||||
|
||||
#[derive(Copy, Clone, Serialize)]
|
||||
|
@ -23,8 +23,9 @@ use pbs_datastore::PROXMOX_BACKUP_PROTOCOL_ID_V1;
|
||||
use pbs_datastore::backup_info::{BackupDir, BackupGroup, BackupInfo};
|
||||
use pbs_datastore::index::IndexFile;
|
||||
use pbs_datastore::manifest::{archive_type, ArchiveType};
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::server::{WorkerTask, H2Service};
|
||||
use crate::server::H2Service;
|
||||
use crate::backup::DataStore;
|
||||
use pbs_config::CachedUserInfo;
|
||||
|
||||
|
@ -24,7 +24,7 @@ use crate::api2::types::{AcmeAccountName, AcmeChallengeSchema, KnownAcmeDirector
|
||||
use crate::config::acme::plugin::{
|
||||
self, DnsPlugin, DnsPluginCore, DnsPluginCoreUpdater, PLUGIN_ID_SCHEMA,
|
||||
};
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
pub(crate) const ROUTER: Router = Router::new()
|
||||
.get(&list_subdirs_api_method!(SUBDIRS))
|
||||
|
@ -9,7 +9,6 @@ use proxmox::api::section_config::SectionConfigData;
|
||||
use proxmox::api::schema::{ApiType, parse_property_string};
|
||||
|
||||
use pbs_datastore::chunk_store::ChunkStore;
|
||||
use pbs_datastore::task::TaskState;
|
||||
use pbs_config::BackupLockGuard;
|
||||
use pbs_api_types::{
|
||||
Authid, DatastoreNotify,
|
||||
@ -17,6 +16,7 @@ use pbs_api_types::{
|
||||
PRIV_DATASTORE_ALLOCATE, PRIV_DATASTORE_AUDIT, PRIV_DATASTORE_MODIFY,
|
||||
DataStoreConfig, DataStoreConfigUpdater,
|
||||
};
|
||||
use pbs_tools::task::TaskState;
|
||||
|
||||
use crate::api2::config::sync::delete_sync_job;
|
||||
use crate::api2::config::verify::delete_verification_job;
|
||||
@ -26,8 +26,9 @@ use crate::api2::admin::{
|
||||
verify::list_verification_jobs,
|
||||
};
|
||||
use pbs_config::CachedUserInfo;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::server::{jobstate, WorkerTask};
|
||||
use crate::server::jobstate;
|
||||
|
||||
#[api(
|
||||
input: {
|
||||
|
@ -19,7 +19,7 @@ use pbs_api_types::{
|
||||
};
|
||||
|
||||
use crate::config::node;
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
use crate::tools::{
|
||||
apt,
|
||||
pbs_simple_http,
|
||||
|
@ -18,7 +18,7 @@ use pbs_tools::cert;
|
||||
use crate::acme::AcmeClient;
|
||||
use crate::api2::types::AcmeDomain;
|
||||
use crate::config::node::NodeConfig;
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
pub const ROUTER: Router = Router::new()
|
||||
.get(&list_subdirs_api_method!(SUBDIRS))
|
||||
|
@ -17,7 +17,7 @@ use crate::tools::disks::{
|
||||
};
|
||||
use crate::tools::systemd::{self, types::*};
|
||||
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
const BASE_MOUNT_DIR: &str = "/mnt/datastore/";
|
||||
|
||||
|
@ -15,7 +15,7 @@ use crate::tools::disks::{
|
||||
DiskUsageInfo, DiskUsageType, DiskManage, SmartData,
|
||||
get_disks, get_smart_data, get_disk_usage_info, inititialize_gpt_disk,
|
||||
};
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
pub mod directory;
|
||||
pub mod zfs;
|
||||
|
@ -19,7 +19,7 @@ use crate::tools::disks::{
|
||||
DiskUsageType,
|
||||
};
|
||||
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
|
||||
#[api(
|
||||
|
@ -24,7 +24,7 @@ use pbs_api_types::{Authid, NODE_SCHEMA, PRIV_SYS_CONSOLE};
|
||||
use pbs_tools::auth::private_auth_key;
|
||||
use pbs_tools::ticket::{self, Empty, Ticket};
|
||||
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
use crate::tools;
|
||||
|
||||
pub mod apt;
|
||||
|
@ -13,7 +13,7 @@ use pbs_api_types::{
|
||||
};
|
||||
use pbs_config::network::{self, NetworkConfig};
|
||||
|
||||
use crate::server::{WorkerTask};
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
fn split_interface_list(list: &str) -> Result<Vec<String>, Error> {
|
||||
let value = parse_property_string(&list, &NETWORK_INTERFACE_ARRAY_SCHEMA)?;
|
||||
|
@ -9,7 +9,7 @@ use proxmox::api::router::SubdirMap;
|
||||
|
||||
use pbs_api_types::{Authid, NODE_SCHEMA, SERVICE_ID_SCHEMA, PRIV_SYS_AUDIT, PRIV_SYS_MODIFY};
|
||||
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
static SERVICE_NAME_LIST: [&str; 7] = [
|
||||
"proxmox-backup",
|
||||
|
@ -16,7 +16,8 @@ use pbs_api_types::{
|
||||
};
|
||||
|
||||
use crate::api2::pull::check_pull_privs;
|
||||
use crate::server::{self, upid_log_path, upid_read_status, TaskState, TaskListInfoIterator};
|
||||
|
||||
use proxmox_rest_server::{upid_log_path, upid_read_status, TaskState, TaskListInfoIterator};
|
||||
use pbs_config::CachedUserInfo;
|
||||
|
||||
// matches respective job execution privileges
|
||||
@ -125,6 +126,25 @@ pub fn tasktype(state: &TaskState) -> TaskStateType {
|
||||
}
|
||||
}
|
||||
|
||||
fn into_task_list_item(info: proxmox_rest_server::TaskListInfo) -> pbs_api_types::TaskListItem {
|
||||
let (endtime, status) = info
|
||||
.state
|
||||
.map_or_else(|| (None, None), |a| (Some(a.endtime()), Some(a.to_string())));
|
||||
|
||||
pbs_api_types::TaskListItem {
|
||||
upid: info.upid_str,
|
||||
node: "localhost".to_string(),
|
||||
pid: info.upid.pid as i64,
|
||||
pstart: info.upid.pstart,
|
||||
starttime: info.upid.starttime,
|
||||
worker_type: info.upid.worker_type,
|
||||
worker_id: info.upid.worker_id,
|
||||
user: info.upid.auth_id,
|
||||
endtime,
|
||||
status,
|
||||
}
|
||||
}
|
||||
|
||||
#[api(
|
||||
input: {
|
||||
properties: {
|
||||
@ -217,7 +237,7 @@ async fn get_task_status(
|
||||
result["tokenid"] = Value::from(task_auth_id.tokenname().unwrap().as_str());
|
||||
}
|
||||
|
||||
if crate::server::worker_is_active(&upid).await? {
|
||||
if proxmox_rest_server::worker_is_active(&upid).await? {
|
||||
result["status"] = Value::from("running");
|
||||
} else {
|
||||
let exitstatus = upid_read_status(&upid).unwrap_or(TaskState::Unknown { endtime: 0 });
|
||||
@ -314,7 +334,7 @@ async fn read_task_log(
|
||||
rpcenv["total"] = Value::from(count);
|
||||
|
||||
if test_status {
|
||||
let active = crate::server::worker_is_active(&upid).await?;
|
||||
let active = proxmox_rest_server::worker_is_active(&upid).await?;
|
||||
rpcenv["active"] = Value::from(active);
|
||||
}
|
||||
|
||||
@ -354,7 +374,7 @@ fn stop_task(
|
||||
user_info.check_privs(&auth_id, &["system", "tasks"], PRIV_SYS_MODIFY, false)?;
|
||||
}
|
||||
|
||||
server::abort_worker_async(upid);
|
||||
proxmox_rest_server::abort_worker_async(upid);
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
@ -502,7 +522,7 @@ pub fn list_tasks(
|
||||
|
||||
match (&info.state, &statusfilter) {
|
||||
(Some(_), _) if running => continue,
|
||||
(Some(crate::server::TaskState::OK { .. }), _) if errors => continue,
|
||||
(Some(TaskState::OK { .. }), _) if errors => continue,
|
||||
(Some(state), Some(filters)) => {
|
||||
if !filters.contains(&tasktype(state)) {
|
||||
continue;
|
||||
@ -517,7 +537,7 @@ pub fn list_tasks(
|
||||
continue;
|
||||
}
|
||||
|
||||
result.push(info.into());
|
||||
result.push(into_task_list_item(info));
|
||||
|
||||
if result.len() >= limit {
|
||||
break;
|
||||
|
@ -13,8 +13,9 @@ use pbs_api_types::{
|
||||
DATASTORE_SCHEMA, REMOTE_ID_SCHEMA, REMOVE_VANISHED_BACKUPS_SCHEMA,
|
||||
PRIV_DATASTORE_BACKUP, PRIV_DATASTORE_PRUNE, PRIV_REMOTE_READ,
|
||||
};
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::server::{WorkerTask, jobstate::Job, pull::pull_store};
|
||||
use crate::server::{jobstate::Job, pull::pull_store};
|
||||
use crate::backup::DataStore;
|
||||
use pbs_config::CachedUserInfo;
|
||||
|
||||
|
@ -10,7 +10,7 @@ use pbs_api_types::Authid;
|
||||
use proxmox_rest_server::formatter::*;
|
||||
|
||||
use crate::backup::DataStore;
|
||||
use crate::server::WorkerTask;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
//use proxmox::tools;
|
||||
|
||||
|
@ -39,12 +39,12 @@ use pbs_datastore::backup_info::BackupDir;
|
||||
use pbs_datastore::index::IndexFile;
|
||||
use pbs_datastore::manifest::{archive_type, ArchiveType};
|
||||
use pbs_config::CachedUserInfo;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::{
|
||||
api2::helpers,
|
||||
backup::DataStore,
|
||||
server::{
|
||||
WorkerTask,
|
||||
H2Service,
|
||||
},
|
||||
};
|
||||
|
@ -20,10 +20,11 @@ use pbs_api_types::{
|
||||
UPID_SCHEMA, JOB_ID_SCHEMA, PRIV_DATASTORE_READ, PRIV_TAPE_AUDIT, PRIV_TAPE_WRITE,
|
||||
};
|
||||
|
||||
use pbs_datastore::{task_log, task_warn, StoreProgress};
|
||||
use pbs_datastore::StoreProgress;
|
||||
use pbs_datastore::backup_info::{BackupDir, BackupInfo};
|
||||
use pbs_datastore::task::TaskState;
|
||||
use pbs_tools::{task_log, task_warn, task::TaskState};
|
||||
use pbs_config::CachedUserInfo;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::{
|
||||
server::{
|
||||
@ -36,7 +37,6 @@ use crate::{
|
||||
},
|
||||
},
|
||||
backup::{DataStore, SnapshotReader},
|
||||
server::WorkerTask,
|
||||
tape::{
|
||||
TAPE_STATUS_DIR,
|
||||
Inventory,
|
||||
|
@ -28,7 +28,6 @@ use pbs_api_types::{
|
||||
LtoDriveAndMediaStatus, Lp17VolumeStatistics,
|
||||
};
|
||||
|
||||
use pbs_datastore::task_log;
|
||||
use pbs_api_types::{PRIV_TAPE_AUDIT, PRIV_TAPE_READ, PRIV_TAPE_WRITE};
|
||||
use pbs_config::CachedUserInfo;
|
||||
use pbs_tape::{
|
||||
@ -36,13 +35,14 @@ use pbs_tape::{
|
||||
sg_tape::tape_alert_flags_critical,
|
||||
linux_list_drives::{lto_tape_device_list, lookup_device_identification, open_lto_tape_device},
|
||||
};
|
||||
use pbs_tools::task_log;
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::{
|
||||
api2::tape::restore::{
|
||||
fast_catalog_restore,
|
||||
restore_media,
|
||||
},
|
||||
server::WorkerTask,
|
||||
tape::{
|
||||
TAPE_STATUS_DIR,
|
||||
Inventory,
|
||||
|
@ -34,26 +34,24 @@ use pbs_api_types::{
|
||||
UPID_SCHEMA, TAPE_RESTORE_SNAPSHOT_SCHEMA,
|
||||
PRIV_DATASTORE_BACKUP, PRIV_DATASTORE_MODIFY, PRIV_TAPE_READ,
|
||||
};
|
||||
use pbs_datastore::{task_log, task_warn, DataBlob};
|
||||
use pbs_datastore::DataBlob;
|
||||
use pbs_datastore::backup_info::BackupDir;
|
||||
use pbs_datastore::dynamic_index::DynamicIndexReader;
|
||||
use pbs_datastore::fixed_index::FixedIndexReader;
|
||||
use pbs_datastore::index::IndexFile;
|
||||
use pbs_datastore::manifest::{archive_type, ArchiveType, BackupManifest, MANIFEST_BLOB_NAME};
|
||||
use pbs_datastore::task::TaskState;
|
||||
use pbs_config::CachedUserInfo;
|
||||
use pbs_tape::{
|
||||
TapeRead, BlockReadError, MediaContentHeader,
|
||||
PROXMOX_BACKUP_CONTENT_HEADER_MAGIC_1_0,
|
||||
};
|
||||
use pbs_tools::{task_log, task_warn, task::TaskState};
|
||||
use proxmox_rest_server::WorkerTask;
|
||||
|
||||
use crate::{
|
||||
tools::ParallelHandler,
|
||||
backup::DataStore,
|
||||
server::{
|
||||
lookup_user_email,
|
||||
WorkerTask,
|
||||
},
|
||||
server::lookup_user_email,
|
||||
tape::{
|
||||
TAPE_STATUS_DIR,
|
||||
MediaId,
|
||||
|
Reference in New Issue
Block a user