Don't create the cache

attic-priv has functionality to getsert caches as they are requested.
This commit is contained in:
Cole Helbling 2024-01-18 11:06:19 -08:00
parent e8efa56401
commit 28eca6460d

View file

@ -1,10 +1,9 @@
use crate::error::{Error, Result}; use crate::error::{Error, Result};
use attic::api::v1::cache_config::{CreateCacheRequest, KeypairConfig};
use attic::cache::CacheSliceIdentifier; use attic::cache::CacheSliceIdentifier;
use attic::nix_store::{NixStore, StorePath}; use attic::nix_store::{NixStore, StorePath};
use attic_client::push::{PushSession, PushSessionConfig}; use attic_client::push::{PushSession, PushSessionConfig};
use attic_client::{ use attic_client::{
api::{ApiClient, ApiError}, api::ApiClient,
config::ServerConfig, config::ServerConfig,
push::{PushConfig, Pusher}, push::{PushConfig, Pusher},
}; };
@ -119,37 +118,15 @@ pub async fn init_cache(
) )
}; };
tracing::info!("Using cache {:?}.", cache_name); tracing::info!("Using cache {:?}", cache_name);
let cache = CacheSliceIdentifier::from_str(&cache_name)?; let cache = CacheSliceIdentifier::from_str(&cache_name)?;
// Create the cache.
let api = ApiClient::from_server_config(ServerConfig { let api = ApiClient::from_server_config(ServerConfig {
endpoint: flakehub_cache_server.to_string(), endpoint: flakehub_cache_server.to_string(),
token: netrc_entry.password.as_ref().cloned(), token: netrc_entry.password.as_ref().cloned(),
})?; })?;
let request = CreateCacheRequest {
keypair: KeypairConfig::Generate,
is_public: false,
priority: 39,
store_dir: "/nix/store".to_owned(),
upstream_cache_key_names: vec![],
};
if let Err(err) = api.create_cache(&cache, request).await {
match err.downcast_ref::<ApiError>() {
Some(ApiError::Structured(x)) if x.error == "CacheAlreadyExists" => {
tracing::info!("Cache {} already exists.", cache_name);
}
_ => {
return Err(Error::FlakeHub(err));
}
}
} else {
tracing::info!("Created cache {} on {}.", cache_name, flakehub_cache_server);
}
let cache_config = api.get_cache_config(&cache).await?; let cache_config = api.get_cache_config(&cache).await?;
let push_config = PushConfig { let push_config = PushConfig {