update to proxmox-sys 0.2 crate

- imported pbs-api-types/src/common_regex.rs from old proxmox crate
- use hex crate to generate/parse hex digest
- remove all reference to proxmox crate (use proxmox-sys and
  proxmox-serde instead)

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
This commit is contained in:
Dietmar Maurer
2021-11-23 17:57:00 +01:00
parent bd00ff10e4
commit 25877d05ac
201 changed files with 627 additions and 1535 deletions

View File

@ -1,6 +1,7 @@
//! Manage Access Control Lists
use anyhow::{bail, Error};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -126,7 +127,7 @@ pub fn read_acl(
extract_acl_node_data(&tree.root, "", &mut list, exact, &auth_id_filter);
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -210,7 +211,7 @@ pub fn update_acl(
let (mut tree, expected_digest) = pbs_config::acl::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -89,7 +89,7 @@ fn list_domains(mut rpcenv: &mut dyn RpcEnvironment) -> Result<Vec<BasicRealmInf
list.push(serde_json::from_value(entry)?);
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}

View File

@ -6,7 +6,7 @@ use serde_json::{json, Value};
use std::collections::HashMap;
use std::collections::HashSet;
use proxmox::{identity, sortable};
use proxmox_sys::{identity, sortable};
use proxmox_router::{
http_err, list_subdirs_api_method, Router, RpcEnvironment, SubdirMap, Permission,
};

View File

@ -2,10 +2,9 @@
use std::convert::TryFrom;
use anyhow::{bail, format_err, Error};
use serde_json::{json, Value};
use proxmox::{identity, sortable};
use proxmox_sys::{identity, sortable};
use proxmox_router::{
http_err, list_subdirs_api_method, Router, RpcEnvironment, SubdirMap, Permission,
};

View File

@ -4,6 +4,7 @@ use anyhow::{bail, format_err, Error};
use serde::{Serialize, Deserialize};
use serde_json::{json, Value};
use std::collections::HashMap;
use hex::FromHex;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, SubdirMap, Permission};
use proxmox_schema::api;
@ -80,7 +81,7 @@ pub fn list_users(
let list:Vec<User> = config.convert_to_typed_array("user")?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
let iter = list.into_iter().filter(filter_by_privs);
let list = if include_tokens {
@ -187,7 +188,7 @@ pub fn create_user(
pub fn read_user(userid: Userid, mut rpcenv: &mut dyn RpcEnvironment) -> Result<User, Error> {
let (config, digest) = pbs_config::user::config()?;
let user = config.lookup("user", userid.as_str())?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(user)
}
@ -258,7 +259,7 @@ pub fn update_user(
let (mut config, expected_digest) = pbs_config::user::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -351,7 +352,7 @@ pub fn delete_user(userid: Userid, digest: Option<String>) -> Result<(), Error>
let (mut config, expected_digest) = pbs_config::user::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -421,7 +422,7 @@ pub fn read_token(
let tokenid = Authid::from((userid, Some(token_name)));
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
config.lookup("token", &tokenid.to_string())
}
@ -488,7 +489,7 @@ pub fn generate_token(
let (mut config, expected_digest) = pbs_config::user::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -569,7 +570,7 @@ pub fn update_token(
let (mut config, expected_digest) = pbs_config::user::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -637,7 +638,7 @@ pub fn delete_token(
let (mut config, expected_digest) = pbs_config::user::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -703,7 +704,7 @@ pub fn list_tokens(
let list:Vec<ApiToken> = config.convert_to_typed_array("token")?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
let filter_by_owner = |token: ApiToken| {
if token.tokenid.is_token() && token.tokenid.user() == &userid {

View File

@ -12,8 +12,8 @@ use hyper::{header, Body, Response, StatusCode};
use serde_json::{json, Value};
use tokio_stream::wrappers::ReceiverStream;
use proxmox::{identity, sortable};
use proxmox::tools::fs::{
use proxmox_sys::{identity, sortable};
use proxmox_sys::fs::{
file_read_firstline, file_read_optional_string, replace_file, CreateOptions,
};
use proxmox_router::{

View File

@ -3,7 +3,7 @@
use anyhow::{bail, format_err, Error};
use serde_json::Value;
use proxmox::sortable;
use proxmox_sys::sortable;
use proxmox_router::{
list_subdirs_api_method, ApiMethod, Router, RpcEnvironment, RpcEnvironmentType, SubdirMap,
Permission,
@ -87,7 +87,7 @@ pub fn list_sync_jobs(
list.push(SyncJobStatus { config: job, status });
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}

View File

@ -66,7 +66,7 @@ pub fn show_current_traffic(
}
// also return the configuration digest
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}

View File

@ -3,7 +3,7 @@
use anyhow::{format_err, Error};
use serde_json::Value;
use proxmox::sortable;
use proxmox_sys::sortable;
use proxmox_router::{
list_subdirs_api_method, ApiMethod, Router, RpcEnvironment, RpcEnvironmentType, SubdirMap,
Permission,
@ -87,7 +87,7 @@ pub fn list_verification_jobs(
list.push(VerificationJobStatus { config: job, status });
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}

View File

@ -6,8 +6,7 @@ use nix::dir::Dir;
use ::serde::{Serialize};
use serde_json::{json, Value};
use proxmox::tools::digest_to_hex;
use proxmox::tools::fs::{replace_file, CreateOptions};
use proxmox_sys::fs::{replace_file, CreateOptions};
use proxmox_router::{RpcEnvironment, RpcEnvironmentType};
use pbs_datastore::{DataStore, DataBlob};
@ -331,8 +330,8 @@ impl BackupEnvironment {
fn log_upload_stat(&self, archive_name: &str, csum: &[u8; 32], uuid: &[u8; 16], size: u64, chunk_count: u64, upload_stat: &UploadStatistic) {
self.log(format!("Upload statistics for '{}'", archive_name));
self.log(format!("UUID: {}", digest_to_hex(uuid)));
self.log(format!("Checksum: {}", digest_to_hex(csum)));
self.log(format!("UUID: {}", hex::encode(uuid)));
self.log(format!("Checksum: {}", hex::encode(csum)));
self.log(format!("Size: {}", size));
self.log(format!("Chunk count: {}", chunk_count));

View File

@ -6,8 +6,9 @@ use hyper::header::{HeaderValue, UPGRADE};
use hyper::http::request::Parts;
use hyper::{Body, Response, Request, StatusCode};
use serde_json::{json, Value};
use hex::FromHex;
use proxmox::{sortable, identity};
use proxmox_sys::{sortable, identity};
use proxmox_router::list_subdirs_api_method;
use proxmox_router::{
ApiResponseFuture, ApiHandler, ApiMethod, Router, RpcEnvironment, SubdirMap, Permission,
@ -19,7 +20,7 @@ use pbs_api_types::{
BACKUP_ID_SCHEMA, BACKUP_TIME_SCHEMA, BACKUP_TYPE_SCHEMA, DATASTORE_SCHEMA,
CHUNK_DIGEST_SCHEMA, PRIV_DATASTORE_BACKUP, BACKUP_ARCHIVE_NAME_SCHEMA,
};
use pbs_tools::fs::lock_dir_noblock_shared;
use proxmox_sys::fs::lock_dir_noblock_shared;
use pbs_tools::json::{required_array_param, required_integer_param, required_string_param};
use pbs_config::CachedUserInfo;
use pbs_datastore::{DataStore, PROXMOX_BACKUP_PROTOCOL_ID_V1};
@ -433,7 +434,7 @@ fn create_fixed_index(
};
let (old_csum, _) = index.compute_csum();
let old_csum = proxmox::tools::digest_to_hex(&old_csum);
let old_csum = hex::encode(&old_csum);
if old_csum != csum {
bail!("expected csum ({}) doesn't match last backup's ({}), cannot do incremental backup",
csum, old_csum);
@ -508,7 +509,7 @@ fn dynamic_append (
for (i, item) in digest_list.iter().enumerate() {
let digest_str = item.as_str().unwrap();
let digest = proxmox::tools::hex_to_digest(digest_str)?;
let digest = <[u8; 32]>::from_hex(digest_str)?;
let offset = offset_list[i].as_u64().unwrap();
let size = env.lookup_chunk(&digest).ok_or_else(|| format_err!("no such chunk {}", digest_str))?;
@ -573,7 +574,7 @@ fn fixed_append (
for (i, item) in digest_list.iter().enumerate() {
let digest_str = item.as_str().unwrap();
let digest = proxmox::tools::hex_to_digest(digest_str)?;
let digest = <[u8; 32]>::from_hex(digest_str)?;
let offset = offset_list[i].as_u64().unwrap();
let size = env.lookup_chunk(&digest).ok_or_else(|| format_err!("no such chunk {}", digest_str))?;
@ -628,7 +629,7 @@ fn close_dynamic_index (
let chunk_count = required_integer_param(&param, "chunk-count")? as u64;
let size = required_integer_param(&param, "size")? as u64;
let csum_str = required_string_param(&param, "csum")?;
let csum = proxmox::tools::hex_to_digest(csum_str)?;
let csum = <[u8; 32]>::from_hex(csum_str)?;
let env: &BackupEnvironment = rpcenv.as_ref();
@ -682,7 +683,7 @@ fn close_fixed_index (
let chunk_count = required_integer_param(&param, "chunk-count")? as u64;
let size = required_integer_param(&param, "size")? as u64;
let csum_str = required_string_param(&param, "csum")?;
let csum = proxmox::tools::hex_to_digest(csum_str)?;
let csum = <[u8; 32]>::from_hex(csum_str)?;
let env: &BackupEnvironment = rpcenv.as_ref();

View File

@ -7,8 +7,9 @@ use futures::*;
use hyper::Body;
use hyper::http::request::Parts;
use serde_json::{json, Value};
use hex::FromHex;
use proxmox::{sortable, identity};
use proxmox_sys::{sortable, identity};
use proxmox_router::{ApiResponseFuture, ApiHandler, ApiMethod, RpcEnvironment};
use proxmox_schema::*;
@ -127,7 +128,7 @@ fn upload_fixed_chunk(
let encoded_size = required_integer_param(&param, "encoded-size")? as u32;
let digest_str = required_string_param(&param, "digest")?;
let digest = proxmox::tools::hex_to_digest(digest_str)?;
let digest = <[u8; 32]>::from_hex(digest_str)?;
let env: &BackupEnvironment = rpcenv.as_ref();
@ -135,7 +136,7 @@ fn upload_fixed_chunk(
UploadChunk::new(req_body, env.datastore.clone(), digest, size, encoded_size).await?;
env.register_fixed_chunk(wid, digest, size, compressed_size, is_duplicate)?;
let digest_str = proxmox::tools::digest_to_hex(&digest);
let digest_str = hex::encode(&digest);
env.debug(format!("upload_chunk done: {} bytes, {}", size, digest_str));
let result = Ok(json!(digest_str));
@ -185,7 +186,7 @@ fn upload_dynamic_chunk(
let encoded_size = required_integer_param(&param, "encoded-size")? as u32;
let digest_str = required_string_param(&param, "digest")?;
let digest = proxmox::tools::hex_to_digest(digest_str)?;
let digest = <[u8; 32]>::from_hex(digest_str)?;
let env: &BackupEnvironment = rpcenv.as_ref();
@ -194,7 +195,7 @@ fn upload_dynamic_chunk(
.await?;
env.register_dynamic_chunk(wid, digest, size, compressed_size, is_duplicate)?;
let digest_str = proxmox::tools::digest_to_hex(&digest);
let digest_str = hex::encode(&digest);
env.debug(format!("upload_chunk done: {} bytes, {}", size, digest_str));
let result = Ok(json!(digest_str));

View File

@ -1,6 +1,6 @@
use proxmox_router::{Router, SubdirMap};
use proxmox_router::list_subdirs_api_method;
use proxmox::{identity, sortable};
use proxmox_sys::{identity, sortable};
pub mod tfa;
pub mod openid;

View File

@ -3,6 +3,7 @@
use anyhow::{bail, Error};
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -37,7 +38,7 @@ pub fn list_openid_realms(
let list = config.convert_to_typed_array("openid")?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -106,7 +107,7 @@ pub fn delete_openid_realm(
let (mut domains, expected_digest) = domains::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -142,7 +143,7 @@ pub fn read_openid_realm(
let config = domains.lookup("openid", &realm)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(config)
}
@ -211,7 +212,7 @@ pub fn update_openid_realm(
let (mut domains, expected_digest) = domains::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -2,6 +2,7 @@
//! If we add more, it should be moved into a sub module.
use anyhow::Error;
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission, SubdirMap};
use proxmox_schema::api;
@ -42,7 +43,7 @@ pub fn get_webauthn_config(
Some(c) => c,
None => return Ok(None),
};
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(Some(config))
}
@ -72,7 +73,7 @@ pub fn update_webauthn_config(
if let Some(wa) = &mut tfa.webauthn {
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(
&digest,
&crate::config::tfa::webauthn_config_digest(&wa)?,

View File

@ -8,6 +8,7 @@ use anyhow::{bail, format_err, Error};
use lazy_static::lazy_static;
use serde::{Deserialize, Serialize};
use serde_json::{json, Value};
use hex::FromHex;
use proxmox_router::{
http_bail, list_subdirs_api_method, Permission, Router, RpcEnvironment, SubdirMap,
@ -520,7 +521,7 @@ fn modify_cfg_for_api(id: &str, ty: &str, data: &Value) -> PluginConfig {
/// List ACME challenge plugins.
pub fn list_plugins(mut rpcenv: &mut dyn RpcEnvironment) -> Result<Vec<PluginConfig>, Error> {
let (plugins, digest) = plugin::config()?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(plugins
.iter()
.map(|(id, (ty, data))| modify_cfg_for_api(&id, &ty, data))
@ -542,7 +543,7 @@ pub fn list_plugins(mut rpcenv: &mut dyn RpcEnvironment) -> Result<Vec<PluginCon
/// List ACME challenge plugins.
pub fn get_plugin(id: String, mut rpcenv: &mut dyn RpcEnvironment) -> Result<PluginConfig, Error> {
let (plugins, digest) = plugin::config()?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
match plugins.get(&id) {
Some((ty, data)) => Ok(modify_cfg_for_api(&id, &ty, &data)),
@ -695,7 +696,7 @@ pub fn update_plugin(
let (mut plugins, expected_digest) = plugin::config()?;
if let Some(digest) = digest {
let digest = proxmox::tools::hex_to_digest(&digest)?;
let digest = <[u8; 32]>::from_hex(&digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,6 +1,7 @@
use anyhow::{bail, Error};
use ::serde::{Deserialize, Serialize};
use serde_json::Value;
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::{api, parse_property_string};
@ -83,7 +84,7 @@ pub fn get_config(
let data: ScsiTapeChanger = config.lookup("changer", &name)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(data)
}
@ -124,7 +125,7 @@ pub fn list_changers(
})
.collect();
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -181,7 +182,7 @@ pub fn update_changer(
let (mut config, expected_digest) = pbs_config::drive::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -3,11 +3,12 @@ use std::path::PathBuf;
use anyhow::{bail, Error};
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, RpcEnvironmentType, Permission};
use proxmox_schema::{api, ApiType, parse_property_string};
use proxmox_section_config::SectionConfigData;
use proxmox_sys::worker_task_context::WorkerTaskContext;
use proxmox_sys::WorkerTaskContext;
use pbs_datastore::chunk_store::ChunkStore;
use pbs_config::BackupLockGuard;
@ -55,7 +56,7 @@ pub fn list_datastores(
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
let user_info = CachedUserInfo::new()?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
let list:Vec<DataStoreConfig> = config.convert_to_typed_array("datastore")?;
let filter_by_privs = |store: &DataStoreConfig| {
@ -148,7 +149,7 @@ pub fn read_datastore(
let (config, digest) = pbs_config::datastore::config()?;
let store_config = config.lookup("datastore", &name)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(store_config)
}
@ -228,7 +229,7 @@ pub fn update_datastore(
let (mut config, expected_digest) = pbs_config::datastore::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -347,7 +348,7 @@ pub async fn delete_datastore(
let (mut config, expected_digest) = pbs_config::datastore::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,6 +1,7 @@
use anyhow::{bail, Error};
use ::serde::{Deserialize, Serialize};
use serde_json::Value;
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -82,7 +83,7 @@ pub fn get_config(
let data: LtoTapeDrive = config.lookup("lto", &name)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(data)
}
@ -123,7 +124,7 @@ pub fn list_drives(
})
.collect();
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(drive_list)
}
@ -183,7 +184,7 @@ pub fn update_drive(
let (mut config, expected_digest) = pbs_config::drive::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -77,7 +77,7 @@ pub fn list_pools(
})
.collect();
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}

View File

@ -1,9 +1,10 @@
use anyhow::{bail, format_err, Error};
use proxmox::sortable;
use proxmox_sys::sortable;
use proxmox_router::SubdirMap;
use proxmox_router::list_subdirs_api_method;
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{http_err, ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -57,7 +58,7 @@ pub fn list_remotes(
})
.collect();
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -128,7 +129,7 @@ pub fn read_remote(
let (config, digest) = pbs_config::remote::config()?;
let mut data: Remote = config.lookup("remote", &name)?;
data.password = "".to_string(); // do not return password in api
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(data)
}
@ -193,7 +194,7 @@ pub fn update_remote(
let (mut config, expected_digest) = pbs_config::remote::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -265,7 +266,7 @@ pub fn delete_remote(name: String, digest: Option<String>) -> Result<(), Error>
let (mut config, expected_digest) = pbs_config::remote::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,6 +1,7 @@
use anyhow::{bail, Error};
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -91,7 +92,7 @@ pub fn list_sync_jobs(
let list = config.convert_to_typed_array("sync")?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
let list = list
.into_iter()
@ -173,7 +174,7 @@ pub fn read_sync_job(
bail!("permission check failed");
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(sync_job)
}
@ -251,7 +252,7 @@ pub fn update_sync_job(
let (mut config, expected_digest) = sync::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -355,7 +356,7 @@ pub fn delete_sync_job(
let (mut config, expected_digest) = sync::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,6 +1,7 @@
use anyhow::{bail, Error};
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -47,7 +48,7 @@ pub fn list_tape_backup_jobs(
})
.collect();
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -111,7 +112,7 @@ pub fn read_tape_backup_job(
let job = config.lookup("backup", &id)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(job)
}
@ -180,7 +181,7 @@ pub fn update_tape_backup_job(
let mut data: TapeBackupJobConfig = config.lookup("backup", &id)?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -259,7 +260,7 @@ pub fn delete_tape_backup_job(
let (mut config, expected_digest) = pbs_config::tape_job::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,5 +1,6 @@
use anyhow::{bail, Error};
use serde_json::Value;
use hex::FromHex;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -50,7 +51,7 @@ pub fn list_keys(
list.push(item.into());
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -109,7 +110,7 @@ pub fn change_passphrase(
let (mut config_map, expected_digest) = load_key_configs()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -245,7 +246,7 @@ pub fn delete_key(
let (mut key_map, _) = load_keys()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,6 +1,7 @@
use anyhow::{bail, Error};
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -34,7 +35,7 @@ pub fn list_traffic_controls(
let list: Vec<TrafficControlRule> = config.convert_to_typed_array("rule")?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -92,7 +93,7 @@ pub fn read_traffic_control(
) -> Result<TrafficControlRule, Error> {
let (config, digest) = pbs_config::traffic_control::config()?;
let data: TrafficControlRule = config.lookup("rule", &name)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(data)
}
@ -159,7 +160,7 @@ pub fn update_traffic_control(
let (mut config, expected_digest) = pbs_config::traffic_control::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -238,7 +239,7 @@ pub fn delete_traffic_control(name: String, digest: Option<String>) -> Result<()
let (mut config, expected_digest) = pbs_config::traffic_control::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -1,6 +1,7 @@
use anyhow::{bail, Error};
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
use proxmox_schema::api;
@ -48,7 +49,7 @@ pub fn list_verification_jobs(
privs & required_privs != 00
}).collect();
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}
@ -125,7 +126,7 @@ pub fn read_verification_job(
let required_privs = PRIV_DATASTORE_AUDIT | PRIV_DATASTORE_VERIFY;
user_info.check_privs(&auth_id, &["datastore", &verification_job.store], required_privs, true)?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(verification_job)
}
@ -193,7 +194,7 @@ pub fn update_verification_job(
let (mut config, expected_digest) = verify::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -280,7 +281,7 @@ pub fn delete_verification_job(
user_info.check_privs(&auth_id, &["datastore", &job.store], PRIV_DATASTORE_VERIFY, true)?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -2,7 +2,7 @@ use anyhow::{Error, bail, format_err};
use serde_json::{json, Value};
use std::collections::HashMap;
use proxmox::tools::fs::{replace_file, CreateOptions};
use proxmox_sys::fs::{replace_file, CreateOptions};
use proxmox_router::{
list_subdirs_api_method, RpcEnvironment, RpcEnvironmentType, Permission, Router, SubdirMap
};
@ -277,7 +277,7 @@ fn apt_get_changelog(
command.arg("changelog");
command.arg("-qq"); // don't display download progress
command.arg(name);
let output = pbs_tools::run_command(command, None)?;
let output = proxmox_sys::command::run_command(command, None)?;
Ok(json!(output))
}
}
@ -447,7 +447,7 @@ pub fn get_versions() -> Result<Vec<APTUpdateInfo>, Error> {
/// Get APT repository information.
pub fn get_repositories() -> Result<Value, Error> {
let (files, errors, digest) = proxmox_apt::repositories::repositories()?;
let digest = proxmox::tools::digest_to_hex(&digest);
let digest = hex::encode(&digest);
let suite = proxmox_apt::repositories::get_current_release_codename()?;
@ -493,7 +493,7 @@ pub fn add_repository(handle: APTRepositoryHandle, digest: Option<String>) -> Re
let suite = proxmox_apt::repositories::get_current_release_codename()?;
if let Some(expected_digest) = digest {
let current_digest = proxmox::tools::digest_to_hex(&current_digest);
let current_digest = hex::encode(&current_digest);
crate::tools::assert_if_modified(&expected_digest, &current_digest)?;
}
@ -583,7 +583,7 @@ pub fn change_repository(
let (mut files, errors, current_digest) = proxmox_apt::repositories::repositories()?;
if let Some(expected_digest) = digest {
let current_digest = proxmox::tools::digest_to_hex(&current_digest);
let current_digest = hex::encode(&current_digest);
crate::tools::assert_if_modified(&expected_digest, &current_digest)?;
}

View File

@ -133,7 +133,7 @@ impl TryFrom<&cert::CertInfo> for CertificateInfo {
fn get_certificate_pem() -> Result<String, Error> {
let cert_path = configdir!("/proxy.pem");
let cert_pem = proxmox::tools::fs::file_get_contents(&cert_path)?;
let cert_pem = proxmox_sys::fs::file_get_contents(&cert_path)?;
String::from_utf8(cert_pem)
.map_err(|_| format_err!("certificate in {:?} is not a valid PEM file", cert_path))
}

View File

@ -1,5 +1,6 @@
use anyhow::Error;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Permission, Router, RpcEnvironment};
use proxmox_schema::api;
@ -29,7 +30,7 @@ pub const ROUTER: Router = Router::new()
/// Get the node configuration
pub fn get_node_config(mut rpcenv: &mut dyn RpcEnvironment) -> Result<NodeConfig, Error> {
let (config, digest) = crate::config::node::config()?;
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(config)
}
@ -94,7 +95,7 @@ pub fn update_node_config(
if let Some(digest) = digest {
// FIXME: GUI doesn't handle our non-inlined digest part here properly...
if !digest.is_empty() {
let digest = proxmox::tools::hex_to_digest(&digest)?;
let digest = <[u8; 32]>::from_hex(&digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
}

View File

@ -78,7 +78,7 @@ pub fn list_datastore_mounts() -> Result<Vec<DatastoreMountInfo>, Error> {
let mut list = Vec::new();
let basedir = "/etc/systemd/system";
for item in pbs_tools::fs::scan_subdir(libc::AT_FDCWD, basedir, &MOUNT_NAME_REGEX)? {
for item in proxmox_sys::fs::scan_subdir(libc::AT_FDCWD, basedir, &MOUNT_NAME_REGEX)? {
let item = item?;
let name = item.file_name().to_string_lossy().to_string();
@ -243,7 +243,7 @@ pub fn delete_datastore_disk(name: String) -> Result<(), Error> {
}
// disable systemd mount-unit
let mut mount_unit_name = proxmox::tools::systemd::escape_unit(&path, true);
let mut mount_unit_name = proxmox_sys::systemd::escape_unit(&path, true);
mount_unit_name.push_str(".mount");
crate::tools::systemd::disable_unit(&mount_unit_name)?;
@ -256,7 +256,7 @@ pub fn delete_datastore_disk(name: String) -> Result<(), Error> {
// try to unmount, if that fails tell the user to reboot or unmount manually
let mut command = std::process::Command::new("umount");
command.arg(&path);
match pbs_tools::run_command(command, None) {
match proxmox_sys::command::run_command(command, None) {
Err(_) => bail!(
"Could not umount '{}' since it is busy. It will stay mounted \
until the next reboot or until unmounted manually!",
@ -282,7 +282,7 @@ fn create_datastore_mount_unit(
what: &str,
) -> Result<String, Error> {
let mut mount_unit_name = proxmox::tools::systemd::escape_unit(&mount_point, true);
let mut mount_unit_name = proxmox_sys::systemd::escape_unit(&mount_point, true);
mount_unit_name.push_str(".mount");
let mount_unit_path = format!("/etc/systemd/system/{}", mount_unit_name);

View File

@ -1,7 +1,7 @@
use anyhow::{bail, Error};
use serde_json::{json, Value};
use proxmox::{sortable, identity};
use proxmox_sys::{sortable, identity};
use proxmox_router::{
list_subdirs_api_method, Router, RpcEnvironment, RpcEnvironmentType, SubdirMap, Permission,
};

View File

@ -265,11 +265,11 @@ pub fn create_zpool(
task_log!(worker, "# {:?}", command);
let output = pbs_tools::run_command(command, None)?;
let output = proxmox_sys::command::run_command(command, None)?;
task_log!(worker, "{}", output);
if std::path::Path::new("/lib/systemd/system/zfs-import@.service").exists() {
let import_unit = format!("zfs-import@{}.service", proxmox::tools::systemd::escape_unit(&name, false));
let import_unit = format!("zfs-import@{}.service", proxmox_sys::systemd::escape_unit(&name, false));
crate::tools::systemd::enable_unit(&import_unit)?;
}
@ -277,7 +277,7 @@ pub fn create_zpool(
let mut command = std::process::Command::new("zfs");
command.args(&["set", &format!("compression={}", compression), &name]);
task_log!(worker, "# {:?}", command);
let output = pbs_tools::run_command(command, None)?;
let output = proxmox_sys::command::run_command(command, None)?;
task_log!(worker, "{}", output);
}

View File

@ -9,8 +9,8 @@ use ::serde::{Deserialize, Serialize};
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::api;
use proxmox::tools::fs::{file_get_contents, replace_file, CreateOptions};
use proxmox::{IPRE, IPV4RE, IPV6RE, IPV4OCTET, IPV6H16, IPV6LS32};
use proxmox_sys::fs::{file_get_contents, replace_file, CreateOptions};
use pbs_api_types::{IPRE, IPV4RE, IPV6RE, IPV4OCTET, IPV6H16, IPV6LS32};
use pbs_api_types::{
PROXMOX_CONFIG_DIGEST_SCHEMA, FIRST_DNS_SERVER_SCHEMA, SECOND_DNS_SERVER_SCHEMA,
@ -41,7 +41,7 @@ pub fn read_etc_resolv_conf() -> Result<Value, Error> {
let raw = file_get_contents(RESOLV_CONF_FN)?;
result["digest"] = Value::from(proxmox::tools::digest_to_hex(&sha::sha256(&raw)));
result["digest"] = Value::from(hex::encode(&sha::sha256(&raw)));
let data = String::from_utf8(raw)?;

View File

@ -12,8 +12,8 @@ use hyper::Request;
use serde_json::{json, Value};
use tokio::io::{AsyncBufReadExt, BufReader};
use proxmox::{identity, sortable};
use proxmox::tools::fd::fd_change_cloexec;
use proxmox_sys::{identity, sortable};
use proxmox_sys::fd::fd_change_cloexec;
use proxmox_router::{
ApiHandler, ApiMethod, ApiResponseFuture, Permission, RpcEnvironment, Router, SubdirMap,
@ -319,7 +319,7 @@ fn upgrade_to_websocket(
#[api]
/// List Nodes (only for compatiblity)
fn list_nodes() -> Result<Value, Error> {
Ok(json!([ { "node": proxmox::tools::nodename().to_string() } ]))
Ok(json!([ { "node": proxmox_sys::nodename().to_string() } ]))
}
pub const SUBDIRS: SubdirMap = &[

View File

@ -1,6 +1,7 @@
use anyhow::{Error, bail};
use serde_json::{Value, to_value};
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, parse_property_string};
@ -92,7 +93,7 @@ pub fn list_network_devices(
) -> Result<Value, Error> {
let (config, digest) = network::config()?;
let digest = proxmox::tools::digest_to_hex(&digest);
let digest = hex::encode(&digest);
let mut list = Vec::new();
@ -136,7 +137,7 @@ pub fn read_interface(iface: String) -> Result<Value, Error> {
let interface = config.lookup(&iface)?;
let mut data: Value = to_value(interface)?;
data["digest"] = proxmox::tools::digest_to_hex(&digest).into();
data["digest"] = hex::encode(&digest).into();
Ok(data)
}
@ -528,7 +529,7 @@ pub fn update_interface(
let (mut config, expected_digest) = network::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}
@ -668,7 +669,7 @@ pub fn delete_interface(iface: String, digest: Option<String>) -> Result<(), Err
let (mut config, expected_digest) = network::config()?;
if let Some(ref digest) = digest {
let digest = proxmox::tools::hex_to_digest(digest)?;
let digest = <[u8; 32]>::from_hex(digest)?;
crate::tools::detect_modified_configuration_file(&digest, &expected_digest)?;
}

View File

@ -3,7 +3,7 @@ use std::process::{Command, Stdio};
use anyhow::{bail, Error};
use serde_json::{json, Value};
use proxmox::{sortable, identity};
use proxmox_sys::{sortable, identity};
use proxmox_router::{list_subdirs_api_method, Router, Permission, RpcEnvironment, SubdirMap};
use proxmox_schema::api;

View File

@ -4,7 +4,7 @@ use std::path::Path;
use anyhow::{Error, format_err, bail};
use serde_json::Value;
use proxmox::sys::linux::procfs;
use proxmox_sys::linux::procfs;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::api;

View File

@ -4,7 +4,7 @@ use std::io::{BufRead, BufReader};
use anyhow::{bail, Error};
use serde_json::{json, Value};
use proxmox::{identity, sortable};
use proxmox_sys::{identity, sortable};
use proxmox_router::{list_subdirs_api_method, Router, RpcEnvironment, Permission, SubdirMap};
use proxmox_schema::api;

View File

@ -1,7 +1,7 @@
use anyhow::{bail, format_err, Error};
use serde_json::{json, Value};
use proxmox::tools::fs::{file_read_firstline, replace_file, CreateOptions};
use proxmox_sys::fs::{file_read_firstline, replace_file, CreateOptions};
use proxmox_router::{Router, Permission};
use proxmox_schema::api;

View File

@ -6,8 +6,9 @@ use hyper::header::{self, HeaderValue, UPGRADE};
use hyper::http::request::Parts;
use hyper::{Body, Response, Request, StatusCode};
use serde_json::Value;
use hex::FromHex;
use proxmox::{identity, sortable};
use proxmox_sys::{identity, sortable};
use proxmox_router::{
http_err, list_subdirs_api_method, ApiHandler, ApiMethod, ApiResponseFuture, Permission,
Router, RpcEnvironment, SubdirMap,
@ -19,7 +20,7 @@ use pbs_api_types::{
CHUNK_DIGEST_SCHEMA, PRIV_DATASTORE_READ, PRIV_DATASTORE_BACKUP,
BACKUP_ARCHIVE_NAME_SCHEMA,
};
use pbs_tools::fs::lock_dir_noblock_shared;
use proxmox_sys::fs::lock_dir_noblock_shared;
use pbs_tools::json::{required_integer_param, required_string_param};
use pbs_datastore::{DataStore, PROXMOX_BACKUP_READER_PROTOCOL_ID_V1};
use pbs_datastore::backup_info::BackupDir;
@ -277,7 +278,7 @@ fn download_chunk(
let env: &ReaderEnvironment = rpcenv.as_ref();
let digest_str = required_string_param(&param, "digest")?;
let digest = proxmox::tools::hex_to_digest(digest_str)?;
let digest = <[u8; 32]>::from_hex(digest_str)?;
if !env.check_chunk_access(digest) {
env.log(format!("attempted to download chunk {} which is not in registered chunk list", digest_str));
@ -316,7 +317,7 @@ fn download_chunk_old(
let env2 = env.clone();
let digest_str = required_string_param(&param, "digest")?;
let digest = proxmox::tools::hex_to_digest(digest_str)?;
let digest = <[u8; 32]>::from_hex(digest_str)?;
let (path, _) = env.datastore.chunk_path(&digest);

View File

@ -7,7 +7,7 @@ use serde_json::Value;
use proxmox_lang::try_block;
use proxmox_router::{Permission, Router, RpcEnvironment, RpcEnvironmentType};
use proxmox_schema::api;
use proxmox_sys::{task_log, task_warn, worker_task_context::WorkerTaskContext};
use proxmox_sys::{task_log, task_warn, WorkerTaskContext};
use pbs_api_types::{
Authid, Userid, TapeBackupJobConfig, TapeBackupJobSetup, TapeBackupJobStatus, MediaPoolConfig,
@ -147,7 +147,7 @@ pub fn list_tape_backup_jobs(
list.push(TapeBackupJobStatus { config: job, status, next_media_label });
}
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
rpcenv["digest"] = hex::encode(&digest).into();
Ok(list)
}

View File

@ -6,7 +6,7 @@ use std::collections::HashMap;
use anyhow::{bail, format_err, Error};
use serde_json::Value;
use proxmox::{sortable, identity};
use proxmox_sys::{sortable, identity};
use proxmox_router::{
list_subdirs_api_method, Permission, Router, RpcEnvironment, RpcEnvironmentType, SubdirMap,
};

View File

@ -8,13 +8,13 @@ use std::sync::Arc;
use anyhow::{bail, format_err, Error};
use serde_json::Value;
use proxmox::tools::fs::{replace_file, CreateOptions};
use proxmox_sys::fs::{replace_file, CreateOptions};
use proxmox_io::ReadExt;
use proxmox_router::{Permission, Router, RpcEnvironment, RpcEnvironmentType};
use proxmox_schema::{api, parse_property_string};
use proxmox_section_config::SectionConfigData;
use proxmox_uuid::Uuid;
use proxmox_sys::{task_log, task_warn, worker_task_context::WorkerTaskContext};
use proxmox_sys::{task_log, task_warn, WorkerTaskContext};
use pbs_api_types::{
Authid, Userid, CryptMode,
@ -1158,7 +1158,7 @@ fn scan_chunk_archive<'a>(
worker.check_abort()?;
if verbose {
task_log!(worker, "Found chunk: {}", proxmox::tools::digest_to_hex(&digest));
task_log!(worker, "Found chunk: {}", hex::encode(&digest));
}
chunks.push(digest);
@ -1193,10 +1193,10 @@ fn restore_chunk_archive<'a>(
let chunk_exists = datastore2.cond_touch_chunk(&digest, false)?;
if !chunk_exists {
if verbose {
task_log!(worker2, "Insert chunk: {}", proxmox::tools::digest_to_hex(&digest));
task_log!(worker2, "Insert chunk: {}", hex::encode(&digest));
}
bytes2.fetch_add(chunk.raw_size(), std::sync::atomic::Ordering::SeqCst);
// println!("verify and write {}", proxmox::tools::digest_to_hex(&digest));
// println!("verify and write {}", hex::encode(&digest));
chunk.verify_crc()?;
if chunk.crypt_mode()? == CryptMode::None {
chunk.decode(None, Some(&digest))?; // verify digest
@ -1204,7 +1204,7 @@ fn restore_chunk_archive<'a>(
datastore2.insert_chunk(&chunk, &digest)?;
} else if verbose {
task_log!(worker2, "Found existing chunk: {}", proxmox::tools::digest_to_hex(&digest));
task_log!(worker2, "Found existing chunk: {}", hex::encode(&digest));
}
Ok(())
},