refactor(tvix/castore): factor out castore related ServiceUrls utils
Change-Id: Ib4cef49a9519ebf88a05035a7261badd312135f0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/13156 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
0bbeed166d
commit
a2e78b62ff
6 changed files with 195 additions and 30 deletions
|
|
@ -6,6 +6,7 @@ use std::{
|
|||
};
|
||||
use tokio::io::{self, AsyncWrite};
|
||||
|
||||
use tvix_castore::utils as castore_utils;
|
||||
use tvix_castore::{blobservice::BlobService, directoryservice::DirectoryService};
|
||||
use url::Url;
|
||||
|
||||
|
|
@ -36,19 +37,8 @@ pub struct CompositionConfigs {
|
|||
/// directly locally, like the `tvix-store daemon` command.
|
||||
#[derive(clap::Parser, Clone)]
|
||||
pub struct ServiceUrls {
|
||||
#[arg(
|
||||
long,
|
||||
env,
|
||||
default_value = "objectstore+file:///var/lib/tvix-store/blobs.object_store"
|
||||
)]
|
||||
blob_service_addr: String,
|
||||
|
||||
#[arg(
|
||||
long,
|
||||
env,
|
||||
default_value = "redb:///var/lib/tvix-store/directories.redb"
|
||||
)]
|
||||
directory_service_addr: String,
|
||||
#[clap(flatten)]
|
||||
castore_service_addrs: castore_utils::ServiceUrls,
|
||||
|
||||
#[arg(long, env, default_value = "redb:///var/lib/tvix-store/pathinfo.redb")]
|
||||
path_info_service_addr: String,
|
||||
|
|
@ -67,11 +57,8 @@ pub struct ServiceUrls {
|
|||
/// from another running tvix daemon, via gRPC.
|
||||
#[derive(clap::Parser, Clone)]
|
||||
pub struct ServiceUrlsGrpc {
|
||||
#[arg(long, env, default_value = "grpc+http://[::1]:8000")]
|
||||
blob_service_addr: String,
|
||||
|
||||
#[arg(long, env, default_value = "grpc+http://[::1]:8000")]
|
||||
directory_service_addr: String,
|
||||
#[clap(flatten)]
|
||||
castore_service_addrs: castore_utils::ServiceUrlsGrpc,
|
||||
|
||||
#[arg(long, env, default_value = "grpc+http://[::1]:8000")]
|
||||
path_info_service_addr: String,
|
||||
|
|
@ -90,11 +77,8 @@ pub struct ServiceUrlsGrpc {
|
|||
/// to interpret.
|
||||
#[derive(clap::Parser, Clone)]
|
||||
pub struct ServiceUrlsMemory {
|
||||
#[arg(long, env, default_value = "memory://")]
|
||||
blob_service_addr: String,
|
||||
|
||||
#[arg(long, env, default_value = "memory://")]
|
||||
directory_service_addr: String,
|
||||
#[clap(flatten)]
|
||||
castore_service_addrs: castore_utils::ServiceUrlsMemory,
|
||||
|
||||
#[arg(long, env, default_value = "memory://")]
|
||||
path_info_service_addr: String,
|
||||
|
|
@ -107,8 +91,7 @@ pub struct ServiceUrlsMemory {
|
|||
impl From<ServiceUrlsGrpc> for ServiceUrls {
|
||||
fn from(urls: ServiceUrlsGrpc) -> ServiceUrls {
|
||||
ServiceUrls {
|
||||
blob_service_addr: urls.blob_service_addr,
|
||||
directory_service_addr: urls.directory_service_addr,
|
||||
castore_service_addrs: urls.castore_service_addrs.into(),
|
||||
path_info_service_addr: urls.path_info_service_addr,
|
||||
#[cfg(feature = "xp-composition-cli")]
|
||||
experimental_store_composition: urls.experimental_store_composition,
|
||||
|
|
@ -119,8 +102,7 @@ impl From<ServiceUrlsGrpc> for ServiceUrls {
|
|||
impl From<ServiceUrlsMemory> for ServiceUrls {
|
||||
fn from(urls: ServiceUrlsMemory) -> ServiceUrls {
|
||||
ServiceUrls {
|
||||
blob_service_addr: urls.blob_service_addr,
|
||||
directory_service_addr: urls.directory_service_addr,
|
||||
castore_service_addrs: urls.castore_service_addrs.into(),
|
||||
path_info_service_addr: urls.path_info_service_addr,
|
||||
#[cfg(feature = "xp-composition-cli")]
|
||||
experimental_store_composition: urls.experimental_store_composition,
|
||||
|
|
@ -145,8 +127,8 @@ pub async fn addrs_to_configs(
|
|||
|
||||
let mut configs: CompositionConfigs = Default::default();
|
||||
|
||||
let blob_service_url = Url::parse(&urls.blob_service_addr)?;
|
||||
let directory_service_url = Url::parse(&urls.directory_service_addr)?;
|
||||
let blob_service_url = Url::parse(&urls.castore_service_addrs.blob_service_addr)?;
|
||||
let directory_service_url = Url::parse(&urls.castore_service_addrs.directory_service_addr)?;
|
||||
let path_info_service_url = Url::parse(&urls.path_info_service_addr)?;
|
||||
|
||||
configs.blobservices.insert(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue