fix: ofga version compare (#6339)

This commit is contained in:
Hengfei Yang
2025-03-20 00:37:28 +08:00
committed by GitHub
parent 3f215526f2
commit f3fe0d4ba9
+21 -24
View File
@@ -15,8 +15,6 @@
mod migrations;
use std::cmp::Ordering;
use hashbrown::HashSet;
use infra::dist_lock;
use o2_enterprise::enterprise::{
@@ -73,28 +71,27 @@ pub async fn init() -> Result<(), anyhow::Error> {
db::ofga::set_ofga_model_to_db(meta_model).await?;
}
(Some(meta_model), Some(existing_model)) => {
match meta_model.version.cmp(&existing_model.version) {
Ordering::Less => {
log::info!(
"[OFGA:SuperCluster] model version changed: {} -> {}",
existing_model.version,
meta_model.version
);
// update version in super cluster
set_model(Some(existing_model.clone())).await?;
}
Ordering::Greater => {
log::info!(
"[OFGA:SuperCluster] model version changed: {} -> {}",
existing_model.version,
meta_model.version
);
// update version in local
existing_meta = Some(meta_model.clone());
migrate_native_objects = false;
db::ofga::set_ofga_model_to_db(meta_model).await?;
}
Ordering::Equal => {}
let meta_version = version_compare::Version::from(&meta_model.version).unwrap();
let existing_version =
version_compare::Version::from(&existing_model.version).unwrap();
if meta_version < existing_version {
log::info!(
"[OFGA:SuperCluster] model version changed: {} -> {}",
existing_model.version,
meta_model.version
);
// update version in super cluster
set_model(Some(existing_model.clone())).await?;
} else if meta_version > existing_version {
log::info!(
"[OFGA:SuperCluster] model version changed: {} -> {}",
existing_model.version,
meta_model.version
);
// update version in local
existing_meta = Some(meta_model.clone());
migrate_native_objects = false;
db::ofga::set_ofga_model_to_db(meta_model).await?;
}
}
_ => {}