move datastore config to pbs_config workspace
This commit is contained in:
@ -50,6 +50,7 @@ use pbs_datastore::prune::{compute_prune_info, PruneOptions};
|
||||
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 crate::api2::types::{DataStoreStatus, RRDMode, RRDTimeFrameResolution};
|
||||
use crate::api2::node::rrd::create_value_from_rrd;
|
||||
@ -57,8 +58,6 @@ use crate::backup::{
|
||||
check_backup_owner, verify_all_backups, verify_backup_group, verify_backup_dir, verify_filter,
|
||||
DataStore, LocalChunkReader,
|
||||
};
|
||||
use crate::config::datastore;
|
||||
use pbs_config::CachedUserInfo;
|
||||
|
||||
use crate::server::{jobstate::Job, WorkerTask};
|
||||
|
||||
@ -1050,7 +1049,7 @@ pub fn get_datastore_list(
|
||||
rpcenv: &mut dyn RpcEnvironment,
|
||||
) -> Result<Vec<DataStoreListItem>, Error> {
|
||||
|
||||
let (config, _digest) = datastore::config()?;
|
||||
let (config, _digest) = pbs_config::datastore::config()?;
|
||||
|
||||
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
|
||||
let user_info = CachedUserInfo::new()?;
|
||||
|
@ -15,6 +15,7 @@ use pbs_api_types::{
|
||||
Authid, DatastoreNotify,
|
||||
DATASTORE_SCHEMA, PROXMOX_CONFIG_DIGEST_SCHEMA,
|
||||
PRIV_DATASTORE_ALLOCATE, PRIV_DATASTORE_AUDIT, PRIV_DATASTORE_MODIFY,
|
||||
DataStoreConfig, DataStoreConfigUpdater,
|
||||
};
|
||||
|
||||
use crate::api2::config::sync::delete_sync_job;
|
||||
@ -25,7 +26,7 @@ use crate::api2::admin::{
|
||||
verify::list_verification_jobs,
|
||||
};
|
||||
use pbs_config::CachedUserInfo;
|
||||
use crate::config::datastore::{self, DataStoreConfig, DataStoreConfigUpdater};
|
||||
|
||||
use crate::server::{jobstate, WorkerTask};
|
||||
|
||||
#[api(
|
||||
@ -47,7 +48,7 @@ pub fn list_datastores(
|
||||
mut rpcenv: &mut dyn RpcEnvironment,
|
||||
) -> Result<Vec<DataStoreConfig>, Error> {
|
||||
|
||||
let (config, digest) = datastore::config()?;
|
||||
let (config, digest) = pbs_config::datastore::config()?;
|
||||
|
||||
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
|
||||
let user_info = CachedUserInfo::new()?;
|
||||
@ -76,7 +77,7 @@ pub(crate) fn do_create_datastore(
|
||||
|
||||
config.set_data(&datastore.name, "datastore", &datastore)?;
|
||||
|
||||
datastore::save_config(&config)?;
|
||||
pbs_config::datastore::save_config(&config)?;
|
||||
|
||||
jobstate::create_state_file("prune", &datastore.name)?;
|
||||
jobstate::create_state_file("garbage_collection", &datastore.name)?;
|
||||
@ -104,9 +105,9 @@ pub fn create_datastore(
|
||||
rpcenv: &mut dyn RpcEnvironment,
|
||||
) -> Result<String, Error> {
|
||||
|
||||
let lock = datastore::lock_config()?;
|
||||
let lock = pbs_config::datastore::lock_config()?;
|
||||
|
||||
let (section_config, _digest) = datastore::config()?;
|
||||
let (section_config, _digest) = pbs_config::datastore::config()?;
|
||||
|
||||
if section_config.sections.get(&config.name).is_some() {
|
||||
bail!("datastore '{}' already exists.", config.name);
|
||||
@ -141,7 +142,7 @@ pub fn read_datastore(
|
||||
name: String,
|
||||
mut rpcenv: &mut dyn RpcEnvironment,
|
||||
) -> Result<DataStoreConfig, Error> {
|
||||
let (config, digest) = datastore::config()?;
|
||||
let (config, digest) = pbs_config::datastore::config()?;
|
||||
|
||||
let store_config = config.lookup("datastore", &name)?;
|
||||
rpcenv["digest"] = proxmox::tools::digest_to_hex(&digest).into();
|
||||
@ -218,10 +219,10 @@ pub fn update_datastore(
|
||||
digest: Option<String>,
|
||||
) -> Result<(), Error> {
|
||||
|
||||
let _lock = datastore::lock_config()?;
|
||||
let _lock = pbs_config::datastore::lock_config()?;
|
||||
|
||||
// pass/compare digest
|
||||
let (mut config, expected_digest) = datastore::config()?;
|
||||
let (mut config, expected_digest) = pbs_config::datastore::config()?;
|
||||
|
||||
if let Some(ref digest) = digest {
|
||||
let digest = proxmox::tools::hex_to_digest(digest)?;
|
||||
@ -292,7 +293,7 @@ pub fn update_datastore(
|
||||
|
||||
config.set_data(&name, "datastore", &data)?;
|
||||
|
||||
datastore::save_config(&config)?;
|
||||
pbs_config::datastore::save_config(&config)?;
|
||||
|
||||
// we want to reset the statefiles, to avoid an immediate action in some cases
|
||||
// (e.g. going from monthly to weekly in the second week of the month)
|
||||
@ -338,9 +339,9 @@ pub async fn delete_datastore(
|
||||
rpcenv: &mut dyn RpcEnvironment,
|
||||
) -> Result<(), Error> {
|
||||
|
||||
let _lock = datastore::lock_config()?;
|
||||
let _lock = pbs_config::datastore::lock_config()?;
|
||||
|
||||
let (mut config, expected_digest) = datastore::config()?;
|
||||
let (mut config, expected_digest) = pbs_config::datastore::config()?;
|
||||
|
||||
if let Some(ref digest) = digest {
|
||||
let digest = proxmox::tools::hex_to_digest(digest)?;
|
||||
@ -366,7 +367,7 @@ pub async fn delete_datastore(
|
||||
}
|
||||
}
|
||||
|
||||
datastore::save_config(&config)?;
|
||||
pbs_config::datastore::save_config(&config)?;
|
||||
|
||||
// ignore errors
|
||||
let _ = jobstate::remove_state_file("prune", &name);
|
||||
|
@ -7,8 +7,8 @@ use proxmox::api::section_config::SectionConfigData;
|
||||
use proxmox::api::router::Router;
|
||||
|
||||
use pbs_api_types::{
|
||||
Authid, NODE_SCHEMA, BLOCKDEVICE_NAME_SCHEMA, DATASTORE_SCHEMA, UPID_SCHEMA,
|
||||
PRIV_SYS_AUDIT, PRIV_SYS_MODIFY,
|
||||
Authid, DataStoreConfig, NODE_SCHEMA, BLOCKDEVICE_NAME_SCHEMA,
|
||||
DATASTORE_SCHEMA, UPID_SCHEMA, PRIV_SYS_AUDIT, PRIV_SYS_MODIFY,
|
||||
};
|
||||
|
||||
use crate::tools::disks::{
|
||||
@ -19,9 +19,6 @@ use crate::tools::systemd::{self, types::*};
|
||||
|
||||
use crate::server::WorkerTask;
|
||||
|
||||
use crate::config::datastore::{self, DataStoreConfig};
|
||||
use pbs_config::open_backup_lockfile;
|
||||
|
||||
#[api(
|
||||
properties: {
|
||||
"filesystem": {
|
||||
@ -183,11 +180,11 @@ pub fn create_datastore_disk(
|
||||
pbs_systemd::start_unit(&mount_unit_name)?;
|
||||
|
||||
if add_datastore {
|
||||
let lock = open_backup_lockfile(datastore::DATASTORE_CFG_LOCKFILE, None, true)?;
|
||||
let lock = pbs_config::datastore::lock_config()?;
|
||||
let datastore: DataStoreConfig =
|
||||
serde_json::from_value(json!({ "name": name, "path": mount_point }))?;
|
||||
|
||||
let (config, _digest) = datastore::config()?;
|
||||
let (config, _digest) = pbs_config::datastore::config()?;
|
||||
|
||||
if config.sections.get(&datastore.name).is_some() {
|
||||
bail!("datastore '{}' already exists.", datastore.name);
|
||||
@ -223,7 +220,7 @@ pub fn delete_datastore_disk(name: String) -> Result<(), Error> {
|
||||
|
||||
let path = format!("/mnt/datastore/{}", name);
|
||||
// path of datastore cannot be changed
|
||||
let (config, _) = crate::config::datastore::config()?;
|
||||
let (config, _) = pbs_config::datastore::config()?;
|
||||
let datastores: Vec<DataStoreConfig> = config.convert_to_typed_array("datastore")?;
|
||||
let conflicting_datastore: Option<DataStoreConfig> = datastores.into_iter()
|
||||
.find(|ds| ds.path == path);
|
||||
|
@ -8,7 +8,7 @@ use proxmox::api::{
|
||||
use proxmox::api::router::Router;
|
||||
|
||||
use pbs_api_types::{
|
||||
Authid, ZpoolListItem, ZfsRaidLevel, ZfsCompressionType,
|
||||
Authid, ZpoolListItem, ZfsRaidLevel, ZfsCompressionType, DataStoreConfig,
|
||||
NODE_SCHEMA, ZPOOL_NAME_SCHEMA, DATASTORE_SCHEMA, DISK_ARRAY_SCHEMA,
|
||||
DISK_LIST_SCHEMA, ZFS_ASHIFT_SCHEMA, UPID_SCHEMA,
|
||||
PRIV_SYS_AUDIT, PRIV_SYS_MODIFY,
|
||||
@ -18,7 +18,6 @@ use crate::tools::disks::{
|
||||
zpool_list, zpool_status, parse_zpool_status_config_tree, vdev_list_to_tree,
|
||||
DiskUsageType,
|
||||
};
|
||||
use crate::config::datastore::{self, DataStoreConfig};
|
||||
|
||||
use crate::server::WorkerTask;
|
||||
|
||||
@ -285,11 +284,11 @@ pub fn create_zpool(
|
||||
}
|
||||
|
||||
if add_datastore {
|
||||
let lock = datastore::lock_config()?;
|
||||
let lock = pbs_config::datastore::lock_config()?;
|
||||
let datastore: DataStoreConfig =
|
||||
serde_json::from_value(json!({ "name": name, "path": mount_point }))?;
|
||||
|
||||
let (config, _digest) = datastore::config()?;
|
||||
let (config, _digest) = pbs_config::datastore::config()?;
|
||||
|
||||
if config.sections.get(&datastore.name).is_some() {
|
||||
bail!("datastore '{}' already exists.", datastore.name);
|
||||
|
@ -20,7 +20,6 @@ use pbs_api_types::{
|
||||
};
|
||||
|
||||
use crate::backup::DataStore;
|
||||
use crate::config::datastore;
|
||||
use crate::tools::statistics::{linear_regression};
|
||||
use pbs_config::CachedUserInfo;
|
||||
|
||||
@ -83,7 +82,7 @@ pub fn datastore_status(
|
||||
rpcenv: &mut dyn RpcEnvironment,
|
||||
) -> Result<Value, Error> {
|
||||
|
||||
let (config, _digest) = datastore::config()?;
|
||||
let (config, _digest) = pbs_config::datastore::config()?;
|
||||
|
||||
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
|
||||
let user_info = CachedUserInfo::new()?;
|
||||
|
Reference in New Issue
Block a user