acme-api: export account_config_filename
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
This commit is contained in:
@ -80,7 +80,7 @@ impl AccountData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the path to the account configuration file (`$config_dir/accounts/$name`).
|
/// Returns the path to the account configuration file (`$config_dir/accounts/$name`).
|
||||||
pub fn account_cfg_filename(name: &str) -> PathBuf {
|
pub fn account_config_filename(name: &str) -> PathBuf {
|
||||||
acme_account_dir().join(name)
|
acme_account_dir().join(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,9 +121,9 @@ where
|
|||||||
|
|
||||||
// Mark account as deactivated
|
// Mark account as deactivated
|
||||||
pub(crate) fn mark_account_deactivated(account_name: &str) -> Result<(), Error> {
|
pub(crate) fn mark_account_deactivated(account_name: &str) -> Result<(), Error> {
|
||||||
let from = account_cfg_filename(account_name);
|
let from = account_config_filename(account_name);
|
||||||
for i in 0..100 {
|
for i in 0..100 {
|
||||||
let to = account_cfg_filename(&format!("_deactivated_{}_{}", account_name, i));
|
let to = account_config_filename(&format!("_deactivated_{}_{}", account_name, i));
|
||||||
if !Path::new(&to).exists() {
|
if !Path::new(&to).exists() {
|
||||||
return std::fs::rename(&from, &to).map_err(|err| {
|
return std::fs::rename(&from, &to).map_err(|err| {
|
||||||
format_err!(
|
format_err!(
|
||||||
@ -144,22 +144,22 @@ pub(crate) fn mark_account_deactivated(account_name: &str) -> Result<(), Error>
|
|||||||
|
|
||||||
// Load an existing ACME account by name.
|
// Load an existing ACME account by name.
|
||||||
pub(crate) async fn load_account_config(account_name: &str) -> Result<AccountData, Error> {
|
pub(crate) async fn load_account_config(account_name: &str) -> Result<AccountData, Error> {
|
||||||
let account_cfg_filename = account_cfg_filename(account_name);
|
let account_config_filename = account_config_filename(account_name);
|
||||||
let data = match tokio::fs::read(&account_cfg_filename).await {
|
let data = match tokio::fs::read(&account_config_filename).await {
|
||||||
Ok(data) => data,
|
Ok(data) => data,
|
||||||
Err(err) if err.kind() == std::io::ErrorKind::NotFound => {
|
Err(err) if err.kind() == std::io::ErrorKind::NotFound => {
|
||||||
bail!("acme account '{}' does not exist", account_name)
|
bail!("acme account '{}' does not exist", account_name)
|
||||||
}
|
}
|
||||||
Err(err) => bail!(
|
Err(err) => bail!(
|
||||||
"failed to load acme account from {:?} - {}",
|
"failed to load acme account from {:?} - {}",
|
||||||
account_cfg_filename,
|
account_config_filename,
|
||||||
err
|
err
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
let data: AccountData = serde_json::from_slice(&data).map_err(|err| {
|
let data: AccountData = serde_json::from_slice(&data).map_err(|err| {
|
||||||
format_err!(
|
format_err!(
|
||||||
"failed to parse acme account from {:?} - {}",
|
"failed to parse acme account from {:?} - {}",
|
||||||
account_cfg_filename,
|
account_config_filename,
|
||||||
err
|
err
|
||||||
)
|
)
|
||||||
})?;
|
})?;
|
||||||
@ -174,16 +174,16 @@ pub(crate) fn create_account_config(
|
|||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
make_acme_account_dir()?;
|
make_acme_account_dir()?;
|
||||||
|
|
||||||
let account_cfg_filename = account_cfg_filename(account_name.as_ref());
|
let account_config_filename = account_config_filename(account_name.as_ref());
|
||||||
let file = OpenOptions::new()
|
let file = OpenOptions::new()
|
||||||
.write(true)
|
.write(true)
|
||||||
.create_new(true)
|
.create_new(true)
|
||||||
.mode(0o600)
|
.mode(0o600)
|
||||||
.open(&account_cfg_filename)
|
.open(&account_config_filename)
|
||||||
.map_err(|err| {
|
.map_err(|err| {
|
||||||
format_err!(
|
format_err!(
|
||||||
"failed to open {:?} for writing: {}",
|
"failed to open {:?} for writing: {}",
|
||||||
account_cfg_filename,
|
account_config_filename,
|
||||||
err
|
err
|
||||||
)
|
)
|
||||||
})?;
|
})?;
|
||||||
@ -191,7 +191,7 @@ pub(crate) fn create_account_config(
|
|||||||
serde_json::to_writer_pretty(file, account).map_err(|err| {
|
serde_json::to_writer_pretty(file, account).map_err(|err| {
|
||||||
format_err!(
|
format_err!(
|
||||||
"failed to write acme account to {:?}: {}",
|
"failed to write acme account to {:?}: {}",
|
||||||
account_cfg_filename,
|
account_config_filename,
|
||||||
err
|
err
|
||||||
)
|
)
|
||||||
})?;
|
})?;
|
||||||
@ -204,13 +204,13 @@ pub(crate) fn save_account_config(
|
|||||||
account_name: &AcmeAccountName,
|
account_name: &AcmeAccountName,
|
||||||
account: &AccountData,
|
account: &AccountData,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let account_cfg_filename = account_cfg_filename(account_name.as_ref());
|
let account_config_filename = account_config_filename(account_name.as_ref());
|
||||||
|
|
||||||
let mut data = Vec::<u8>::new();
|
let mut data = Vec::<u8>::new();
|
||||||
serde_json::to_writer_pretty(&mut data, account).map_err(|err| {
|
serde_json::to_writer_pretty(&mut data, account).map_err(|err| {
|
||||||
format_err!(
|
format_err!(
|
||||||
"failed to serialize acme account to {:?}: {}",
|
"failed to serialize acme account to {:?}: {}",
|
||||||
account_cfg_filename,
|
account_config_filename,
|
||||||
err
|
err
|
||||||
)
|
)
|
||||||
})?;
|
})?;
|
||||||
@ -218,7 +218,7 @@ pub(crate) fn save_account_config(
|
|||||||
make_acme_account_dir()?;
|
make_acme_account_dir()?;
|
||||||
|
|
||||||
replace_file(
|
replace_file(
|
||||||
account_cfg_filename,
|
account_config_filename,
|
||||||
&data,
|
&data,
|
||||||
CreateOptions::new()
|
CreateOptions::new()
|
||||||
.perm(nix::sys::stat::Mode::from_bits_truncate(0o600))
|
.perm(nix::sys::stat::Mode::from_bits_truncate(0o600))
|
||||||
|
@ -19,6 +19,8 @@ pub use challenge_schemas::get_cached_challenge_schemas;
|
|||||||
|
|
||||||
#[cfg(feature = "impl")]
|
#[cfg(feature = "impl")]
|
||||||
mod account_config;
|
mod account_config;
|
||||||
|
#[cfg(feature = "impl")]
|
||||||
|
pub use account_config::account_config_filename;
|
||||||
|
|
||||||
#[cfg(feature = "impl")]
|
#[cfg(feature = "impl")]
|
||||||
mod plugin_config;
|
mod plugin_config;
|
||||||
|
Reference in New Issue
Block a user