mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-19 11:06:17 +00:00
change pool idx to i32
This commit is contained in:
@@ -21,9 +21,9 @@ pub struct Endpoint {
|
||||
pub url: url::Url,
|
||||
pub is_local: bool,
|
||||
|
||||
pub pool_idx: Option<usize>,
|
||||
pub set_idx: Option<usize>,
|
||||
pub disk_idx: Option<usize>,
|
||||
pub pool_idx: i32,
|
||||
pub set_idx: i32,
|
||||
pub disk_idx: i32,
|
||||
}
|
||||
|
||||
impl Display for Endpoint {
|
||||
@@ -122,9 +122,9 @@ impl TryFrom<&str> for Endpoint {
|
||||
Ok(Endpoint {
|
||||
url,
|
||||
is_local,
|
||||
pool_idx: None,
|
||||
set_idx: None,
|
||||
disk_idx: None,
|
||||
pool_idx: -1,
|
||||
set_idx: -1,
|
||||
disk_idx: -1,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -141,17 +141,17 @@ impl Endpoint {
|
||||
|
||||
/// sets a specific pool number to this node
|
||||
pub fn set_pool_index(&mut self, idx: usize) {
|
||||
self.pool_idx = Some(idx)
|
||||
self.pool_idx = idx as i32
|
||||
}
|
||||
|
||||
/// sets a specific set number to this node
|
||||
pub fn set_set_index(&mut self, idx: usize) {
|
||||
self.set_idx = Some(idx)
|
||||
self.set_idx = idx as i32
|
||||
}
|
||||
|
||||
/// sets a specific disk number to this node
|
||||
pub fn set_disk_index(&mut self, idx: usize) {
|
||||
self.disk_idx = Some(idx)
|
||||
self.disk_idx = idx as i32
|
||||
}
|
||||
|
||||
/// resolves the host and updates if it is local or not.
|
||||
@@ -231,9 +231,9 @@ mod test {
|
||||
expected_endpoint: Some(Endpoint {
|
||||
url: root_slash_foo,
|
||||
is_local: true,
|
||||
pool_idx: None,
|
||||
set_idx: None,
|
||||
disk_idx: None,
|
||||
pool_idx: -1,
|
||||
set_idx: -1,
|
||||
disk_idx: -1,
|
||||
}),
|
||||
expected_type: Some(EndpointType::Path),
|
||||
expected_err: None,
|
||||
@@ -243,9 +243,9 @@ mod test {
|
||||
expected_endpoint: Some(Endpoint {
|
||||
url: u2,
|
||||
is_local: false,
|
||||
pool_idx: None,
|
||||
set_idx: None,
|
||||
disk_idx: None,
|
||||
pool_idx: -1,
|
||||
set_idx: -1,
|
||||
disk_idx: -1,
|
||||
}),
|
||||
expected_type: Some(EndpointType::Url),
|
||||
expected_err: None,
|
||||
@@ -255,9 +255,9 @@ mod test {
|
||||
expected_endpoint: Some(Endpoint {
|
||||
url: u4,
|
||||
is_local: false,
|
||||
pool_idx: None,
|
||||
set_idx: None,
|
||||
disk_idx: None,
|
||||
pool_idx: -1,
|
||||
set_idx: -1,
|
||||
disk_idx: -1,
|
||||
}),
|
||||
expected_type: Some(EndpointType::Url),
|
||||
expected_err: None,
|
||||
@@ -315,9 +315,9 @@ mod test {
|
||||
expected_endpoint: Some(Endpoint {
|
||||
url: u6,
|
||||
is_local: false,
|
||||
pool_idx: None,
|
||||
set_idx: None,
|
||||
disk_idx: None,
|
||||
pool_idx: -1,
|
||||
set_idx: -1,
|
||||
disk_idx: -1,
|
||||
}),
|
||||
expected_type: Some(EndpointType::Url),
|
||||
expected_err: None,
|
||||
|
||||
+24
-11
@@ -122,7 +122,7 @@ impl LocalDisk {
|
||||
let fm = FormatV3::try_from(s)?;
|
||||
let (set_idx, disk_idx) = fm.find_disk_index_by_disk_id(fm.erasure.this)?;
|
||||
|
||||
if Some(set_idx) != ep.set_idx || Some(disk_idx) != ep.disk_idx {
|
||||
if set_idx as i32 != ep.set_idx || disk_idx as i32 != ep.disk_idx {
|
||||
return Err(Error::from(DiskError::InconsistentDisk));
|
||||
}
|
||||
|
||||
@@ -768,9 +768,27 @@ impl DiskAPI for LocalDisk {
|
||||
|
||||
fn get_disk_location(&self) -> DiskLocation {
|
||||
DiskLocation {
|
||||
pool_idx: self.endpoint.pool_idx,
|
||||
set_idx: self.endpoint.set_idx,
|
||||
disk_idx: self.endpoint.pool_idx,
|
||||
pool_idx: {
|
||||
if self.endpoint.pool_idx < 0 {
|
||||
None
|
||||
} else {
|
||||
Some(self.endpoint.pool_idx as usize)
|
||||
}
|
||||
},
|
||||
set_idx: {
|
||||
if self.endpoint.set_idx < 0 {
|
||||
None
|
||||
} else {
|
||||
Some(self.endpoint.set_idx as usize)
|
||||
}
|
||||
},
|
||||
disk_idx: {
|
||||
if self.endpoint.disk_idx < 0 {
|
||||
None
|
||||
} else {
|
||||
Some(self.endpoint.disk_idx as usize)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -811,13 +829,8 @@ impl DiskAPI for LocalDisk {
|
||||
|
||||
let disk_id = fm.erasure.this;
|
||||
|
||||
match (self.endpoint.set_idx, self.endpoint.disk_idx) {
|
||||
(Some(set_idx), Some(disk_idx)) => {
|
||||
if m != set_idx || n != disk_idx {
|
||||
return Err(Error::new(DiskError::InconsistentDisk));
|
||||
}
|
||||
}
|
||||
_ => return Err(Error::new(DiskError::InconsistentDisk)),
|
||||
if m as i32 != self.endpoint.set_idx || n as i32 != self.endpoint.disk_idx {
|
||||
return Err(Error::new(DiskError::InconsistentDisk));
|
||||
}
|
||||
|
||||
format_info.id = Some(disk_id);
|
||||
|
||||
@@ -83,9 +83,27 @@ impl DiskAPI for RemoteDisk {
|
||||
|
||||
fn get_disk_location(&self) -> DiskLocation {
|
||||
DiskLocation {
|
||||
pool_idx: self.endpoint.pool_idx,
|
||||
set_idx: self.endpoint.set_idx,
|
||||
disk_idx: self.endpoint.pool_idx,
|
||||
pool_idx: {
|
||||
if self.endpoint.pool_idx < 0 {
|
||||
None
|
||||
} else {
|
||||
Some(self.endpoint.pool_idx as usize)
|
||||
}
|
||||
},
|
||||
set_idx: {
|
||||
if self.endpoint.set_idx < 0 {
|
||||
None
|
||||
} else {
|
||||
Some(self.endpoint.set_idx as usize)
|
||||
}
|
||||
},
|
||||
disk_idx: {
|
||||
if self.endpoint.disk_idx < 0 {
|
||||
None
|
||||
} else {
|
||||
Some(self.endpoint.disk_idx as usize)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user