mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-08-07 02:33:23 +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)
|
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.
|
/// Gets the backup server's password.
|
||||||
///
|
///
|
||||||
/// Looks for a password in the `PBS_PASSWORD` environment variable, if there
|
/// Looks for a password in the `PBS_PASSWORD` environment variable, if there
|
||||||
|
Loading…
Reference in New Issue
Block a user