]> git.proxmox.com Git - proxmox-backup.git/blob - src/client_helpers.rs
proxmox-backup-proxy: clean up old tasks when the task log was rotated
[proxmox-backup.git] / src / client_helpers.rs
1 use anyhow::Error;
2
3 use pbs_api_types::{Authid, Userid};
4 use pbs_client::{HttpClient, HttpClientOptions};
5 use pbs_tools::ticket::Ticket;
6
7 use crate::auth_helpers::private_auth_key;
8
9 /// Connect to localhost:8007 as root@pam
10 ///
11 /// This automatically creates a ticket if run as 'root' user.
12 pub fn connect_to_localhost() -> Result<pbs_client::HttpClient, Error> {
13 let options = if nix::unistd::Uid::current().is_root() {
14 let auth_key = private_auth_key();
15 let ticket = Ticket::new("PBS", Userid::root_userid())?.sign(auth_key, None)?;
16 let fingerprint = crate::cert_info()?.fingerprint()?;
17 HttpClientOptions::new_non_interactive(ticket, Some(fingerprint))
18 } else {
19 HttpClientOptions::new_interactive(None, None)
20 };
21
22 HttpClient::new("localhost", 8007, Authid::root_auth_id(), options)
23 }