mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-08-03 23:36:02 +00:00
pbs-client: add helper for getting UTF-8 secrets
We are going to add more credentials so it makes sense to have a common helper to get the secrets. Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
This commit is contained in:
parent
70e1ad0efb
commit
4b26fb2bd7
@ -153,6 +153,25 @@ fn get_secret_from_env(base_name: &str) -> Result<Option<String>, Error> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
/// Gets a secret or value from the environment.
|
||||
///
|
||||
/// Checks for an environment variable named `env_variable`, and if missing, it
|
||||
/// checks for a system [credential] named `credential_name`. Assumes the secret
|
||||
/// is UTF-8 encoded.
|
||||
///
|
||||
/// [credential]: https://systemd.io/CREDENTIALS/
|
||||
fn get_secret_impl(env_variable: &str, credential_name: &str) -> Result<Option<String>, Error> {
|
||||
if let Some(password) = get_secret_from_env(env_variable)? {
|
||||
Ok(Some(password))
|
||||
} else if let Some(password) = get_credential(credential_name)? {
|
||||
String::from_utf8(password)
|
||||
.map(Option::Some)
|
||||
.map_err(|_err| format_err!("credential {credential_name} is not utf8 encoded"))
|
||||
} else {
|
||||
Ok(None)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets the backup server's password.
|
||||
///
|
||||
/// Looks for a password in the `PBS_PASSWORD` environment variable, if there
|
||||
|
Loading…
Reference in New Issue
Block a user