Skip to content

Commit

Permalink
no_hardlinks to disable_hardlinks
Browse files Browse the repository at this point in the history
  • Loading branch information
mrchypark committed Sep 2, 2024
1 parent 74933a7 commit 4a63cb4
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 23 deletions.
36 changes: 18 additions & 18 deletions object_store_factory/src/local.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use std::sync::Arc;
pub struct LocalConfig {
pub data_dir: String,
#[serde(default = "default_false")]
pub no_hardlinks: bool,
pub disable_hardlinks: bool,
}

fn default_false() -> bool {
Expand All @@ -25,14 +25,14 @@ impl LocalConfig {
source: "Missing data_dir".into(),
})?
.clone(),
no_hardlinks: map.get("no_hardlinks").map(|s| s == "true").unwrap_or(false),
disable_hardlinks: map.get("disable_hardlinks").map(|s| s == "true").unwrap_or(false),
})
}

pub fn to_hashmap(&self) -> HashMap<String, String> {
let mut map = HashMap::new();
map.insert("data_dir".to_string(), self.data_dir.clone());
map.insert("no_hardlinks".to_string(), self.no_hardlinks.to_string());
map.insert("disable_hardlinks".to_string(), self.disable_hardlinks.to_string());
map
}

Expand All @@ -57,31 +57,31 @@ mod tests {
let config = LocalConfig::from_hashmap(&map)
.expect("Failed to create config from hashmap");
assert_eq!(config.data_dir, "/tmp/data".to_string());
assert_eq!(config.no_hardlinks, false); // Default value
assert_eq!(config.disable_hardlinks, false); // Default value
}

#[test]
fn test_config_from_hashmap_with_no_hardlinks() {
fn test_config_from_hashmap_with_disable_hardlinks() {
let mut map = HashMap::new();
map.insert("data_dir".to_string(), "/tmp/data".to_string());
map.insert("no_hardlinks".to_string(), "true".to_string());
map.insert("disable_hardlinks".to_string(), "true".to_string());

let config = LocalConfig::from_hashmap(&map)
.expect("Failed to create config from hashmap");
assert_eq!(config.data_dir, "/tmp/data".to_string());
assert_eq!(config.no_hardlinks, true);
assert_eq!(config.disable_hardlinks, true);
}

#[test]
fn test_config_from_hashmap_with_no_hardlinks_false() {
fn test_config_from_hashmap_with_disable_hardlinks_false() {
let mut map = HashMap::new();
map.insert("data_dir".to_string(), "/tmp/data".to_string());
map.insert("no_hardlinks".to_string(), "false".to_string());
map.insert("disable_hardlinks".to_string(), "false".to_string());

let config = LocalConfig::from_hashmap(&map)
.expect("Failed to create config from hashmap");
assert_eq!(config.data_dir, "/tmp/data".to_string());
assert_eq!(config.no_hardlinks, false);
assert_eq!(config.disable_hardlinks, false);
}

#[test]
Expand All @@ -102,7 +102,7 @@ mod tests {

let result = LocalConfig {
data_dir: data_dir.to_string(),
no_hardlinks: false,
disable_hardlinks: false,
}
.build_local_storage();
assert!(result.is_ok(), "Expected Ok, got Err: {:?}", result);
Expand All @@ -112,7 +112,7 @@ mod tests {
fn test_build_local_storage_with_invalid_path() {
let result = LocalConfig {
data_dir: "".to_string(),
no_hardlinks: false,
disable_hardlinks: false,
}
.build_local_storage();
assert!(result.is_err(), "Expected Err due to invalid path, got Ok");
Expand All @@ -122,13 +122,13 @@ mod tests {
fn test_to_hashmap() {
let local_config = LocalConfig {
data_dir: "path/to/data".to_string(),
no_hardlinks: true,
disable_hardlinks: true,
};

let hashmap = local_config.to_hashmap();

assert_eq!(hashmap.get("data_dir"), Some(&"path/to/data".to_string()));
assert_eq!(hashmap.get("no_hardlinks"), Some(&"true".to_string()));
assert_eq!(hashmap.get("disable_hardlinks"), Some(&"true".to_string()));
}

#[test]
Expand All @@ -146,20 +146,20 @@ mod tests {

let config: LocalConfig = serde_json::from_str(json).unwrap();
assert_eq!(config.data_dir, "/tmp/data");
assert_eq!(config.no_hardlinks, false);
assert_eq!(config.disable_hardlinks, false);
}

#[test]
fn test_deserialize_with_no_hardlinks() {
fn test_deserialize_with_disable_hardlinks() {
let json = r#"
{
"data_dir": "/tmp/data",
"no_hardlinks": true
"disable_hardlinks": true
}
"#;

let config: LocalConfig = serde_json::from_str(json).unwrap();
assert_eq!(config.data_dir, "/tmp/data");
assert_eq!(config.no_hardlinks, true);
assert_eq!(config.disable_hardlinks, true);
}
}
4 changes: 2 additions & 2 deletions src/config/schema.rs
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ cache_control = "private, max-age=86400"
SeafowlConfig {
object_store: Some(ObjectStoreConfig::Local(LocalConfig {
data_dir: "./seafowl-data".to_string(),
no_hardlinks: false,
disable_hardlinks: false,
})),
catalog: Some(Catalog::Postgres(Postgres {
dsn: "postgresql://user:pass@localhost:5432/somedb".to_string(),
Expand Down Expand Up @@ -733,7 +733,7 @@ cache_control = "private, max-age=86400"
SeafowlConfig {
object_store: Some(ObjectStoreConfig::Local(LocalConfig {
data_dir: "some_other_path".to_string(),
no_hardlinks: false,
disable_hardlinks: false,
})),
catalog: Some(Catalog::Sqlite(Sqlite {
dsn: "sqlite://file.sqlite".to_string(),
Expand Down
2 changes: 1 addition & 1 deletion src/context/delta.rs
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ mod tests {
Arc::new(LocalFileSystem::new_with_prefix(tmp_dir.path()).unwrap()),
ObjectStoreConfig::Local(LocalConfig {
data_dir: tmp_dir.path().to_string_lossy().to_string(),
no_hardlinks: false,
disable_hardlinks: false,
}),
),
Some(tmp_dir),
Expand Down
4 changes: 2 additions & 2 deletions src/object_store/wrapped.rs
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ impl ObjectStore for InternalObjectStore {
///
/// Will return an error if the destination already has an object.
async fn copy_if_not_exists(&self, from: &Path, to: &Path) -> Result<()> {
if let ObjectStoreConfig::Local(LocalConfig { no_hardlinks: true, .. }) = self.config {
if let ObjectStoreConfig::Local(LocalConfig { disable_hardlinks: true, .. }) = self.config {
return self.inner.copy(from, to).await;
}
self.inner.copy_if_not_exists(from, to).await
Expand All @@ -258,7 +258,7 @@ impl ObjectStore for InternalObjectStore {
// this with a lock too, so look into using that down the line instead.
return self.inner.rename(from, to).await;
}
if let ObjectStoreConfig::Local(LocalConfig { no_hardlinks: true, .. }) = self.config {
if let ObjectStoreConfig::Local(LocalConfig { disable_hardlinks: true, .. }) = self.config {
return self.inner.rename(from, to).await;
}
self.inner.rename_if_not_exists(from, to).await
Expand Down

0 comments on commit 4a63cb4

Please sign in to comment.