refactor(snix/castore): Use ServiceUrls in snix-castore command parsing
Change-Id: Ia7a6b5de215e8bd9b9f6987ae7b22b2f485bd61a Reviewed-on: https://cl.snix.dev/c/snix/+/30644 Reviewed-by: Florian Klink <flokli@flokli.de> Tested-by: besadii
This commit is contained in:
		
							parent
							
								
									d14693ca80
								
							
						
					
					
						commit
						05a9715a20
					
				
					 1 changed files with 16 additions and 58 deletions
				
			
		|  | @ -1,7 +1,6 @@ | ||||||
| use clap::{Parser, Subcommand}; | use clap::{Parser, Subcommand}; | ||||||
| #[cfg(any(feature = "fuse", feature = "virtiofs"))] | #[cfg(any(feature = "fuse", feature = "virtiofs"))] | ||||||
| use snix_castore::B3Digest; | use snix_castore::B3Digest; | ||||||
| use snix_castore::Node; |  | ||||||
| #[cfg(feature = "fs")] | #[cfg(feature = "fs")] | ||||||
| use snix_castore::fs::SnixStoreFs; | use snix_castore::fs::SnixStoreFs; | ||||||
| #[cfg(feature = "fuse")] | #[cfg(feature = "fuse")] | ||||||
|  | @ -9,6 +8,7 @@ use snix_castore::fs::fuse::FuseDaemon; | ||||||
| #[cfg(feature = "virtiofs")] | #[cfg(feature = "virtiofs")] | ||||||
| use snix_castore::fs::virtiofs::start_virtiofs_daemon; | use snix_castore::fs::virtiofs::start_virtiofs_daemon; | ||||||
| use snix_castore::import::{archive::ingest_archive, fs::ingest_path}; | use snix_castore::import::{archive::ingest_archive, fs::ingest_path}; | ||||||
|  | use snix_castore::{Node, utils::ServiceUrls}; | ||||||
| use std::error::Error; | use std::error::Error; | ||||||
| use std::io::Write; | use std::io::Write; | ||||||
| use std::path::PathBuf; | use std::path::PathBuf; | ||||||
|  | @ -30,21 +30,8 @@ enum Commands { | ||||||
|         #[arg(value_name = "INPUT")] |         #[arg(value_name = "INPUT")] | ||||||
|         input: PathBuf, |         input: PathBuf, | ||||||
| 
 | 
 | ||||||
|         /// Address of the blob service
 |         #[clap(flatten)] | ||||||
|         #[arg(
 |         service_addrs: ServiceUrls, | ||||||
|             long, |  | ||||||
|             env = "BLOB_SERVICE_ADDR", |  | ||||||
|             default_value = "grpc+http://[::1]:8000" |  | ||||||
|         )] |  | ||||||
|         blob_service_addr: String, |  | ||||||
| 
 |  | ||||||
|         /// Address of the directory service
 |  | ||||||
|         #[arg(
 |  | ||||||
|             long, |  | ||||||
|             env = "DIRECTORY_SERVICE_ADDR", |  | ||||||
|             default_value = "grpc+http://[::1]:8000" |  | ||||||
|         )] |  | ||||||
|         directory_service_addr: String, |  | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     #[cfg(feature = "fuse")] |     #[cfg(feature = "fuse")] | ||||||
|  | @ -58,21 +45,8 @@ enum Commands { | ||||||
|         #[arg(value_name = "OUTPUT")] |         #[arg(value_name = "OUTPUT")] | ||||||
|         output: PathBuf, |         output: PathBuf, | ||||||
| 
 | 
 | ||||||
|         /// Address of the blob service
 |         #[clap(flatten)] | ||||||
|         #[arg(
 |         service_addrs: ServiceUrls, | ||||||
|             long, |  | ||||||
|             env = "BLOB_SERVICE_ADDR", |  | ||||||
|             default_value = "grpc+http://[::1]:8000" |  | ||||||
|         )] |  | ||||||
|         blob_service_addr: String, |  | ||||||
| 
 |  | ||||||
|         /// Address of the directory service
 |  | ||||||
|         #[arg(
 |  | ||||||
