add pbs-tools subcrate
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
@ -280,7 +280,7 @@ async fn list_backup_groups(param: Value) -> Result<Value, Error> {
|
||||
|
||||
let render_files = |_v: &Value, record: &Value| -> Result<String, Error> {
|
||||
let item: GroupListItem = serde_json::from_value(record.to_owned())?;
|
||||
Ok(tools::format::render_backup_file_list(&item.files))
|
||||
Ok(pbs_tools::format::render_backup_file_list(&item.files))
|
||||
};
|
||||
|
||||
let options = default_table_format_options()
|
||||
@ -1300,7 +1300,7 @@ async fn prune_async(mut param: Value) -> Result<Value, Error> {
|
||||
.sortby("backup-id", false)
|
||||
.sortby("backup-time", false)
|
||||
.column(ColumnConfig::new("backup-id").renderer(render_snapshot_path).header("snapshot"))
|
||||
.column(ColumnConfig::new("backup-time").renderer(tools::format::render_epoch).header("date"))
|
||||
.column(ColumnConfig::new("backup-time").renderer(pbs_tools::format::render_epoch).header("date"))
|
||||
.column(ColumnConfig::new("keep").renderer(render_prune_action).header("action"))
|
||||
;
|
||||
|
||||
|
@ -139,11 +139,12 @@ async fn task_list(param: Value) -> Result<Value, Error> {
|
||||
let mut data = result["data"].take();
|
||||
let return_type = &api2::node::tasks::API_METHOD_LIST_TASKS.returns;
|
||||
|
||||
use pbs_tools::format::{render_epoch, render_task_status};
|
||||
let options = default_table_format_options()
|
||||
.column(ColumnConfig::new("starttime").right_align(false).renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("endtime").right_align(false).renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("starttime").right_align(false).renderer(render_epoch))
|
||||
.column(ColumnConfig::new("endtime").right_align(false).renderer(render_epoch))
|
||||
.column(ColumnConfig::new("upid"))
|
||||
.column(ColumnConfig::new("status").renderer(tools::format::render_task_status));
|
||||
.column(ColumnConfig::new("status").renderer(render_task_status));
|
||||
|
||||
format_and_print_result_full(&mut data, return_type, &output_format, &options);
|
||||
|
||||
|
@ -14,12 +14,13 @@ use proxmox::{
|
||||
},
|
||||
};
|
||||
|
||||
use pbs_tools::format::{
|
||||
HumanByte,
|
||||
render_epoch,
|
||||
render_bytes_human_readable,
|
||||
};
|
||||
|
||||
use proxmox_backup::{
|
||||
tools::format::{
|
||||
HumanByte,
|
||||
render_epoch,
|
||||
render_bytes_human_readable,
|
||||
},
|
||||
client::{
|
||||
connect_to_localhost,
|
||||
view_task_result,
|
||||
|
@ -272,8 +272,8 @@ fn show_key(path: Option<String>, param: Value) -> Result<(), Error> {
|
||||
let options = proxmox::api::cli::default_table_format_options()
|
||||
.column(ColumnConfig::new("path"))
|
||||
.column(ColumnConfig::new("kdf"))
|
||||
.column(ColumnConfig::new("created").renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("modified").renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("created").renderer(pbs_tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("modified").renderer(pbs_tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("fingerprint"))
|
||||
.column(ColumnConfig::new("hint"));
|
||||
|
||||
|
@ -87,7 +87,7 @@ async fn list_snapshots(param: Value) -> Result<Value, Error> {
|
||||
for file in &item.files {
|
||||
filenames.push(file.filename.to_string());
|
||||
}
|
||||
Ok(tools::format::render_backup_file_list(&filenames[..]))
|
||||
Ok(pbs_tools::format::render_backup_file_list(&filenames[..]))
|
||||
};
|
||||
|
||||
let options = default_table_format_options()
|
||||
@ -95,7 +95,7 @@ async fn list_snapshots(param: Value) -> Result<Value, Error> {
|
||||
.sortby("backup-id", false)
|
||||
.sortby("backup-time", false)
|
||||
.column(ColumnConfig::new("backup-id").renderer(render_snapshot_path).header("snapshot"))
|
||||
.column(ColumnConfig::new("size").renderer(tools::format::render_bytes_human_readable))
|
||||
.column(ColumnConfig::new("size").renderer(pbs_tools::format::render_bytes_human_readable))
|
||||
.column(ColumnConfig::new("files").renderer(render_files))
|
||||
;
|
||||
|
||||
|
@ -66,11 +66,12 @@ async fn task_list(param: Value) -> Result<Value, Error> {
|
||||
|
||||
let return_type = &proxmox_backup::api2::node::tasks::API_METHOD_LIST_TASKS.returns;
|
||||
|
||||
use pbs_tools::format::{render_epoch, render_task_status};
|
||||
let options = default_table_format_options()
|
||||
.column(ColumnConfig::new("starttime").right_align(false).renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("endtime").right_align(false).renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("starttime").right_align(false).renderer(render_epoch))
|
||||
.column(ColumnConfig::new("endtime").right_align(false).renderer(render_epoch))
|
||||
.column(ColumnConfig::new("upid"))
|
||||
.column(ColumnConfig::new("status").renderer(tools::format::render_task_status));
|
||||
.column(ColumnConfig::new("status").renderer(render_task_status));
|
||||
|
||||
format_and_print_result_full(&mut data, return_type, &output_format, &options);
|
||||
|
||||
|
@ -6,7 +6,6 @@ use std::collections::HashMap;
|
||||
use proxmox::api::{api, cli::*, RpcEnvironment, ApiHandler};
|
||||
|
||||
use proxmox_backup::config;
|
||||
use proxmox_backup::tools;
|
||||
use proxmox_backup::api2;
|
||||
use proxmox_backup::api2::types::{ACL_PATH_SCHEMA, Authid, Userid};
|
||||
|
||||
@ -52,7 +51,7 @@ fn list_users(param: Value, rpcenv: &mut dyn RpcEnvironment) -> Result<Value, Er
|
||||
.column(ColumnConfig::new("userid"))
|
||||
.column(
|
||||
ColumnConfig::new("enable")
|
||||
.renderer(tools::format::render_bool_with_default_true)
|
||||
.renderer(pbs_tools::format::render_bool_with_default_true)
|
||||
)
|
||||
.column(
|
||||
ColumnConfig::new("expire")
|
||||
@ -96,7 +95,7 @@ fn list_tokens(param: Value, rpcenv: &mut dyn RpcEnvironment) -> Result<Value, E
|
||||
.column(ColumnConfig::new("tokenid"))
|
||||
.column(
|
||||
ColumnConfig::new("enable")
|
||||
.renderer(tools::format::render_bool_with_default_true)
|
||||
.renderer(pbs_tools::format::render_bool_with_default_true)
|
||||
)
|
||||
.column(
|
||||
ColumnConfig::new("expire")
|
||||
|
@ -234,7 +234,7 @@ pub async fn complete_server_file_name_do(param: &HashMap<String, String>) -> Ve
|
||||
pub fn complete_archive_name(arg: &str, param: &HashMap<String, String>) -> Vec<String> {
|
||||
complete_server_file_name(arg, param)
|
||||
.iter()
|
||||
.map(|v| tools::format::strip_server_file_extension(&v))
|
||||
.map(|v| pbs_tools::format::strip_server_file_extension(&v))
|
||||
.collect()
|
||||
}
|
||||
|
||||
@ -243,7 +243,7 @@ pub fn complete_pxar_archive_name(arg: &str, param: &HashMap<String, String>) ->
|
||||
.iter()
|
||||
.filter_map(|name| {
|
||||
if name.ends_with(".pxar.didx") {
|
||||
Some(tools::format::strip_server_file_extension(name))
|
||||
Some(pbs_tools::format::strip_server_file_extension(name))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
@ -256,7 +256,7 @@ pub fn complete_img_archive_name(arg: &str, param: &HashMap<String, String>) ->
|
||||
.iter()
|
||||
.filter_map(|name| {
|
||||
if name.ends_with(".img.fidx") {
|
||||
Some(tools::format::strip_server_file_extension(name))
|
||||
Some(pbs_tools::format::strip_server_file_extension(name))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
@ -1,4 +1,9 @@
|
||||
///! File-restore API running inside the restore VM
|
||||
use std::ffi::OsStr;
|
||||
use std::fs;
|
||||
use std::os::unix::ffi::OsStrExt;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use anyhow::{bail, Error};
|
||||
use futures::FutureExt;
|
||||
use hyper::http::request::Parts;
|
||||
@ -8,21 +13,18 @@ use pathpatterns::{MatchEntry, MatchPattern, MatchType, Pattern};
|
||||
use serde_json::Value;
|
||||
use tokio::sync::Semaphore;
|
||||
|
||||
use std::ffi::OsStr;
|
||||
use std::fs;
|
||||
use std::os::unix::ffi::OsStrExt;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use proxmox::api::{
|
||||
api, schema::*, ApiHandler, ApiMethod, ApiResponseFuture, Permission, Router, RpcEnvironment,
|
||||
SubdirMap,
|
||||
};
|
||||
use proxmox::{identity, list_subdirs_api_method, sortable};
|
||||
|
||||
use pbs_tools::fs::read_subdir;
|
||||
|
||||
use proxmox_backup::api2::types::*;
|
||||
use proxmox_backup::backup::DirEntryAttribute;
|
||||
use proxmox_backup::pxar::{create_archive, Flags, PxarCreateOptions, ENCODER_MAX_ENTRIES};
|
||||
use proxmox_backup::tools::{self, fs::read_subdir, zip::zip_directory};
|
||||
use proxmox_backup::tools::{self, zip::zip_directory};
|
||||
|
||||
use pxar::encoder::aio::TokioWriter;
|
||||
|
||||
|
@ -366,7 +366,7 @@ impl DiskState {
|
||||
|
||||
// create mapping for virtio drives and .fidx files (via serial description)
|
||||
// note: disks::DiskManager relies on udev, which we don't have
|
||||
for entry in proxmox_backup::tools::fs::scan_subdir(
|
||||
for entry in pbs_tools::fs::scan_subdir(
|
||||
libc::AT_FDCWD,
|
||||
"/sys/block",
|
||||
&BLOCKDEVICE_NAME_REGEX,
|
||||
@ -411,7 +411,7 @@ impl DiskState {
|
||||
}
|
||||
|
||||
let mut parts = Vec::new();
|
||||
for entry in proxmox_backup::tools::fs::scan_subdir(
|
||||
for entry in pbs_tools::fs::scan_subdir(
|
||||
libc::AT_FDCWD,
|
||||
sys_path,
|
||||
&VIRTIO_PART_REGEX,
|
||||
|
@ -13,7 +13,6 @@ use proxmox::{
|
||||
|
||||
use proxmox_backup::{
|
||||
tools::{
|
||||
self,
|
||||
paperkey::{
|
||||
PaperkeyFormat,
|
||||
generate_paper_key,
|
||||
@ -144,8 +143,8 @@ fn show_key(
|
||||
|
||||
let options = proxmox::api::cli::default_table_format_options()
|
||||
.column(ColumnConfig::new("kdf"))
|
||||
.column(ColumnConfig::new("created").renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("modified").renderer(tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("created").renderer(pbs_tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("modified").renderer(pbs_tools::format::render_epoch))
|
||||
.column(ColumnConfig::new("fingerprint"))
|
||||
.column(ColumnConfig::new("hint"));
|
||||
|
||||
|
Reference in New Issue
Block a user