From 9ea4bce4446a3551b736244b6a18678ca5e70eb7 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Tue, 21 Jan 2020 12:28:01 +0100 Subject: [PATCH] bump proxmox crate to 0.1.7 The -sys, -tools and -api crate have now been merged into the proxmx crate directly. Only macro crates are separate (but still reexported by the proxmox crate in their designated locations). When we need to depend on "parts" of the crate later on we'll just have to use features. The reason is mostly that these modules had inter-dependencies which really make them not independent enough to be their own crates. Signed-off-by: Wolfgang Bumiller --- Cargo.toml | 2 +- src/api2.rs | 2 +- src/api2/access.rs | 6 +++--- src/api2/admin.rs | 2 +- src/api2/admin/datastore.rs | 5 ++--- src/api2/backup.rs | 3 +-- src/api2/backup/upload_chunk.rs | 2 +- src/api2/config.rs | 2 +- src/api2/node.rs | 2 +- src/api2/node/dns.rs | 2 +- src/api2/node/services.rs | 3 +-- src/api2/node/status.rs | 2 +- src/api2/node/tasks.rs | 3 +-- src/api2/pull.rs | 4 ++-- src/api2/reader.rs | 2 +- src/api2/types.rs | 5 +++-- src/auth_helpers.rs | 6 ++---- src/backup/data_blob.rs | 4 ++-- src/backup/dynamic_index.rs | 4 ++-- src/backup/fixed_index.rs | 4 ++-- src/backup/key_derivation.rs | 6 ++---- src/backup/manifest.rs | 2 +- src/bin/proxmox-backup-api.rs | 2 +- src/bin/proxmox-backup-client.rs | 2 +- src/bin/proxmox-backup-manager.rs | 2 +- src/bin/proxmox-backup-proxy.rs | 2 +- src/client/backup_repo.rs | 2 +- src/config.rs | 2 +- src/section_config.rs | 2 +- src/server/h2service.rs | 3 ++- src/server/rest.rs | 2 +- src/server/worker_task.rs | 6 ++---- src/tools/tty.rs | 2 +- 33 files changed, 46 insertions(+), 54 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 076fe0ca..09851309 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ pam = "0.7" pam-sys = "0.5" percent-encoding = "2.1" pin-utils = "0.1.0-alpha" -proxmox = { version = "0.1.5", features = [ "sortable-macro", "api-macro" ] } +proxmox = { version = "0.1.7", features = [ "sortable-macro", "api-macro" ] } #proxmox = { git = "ssh://gitolite3@proxdev.maurer-it.com/rust/proxmox", version = "0.1.2", features = [ "sortable-macro", "api-macro" ] } #proxmox = { path = "../proxmox/proxmox", features = [ "sortable-macro", "api-macro" ] } regex = "1.2" diff --git a/src/api2.rs b/src/api2.rs index 46c08a40..31c9d8e7 100644 --- a/src/api2.rs +++ b/src/api2.rs @@ -9,9 +9,9 @@ pub mod types; pub mod version; pub mod pull; -use proxmox::api::list_subdirs_api_method; use proxmox::api::router::SubdirMap; use proxmox::api::Router; +use proxmox::list_subdirs_api_method; const NODES_ROUTER: Router = Router::new().match_all("node", &node::ROUTER); diff --git a/src/api2/access.rs b/src/api2/access.rs index 8016b6b6..13692a19 100644 --- a/src/api2/access.rs +++ b/src/api2/access.rs @@ -2,10 +2,10 @@ use failure::*; use serde_json::{json, Value}; -use proxmox::sortable; -use proxmox::api::{http_err, list_subdirs_api_method}; -use proxmox::api::router::{Router, SubdirMap}; use proxmox::api::api; +use proxmox::api::router::{Router, SubdirMap}; +use proxmox::sortable; +use proxmox::{http_err, list_subdirs_api_method}; use crate::tools; use crate::tools::ticket::*; diff --git a/src/api2/admin.rs b/src/api2/admin.rs index e782d68c..189a2a11 100644 --- a/src/api2/admin.rs +++ b/src/api2/admin.rs @@ -1,5 +1,5 @@ use proxmox::api::router::{Router, SubdirMap}; -use proxmox::api::list_subdirs_api_method; +use proxmox::list_subdirs_api_method; pub mod datastore; diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 9487bcf4..7d88c57d 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -7,14 +7,13 @@ use hyper::http::request::Parts; use hyper::{header, Body, Response, StatusCode}; use serde_json::{json, Value}; -use proxmox::{sortable, identity}; use proxmox::api::api; -use proxmox::api::{http_err, list_subdirs_api_method}; use proxmox::api::{ApiResponseFuture, ApiHandler, ApiMethod, Router, RpcEnvironment, RpcEnvironmentType}; use proxmox::api::router::SubdirMap; use proxmox::api::schema::*; -use proxmox::tools::try_block; use proxmox::tools::fs::{file_get_contents, replace_file, CreateOptions}; +use proxmox::try_block; +use proxmox::{http_err, identity, list_subdirs_api_method, sortable}; use crate::api2::types::*; use crate::backup::*; diff --git a/src/api2/backup.rs b/src/api2/backup.rs index 894d7c13..5e4b4238 100644 --- a/src/api2/backup.rs +++ b/src/api2/backup.rs @@ -5,8 +5,7 @@ use hyper::http::request::Parts; use hyper::{Body, Response, StatusCode}; use serde_json::{json, Value}; -use proxmox::{sortable, identity}; -use proxmox::api::list_subdirs_api_method; +use proxmox::{sortable, identity, list_subdirs_api_method}; use proxmox::api::{ApiResponseFuture, ApiHandler, ApiMethod, Router, RpcEnvironment}; use proxmox::api::router::SubdirMap; use proxmox::api::schema::*; diff --git a/src/api2/backup/upload_chunk.rs b/src/api2/backup/upload_chunk.rs index 1bc8c7d8..3fc457b0 100644 --- a/src/api2/backup/upload_chunk.rs +++ b/src/api2/backup/upload_chunk.rs @@ -58,7 +58,7 @@ impl Future for UploadChunk { break format_err!("uploaded chunk has unexpected size."); } - let (is_duplicate, compressed_size) = match proxmox::tools::try_block! { + let (is_duplicate, compressed_size) = match proxmox::try_block! { let mut chunk = DataBlob::from_raw(raw_data)?; chunk.verify_unencrypted(this.size as usize, &this.digest)?; diff --git a/src/api2/config.rs b/src/api2/config.rs index a6fef19a..79db82da 100644 --- a/src/api2/config.rs +++ b/src/api2/config.rs @@ -1,5 +1,5 @@ use proxmox::api::router::{Router, SubdirMap}; -use proxmox::api::list_subdirs_api_method; +use proxmox::list_subdirs_api_method; pub mod datastore; pub mod remote; diff --git a/src/api2/node.rs b/src/api2/node.rs index b8bcd6cd..b63197c9 100644 --- a/src/api2/node.rs +++ b/src/api2/node.rs @@ -1,5 +1,5 @@ use proxmox::api::router::{Router, SubdirMap}; -use proxmox::api::list_subdirs_api_method; +use proxmox::list_subdirs_api_method; mod tasks; mod time; diff --git a/src/api2/node/dns.rs b/src/api2/node/dns.rs index 46fd01f7..fe69e1e9 100644 --- a/src/api2/node/dns.rs +++ b/src/api2/node/dns.rs @@ -10,7 +10,7 @@ use proxmox::{sortable, identity}; use proxmox::api::{ApiHandler, ApiMethod, Router, RpcEnvironment}; use proxmox::api::schema::*; use proxmox::tools::fs::{file_get_contents, replace_file, CreateOptions}; -use proxmox::tools::*; // required to use IPRE!() macro ??? +use proxmox::{IPRE, IPV4RE, IPV6RE, IPV4OCTET, IPV6H16, IPV6LS32}; use crate::api2::types::*; diff --git a/src/api2/node/services.rs b/src/api2/node/services.rs index 56c64248..aedfe0b3 100644 --- a/src/api2/node/services.rs +++ b/src/api2/node/services.rs @@ -3,8 +3,7 @@ use std::process::{Command, Stdio}; use failure::*; use serde_json::{json, Value}; -use proxmox::{sortable, identity}; -use proxmox::api::list_subdirs_api_method; +use proxmox::{sortable, identity, list_subdirs_api_method}; use proxmox::api::{ApiHandler, ApiMethod, Router, RpcEnvironment}; use proxmox::api::router::SubdirMap; use proxmox::api::schema::*; diff --git a/src/api2/node/status.rs b/src/api2/node/status.rs index 7013cf4b..9bdf256c 100644 --- a/src/api2/node/status.rs +++ b/src/api2/node/status.rs @@ -4,7 +4,7 @@ use serde_json::{json, Value}; use proxmox::sys::linux::procfs; use proxmox::api::{api, ApiMethod, Router, RpcEnvironment, SubdirMap}; -use proxmox::api::list_subdirs_api_method; +use proxmox::list_subdirs_api_method; use crate::api2::types::*; diff --git a/src/api2/node/tasks.rs b/src/api2/node/tasks.rs index b725f35d..3abab40b 100644 --- a/src/api2/node/tasks.rs +++ b/src/api2/node/tasks.rs @@ -4,11 +4,10 @@ use std::io::{BufRead, BufReader}; use failure::*; use serde_json::{json, Value}; -use proxmox::{sortable, identity}; -use proxmox::api::list_subdirs_api_method; use proxmox::api::{ApiHandler, ApiMethod, Router, RpcEnvironment}; use proxmox::api::router::SubdirMap; use proxmox::api::schema::*; +use proxmox::{identity, list_subdirs_api_method, sortable}; use crate::tools; use crate::api2::types::*; diff --git a/src/api2/pull.rs b/src/api2/pull.rs index e2368db6..a5e64548 100644 --- a/src/api2/pull.rs +++ b/src/api2/pull.rs @@ -128,7 +128,7 @@ async fn pull_snapshot( tmp_manifest_blob.verify_crc()?; if manifest_name.exists() { - let manifest_blob = proxmox::tools::try_block!({ + let manifest_blob = proxmox::try_block!({ let mut manifest_file = std::fs::File::open(&manifest_name) .map_err(|err| format_err!("unable to open local manifest {:?} - {}", manifest_name, err))?; @@ -331,7 +331,7 @@ pub async fn pull_store( } if delete { - let result: Result<(), Error> = proxmox::tools::try_block!({ + let result: Result<(), Error> = proxmox::try_block!({ let local_groups = BackupGroup::list_groups(&tgt_store.base_path())?; for local_group in local_groups { if new_groups.contains(&local_group) { continue; } diff --git a/src/api2/reader.rs b/src/api2/reader.rs index 130fe7ba..4a7aa680 100644 --- a/src/api2/reader.rs +++ b/src/api2/reader.rs @@ -7,9 +7,9 @@ use hyper::{Body, Response, StatusCode}; use serde_json::Value; use proxmox::{sortable, identity}; -use proxmox::api::http_err; use proxmox::api::{ApiResponseFuture, ApiHandler, ApiMethod, Router, RpcEnvironment}; use proxmox::api::schema::*; +use proxmox::http_err; use crate::api2::types::*; use crate::backup::*; diff --git a/src/api2/types.rs b/src/api2/types.rs index 8a3d6ea4..16646ca6 100644 --- a/src/api2/types.rs +++ b/src/api2/types.rs @@ -1,8 +1,9 @@ use failure::*; use ::serde::{Deserialize, Serialize}; -use proxmox::api::{api, const_regex, schema::*}; -use proxmox::tools::*; // required to use IPRE!() macro ??? +use proxmox::api::{api, schema::*}; +use proxmox::const_regex; +use proxmox::{IPRE, IPV4RE, IPV6RE, IPV4OCTET, IPV6H16, IPV6LS32}; // File names: may not contain slashes, may not start with "." pub const FILENAME_FORMAT: ApiStringFormat = ApiStringFormat::VerifyFn(|name| { diff --git a/src/auth_helpers.rs b/src/auth_helpers.rs index 5382da27..bca58bdf 100644 --- a/src/auth_helpers.rs +++ b/src/auth_helpers.rs @@ -7,10 +7,8 @@ use openssl::sha; use std::path::PathBuf; -use proxmox::tools::{ - try_block, - fs::{file_get_contents, replace_file, CreateOptions}, -}; +use proxmox::tools::fs::{file_get_contents, replace_file, CreateOptions}; +use proxmox::try_block; fn compute_csrf_secret_digest( timestamp: i64, diff --git a/src/backup/data_blob.rs b/src/backup/data_blob.rs index 925e9ce6..3a5a05e0 100644 --- a/src/backup/data_blob.rs +++ b/src/backup/data_blob.rs @@ -48,13 +48,13 @@ impl DataBlob { /// accessor to crc32 checksum pub fn crc(&self) -> u32 { - let crc_o = proxmox::tools::offsetof!(DataBlobHeader, crc); + let crc_o = proxmox::offsetof!(DataBlobHeader, crc); u32::from_le_bytes(self.raw_data[crc_o..crc_o+4].try_into().unwrap()) } // set the CRC checksum field pub fn set_crc(&mut self, crc: u32) { - let crc_o = proxmox::tools::offsetof!(DataBlobHeader, crc); + let crc_o = proxmox::offsetof!(DataBlobHeader, crc); self.raw_data[crc_o..crc_o+4].copy_from_slice(&crc.to_le_bytes()); } diff --git a/src/backup/dynamic_index.rs b/src/backup/dynamic_index.rs index af848e93..0a993d34 100644 --- a/src/backup/dynamic_index.rs +++ b/src/backup/dynamic_index.rs @@ -29,7 +29,7 @@ pub struct DynamicIndexHeader { pub index_csum: [u8; 32], reserved: [u8; 4032], // overall size is one page (4096 bytes) } -proxmox::tools::static_assert_size!(DynamicIndexHeader, 4096); +proxmox::static_assert_size!(DynamicIndexHeader, 4096); // TODO: Once non-Copy unions are stabilized, use: // union DynamicIndexHeader { // reserved: [u8; 4096], @@ -493,7 +493,7 @@ impl DynamicIndexWriter { self.writer.flush()?; - let csum_offset = proxmox::tools::offsetof!(DynamicIndexHeader, index_csum); + let csum_offset = proxmox::offsetof!(DynamicIndexHeader, index_csum); self.writer.seek(SeekFrom::Start(csum_offset as u64))?; let csum = self.csum.take().unwrap(); diff --git a/src/backup/fixed_index.rs b/src/backup/fixed_index.rs index db0c52d0..d3726320 100644 --- a/src/backup/fixed_index.rs +++ b/src/backup/fixed_index.rs @@ -32,7 +32,7 @@ pub struct FixedIndexHeader { pub chunk_size: u64, reserved: [u8; 4016], // overall size is one page (4096 bytes) } -proxmox::tools::static_assert_size!(FixedIndexHeader, 4096); +proxmox::static_assert_size!(FixedIndexHeader, 4096); // split image into fixed size chunks @@ -372,7 +372,7 @@ impl FixedIndexWriter { self.unmap()?; - let csum_offset = proxmox::tools::offsetof!(FixedIndexHeader, index_csum); + let csum_offset = proxmox::offsetof!(FixedIndexHeader, index_csum); self.file.seek(SeekFrom::Start(csum_offset as u64))?; self.file.write_all(&index_csum)?; self.file.flush()?; diff --git a/src/backup/key_derivation.rs b/src/backup/key_derivation.rs index 45c464aa..547eed96 100644 --- a/src/backup/key_derivation.rs +++ b/src/backup/key_derivation.rs @@ -3,10 +3,8 @@ use failure::*; use serde::{Deserialize, Serialize}; use chrono::{Local, TimeZone, DateTime}; -use proxmox::tools::{ - try_block, - fs::{file_get_contents, replace_file, CreateOptions}, -}; +use proxmox::tools::fs::{file_get_contents, replace_file, CreateOptions}; +use proxmox::try_block; #[derive(Deserialize, Serialize, Debug)] pub enum KeyDerivationConfig { diff --git a/src/backup/manifest.rs b/src/backup/manifest.rs index c1e66de1..ca588f9b 100644 --- a/src/backup/manifest.rs +++ b/src/backup/manifest.rs @@ -119,7 +119,7 @@ impl TryFrom for BackupManifest { use crate::tools::{required_string_property, required_integer_property, required_array_property}; - proxmox::tools::try_block!({ + proxmox::try_block!({ let backup_type = required_string_property(&data, "backup-type")?; let backup_id = required_string_property(&data, "backup-id")?; let backup_time = required_integer_property(&data, "backup-time")?; diff --git a/src/bin/proxmox-backup-api.rs b/src/bin/proxmox-backup-api.rs index a1ac399a..4dca9bcb 100644 --- a/src/bin/proxmox-backup-api.rs +++ b/src/bin/proxmox-backup-api.rs @@ -1,7 +1,7 @@ use failure::*; use futures::*; -use proxmox::tools::try_block; +use proxmox::try_block; use proxmox::api::RpcEnvironmentType; //use proxmox_backup::tools; diff --git a/src/bin/proxmox-backup-client.rs b/src/bin/proxmox-backup-client.rs index a73c3c8d..4acdb8f6 100644 --- a/src/bin/proxmox-backup-client.rs +++ b/src/bin/proxmox-backup-client.rs @@ -35,7 +35,7 @@ use xdg::BaseDirectories; use futures::*; use tokio::sync::mpsc; -proxmox::api::const_regex! { +proxmox::const_regex! { BACKUPSPEC_REGEX = r"^([a-zA-Z0-9_-]+\.(?:pxar|img|conf|log)):(.+)$"; } diff --git a/src/bin/proxmox-backup-manager.rs b/src/bin/proxmox-backup-manager.rs index c076e667..283e293d 100644 --- a/src/bin/proxmox-backup-manager.rs +++ b/src/bin/proxmox-backup-manager.rs @@ -467,7 +467,7 @@ pub fn complete_remote_datastore_name(_arg: &str, param: &HashMap bool {