Skip to content

Commit

Permalink
cas: add a config to use casd cache for EdenFs
Browse files Browse the repository at this point in the history
Summary:
add a config to use casd cache for EdenFs

this would allow us to test different configuration

Reviewed By: lmvasquezg

Differential Revision: D62740168

fbshipit-source-id: 36b6345a1229ce18909d507881ca18164d60521c
  • Loading branch information
Liubov Dmitrieva authored and facebook-github-bot committed Sep 17, 2024
1 parent ba3d443 commit a42ca4b
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions eden/scm/lib/cas-client/rich-client/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,17 @@ use re_client_lib::CASDaemonClientCfg;
use re_client_lib::EmbeddedCASDaemonClientCfg;
use re_client_lib::REClient;
use re_client_lib::REClientBuilder;
use re_client_lib::RemoteCASdAddress;
use re_client_lib::RemoteCacheConfig;
use re_client_lib::RemoteExecutionMetadata;

pub const CAS_SOCKET_PATH: &str = "/run/casd/casd.socket";

pub struct RichCasClient {
client: re_cas_common::OnceCell<REClient>,
verbose: bool,
metadata: RemoteExecutionMetadata,
use_casd_cache: bool,
}

pub fn init() {
Expand All @@ -48,13 +53,16 @@ impl RichCasClient {
),
};

let use_casd_cache = config.get_or("cas", "use-shared-cache", || true)?;

Ok(Self {
client: Default::default(),
verbose: config.get_or_default("cas", "verbose")?,
metadata: RemoteExecutionMetadata {
use_case_id: use_case,
..Default::default()
},
use_casd_cache,
})
}

Expand All @@ -65,11 +73,17 @@ impl RichCasClient {
re_config.quiet_mode = !self.verbose;
re_config.features_config_path = "remote_execution/features/client_eden".to_string();

re_config.cas_client_config =
CASDaemonClientCfg::embedded_config(EmbeddedCASDaemonClientCfg {
name: "source_control".to_string(),
let mut embedded_config = EmbeddedCASDaemonClientCfg {
name: "source_control".to_string(),
..Default::default()
};
if self.use_casd_cache {
embedded_config.remote_cache_config = Some(RemoteCacheConfig {
address: RemoteCASdAddress::uds_path(CAS_SOCKET_PATH.to_string()),
..Default::default()
});
}
re_config.cas_client_config = CASDaemonClientCfg::embedded_config(embedded_config);

let builder = REClientBuilder::new(fbinit::expect_init())
.with_config(re_config)
Expand Down

0 comments on commit a42ca4b

Please sign in to comment.