]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/lib.rs
move RRD code into proxmox-rrd crate
[proxmox-backup.git] / src / lib.rs
index fa08b4fa0c823590dded8256e746c5d126c373bf..98b6b98725c63aa169acfbdfb3243c0107078cca 100644 (file)
@@ -3,6 +3,14 @@
 //! The [backup](backup/index.html) module contains some detailed information
 //! on the inner workings of the backup server regarding data storage.
 
+use std::path::PathBuf;
+
+use proxmox::tools::fs::CreateOptions;
+
+use pbs_buildcfg::configdir;
+use pbs_tools::cert::CertInfo;
+use proxmox_rrd::RRDCache;
+
 #[macro_use]
 pub mod tools;
 
@@ -20,10 +28,33 @@ pub mod auth_helpers;
 
 pub mod auth;
 
-pub mod rrd;
-
 pub mod tape;
 
 pub mod acme;
 
 pub mod client_helpers;
+
+/// Get the server's certificate info (from `proxy.pem`).
+pub fn cert_info() -> Result<CertInfo, anyhow::Error> {
+    CertInfo::from_path(PathBuf::from(configdir!("/proxy.pem")))
+}
+
+lazy_static::lazy_static!{
+    /// Proxmox Backup Server RRD cache instance
+    pub static ref RRD_CACHE: RRDCache = {
+        let backup_user = pbs_config::backup_user().unwrap();
+        let file_options = CreateOptions::new()
+            .owner(backup_user.uid)
+            .group(backup_user.gid);
+
+       let dir_options = CreateOptions::new()
+            .owner(backup_user.uid)
+            .group(backup_user.gid);
+
+        RRDCache::new(
+            "/var/lib/proxmox-backup/rrdb",
+            Some(file_options),
+            Some(dir_options),
+        )
+    };
+}