|             long, |  | ||||||
|             env = "DIRECTORY_SERVICE_ADDR", |  | ||||||
|             default_value = "grpc+http://[::1]:8000" |  | ||||||
|         )] |  | ||||||
|         directory_service_addr: String, |  | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     #[cfg(feature = "virtiofs")] |     #[cfg(feature = "virtiofs")] | ||||||
|  | @ -86,21 +60,8 @@ enum Commands { | ||||||
|         #[arg(value_name = "OUTPUT")] |         #[arg(value_name = "OUTPUT")] | ||||||
|         output: PathBuf, |         output: PathBuf, | ||||||
| 
 | 
 | ||||||
|         /// Address of the blob service
 |         #[clap(flatten)] | ||||||
|         #[arg(
 |         service_addrs: ServiceUrls, | ||||||
|             long, |  | ||||||
|             env = "BLOB_SERVICE_ADDR", |  | ||||||
|             default_value = "grpc+http://[::1]:8000" |  | ||||||
|         )] |  | ||||||
|         blob_service_addr: String, |  | ||||||
| 
 |  | ||||||
|         /// Address of the directory service
 |  | ||||||
|         #[arg(
 |  | ||||||
|             long, |  | ||||||
|             env = "DIRECTORY_SERVICE_ADDR", |  | ||||||
|             default_value = "grpc+http://[::1]:8000" |  | ||||||
|         )] |  | ||||||
|         directory_service_addr: String, |  | ||||||
|     }, |     }, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -124,12 +85,11 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> { | ||||||
|             match cli.command { |             match cli.command { | ||||||
|                 Commands::Ingest { |                 Commands::Ingest { | ||||||
|                     input, |                     input, | ||||||
|                     blob_service_addr, |                     service_addrs, | ||||||
|                     directory_service_addr, |  | ||||||
|                 } => { |                 } => { | ||||||
|                     let blob_service = snix_castore::blobservice::from_addr(&blob_service_addr).await?; |                     let blob_service = snix_castore::blobservice::from_addr(&service_addrs.blob_service_addr).await?; | ||||||
|                     let directory_service = |                     let directory_service = | ||||||
|                         snix_castore::directoryservice::from_addr(&directory_service_addr).await?; |                         snix_castore::directoryservice::from_addr(&service_addrs.directory_service_addr).await?; | ||||||
|                     let metadata = fs::metadata(&input).await?; |                     let metadata = fs::metadata(&input).await?; | ||||||
|                     let node = if metadata.is_dir() { |                     let node = if metadata.is_dir() { | ||||||
|                         ingest_path::<_, _, _, &[u8]>(&blob_service, &directory_service, &input, None) |                         ingest_path::<_, _, _, &[u8]>(&blob_service, &directory_service, &input, None) | ||||||
|  | @ -150,12 +110,11 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> { | ||||||
|                 Commands::Mount { |                 Commands::Mount { | ||||||
|                     digest, |                     digest, | ||||||
|                     output, |                     output, | ||||||
|                     blob_service_addr, |                     service_addrs, | ||||||
|                     directory_service_addr, |  | ||||||
|                 } => { |                 } => { | ||||||
|                     let blob_service = snix_castore::blobservice::from_addr(&blob_service_addr).await?; |                     let blob_service = snix_castore::blobservice::from_addr(&service_addrs.blob_service_addr).await?; | ||||||
|                     let directory_service = |                     let directory_service = | ||||||
|                         snix_castore::directoryservice::from_addr(&directory_service_addr).await?; |                         snix_castore::directoryservice::from_addr(&service_addrs.directory_service_addr).await?; | ||||||
|                     let digest: B3Digest = digest.parse()?; |                     let digest: B3Digest = digest.parse()?; | ||||||
|                     let root_nodes_provider = directory_service |                     let root_nodes_provider = directory_service | ||||||
|                         .get(&digest) |                         .get(&digest) | ||||||
|  | @ -186,12 +145,11 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> { | ||||||
|                 Commands::Virtiofs { |                 Commands::Virtiofs { | ||||||
|                     digest, |                     digest, | ||||||
|                     output, |                     output, | ||||||
|                     blob_service_addr, |                     service_addrs, | ||||||
|                     directory_service_addr, |  | ||||||
|                 } => { |                 } => { | ||||||
|                     let blob_service = snix_castore::blobservice::from_addr(&blob_service_addr).await?; |                     let blob_service = snix_castore::blobservice::from_addr(&service_addrs.blob_service_addr).await?; | ||||||
|                     let directory_service = |                     let directory_service = | ||||||
|                         snix_castore::directoryservice::from_addr(&directory_service_addr).await?; |                         snix_castore::directoryservice::from_addr(&service_addrs.directory_service_addr).await?; | ||||||
|                     let digest: B3Digest = digest.parse()?; |                     let digest: B3Digest = digest.parse()?; | ||||||
|                     let root_nodes_provider = directory_service |                     let root_nodes_provider = directory_service | ||||||
|                         .get(&digest) |                         .get(&digest) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue