mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-11 22:53:00 +00:00
drop raw settings cache from app state
This commit is contained in:
parent
a05dc101f2
commit
45a4802c65
2 changed files with 9 additions and 18 deletions
|
|
@ -730,6 +730,7 @@ where
|
|||
|
||||
// Spawn config polling task
|
||||
let state_for_poll = Arc::clone(&state);
|
||||
let shared_settings_for_poll = Arc::clone(&shared_settings);
|
||||
let config_path_for_poll = config_path.clone();
|
||||
let args_for_poll = args.clone();
|
||||
let data_dir_for_poll = data_dir.clone();
|
||||
|
|
@ -746,15 +747,19 @@ where
|
|||
&data_dir_for_poll,
|
||||
);
|
||||
let changed = {
|
||||
let cfg = state_for_poll
|
||||
.settings
|
||||
let cfg = shared_settings_for_poll
|
||||
.read()
|
||||
.expect("config lock poisoned");
|
||||
*cfg != effective
|
||||
};
|
||||
if changed {
|
||||
match state_for_poll.replace_settings(effective) {
|
||||
Ok(()) => info!("Server config reloaded"),
|
||||
match state_for_poll.replace_settings(effective.clone()) {
|
||||
Ok(()) => {
|
||||
*shared_settings_for_poll
|
||||
.write()
|
||||
.expect("config lock poisoned") = effective;
|
||||
info!("Server config reloaded");
|
||||
}
|
||||
Err(err) => {
|
||||
warn!(error = %err, "Rejected reloaded server config, keeping previous");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -575,7 +575,6 @@ pub struct AppState {
|
|||
pub(crate) vault: Arc<AsyncRwLock<Vault>>,
|
||||
pub(super) server_secrets: ServerSecrets,
|
||||
pub(crate) provider_credentials: ProviderCredentials,
|
||||
pub(crate) settings: Arc<RwLock<SettingsLayer>>,
|
||||
manifest_defaults: RwLock<Arc<SettingsLayer>>,
|
||||
pub(crate) server_settings: RwLock<Arc<ServerSettings>>,
|
||||
pub(crate) env_lookup: EnvLookup,
|
||||
|
|
@ -797,7 +796,6 @@ impl AppState {
|
|||
let manifest_defaults = Arc::new(run_manifest::manifest_defaults_layer(&settings));
|
||||
resolve_canonical_origin(&resolved.server, &self.env_lookup).map_err(anyhow::Error::msg)?;
|
||||
|
||||
*self.settings.write().expect("settings lock poisoned") = settings;
|
||||
*self
|
||||
.manifest_defaults
|
||||
.write()
|
||||
|
|
@ -2646,7 +2644,6 @@ pub(crate) fn build_app_state(config: AppStateConfig) -> anyhow::Result<Arc<AppS
|
|||
vault,
|
||||
server_secrets,
|
||||
provider_credentials,
|
||||
settings,
|
||||
manifest_defaults: RwLock::new(current_manifest_defaults),
|
||||
server_settings: RwLock::new(current_server_settings),
|
||||
env_lookup: Arc::clone(&env_lookup),
|
||||
|
|
@ -7530,17 +7527,6 @@ root = "/srv/new"
|
|||
Some(RunMode::DryRun)
|
||||
);
|
||||
assert!(manifest_defaults.server.is_none());
|
||||
|
||||
let layer_root = state
|
||||
.settings
|
||||
.read()
|
||||
.expect("settings lock poisoned")
|
||||
.server
|
||||
.as_ref()
|
||||
.and_then(|server| server.storage.as_ref())
|
||||
.and_then(|storage| storage.root.as_ref())
|
||||
.map(InterpString::as_source);
|
||||
assert_eq!(layer_root.as_deref(), Some("/srv/new"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue