From 36abfe27a17a314b21b3bcc897e030e517051771 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Tue, 4 Jun 2024 14:05:41 +0530 Subject: [PATCH 1/2] rename ingester to ingestor in migration --- server/src/migration/metadata_migration.rs | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/server/src/migration/metadata_migration.rs b/server/src/migration/metadata_migration.rs index 72bab9db6..a8c685f32 100644 --- a/server/src/migration/metadata_migration.rs +++ b/server/src/migration/metadata_migration.rs @@ -83,13 +83,22 @@ pub fn v2_v3(mut storage_metadata: JsonValue) -> JsonValue { // user is an object let user = user.as_object_mut().unwrap(); // take out privileges - let JsonValue::Array(privileges) = user.remove("role").expect("role exists for v2") else { + let JsonValue::Array(mut privileges) = user.remove("role").expect("role exists for v2") + else { panic!("privileges is an arrray") }; let mut roles = Vec::new(); if !privileges.is_empty() { + for privilege in privileges.iter_mut() { + let privilege_value = privilege.get_mut("privilege"); + if let Some(value) = privilege_value { + if value.as_str().unwrap() == "ingester" { + *value = JsonValue::String("ingestor".to_string()); + } + } + } let role_name = rand::distributions::Alphanumeric.sample_string(&mut rand::thread_rng(), 8); privileges_map.push((role_name.clone(), JsonValue::Array(privileges))); @@ -121,6 +130,20 @@ pub fn update_v3(mut storage_metadata: JsonValue) -> JsonValue { ); } + let roles = metadata.get_mut("roles").unwrap().as_object_mut().unwrap(); + for (_, privileges) in roles.iter_mut() { + let JsonValue::Array(privileges) = privileges else { + panic!("privileges is an array") + }; + for privilege in privileges.iter_mut() { + let privilege_value = privilege.get_mut("privilege"); + if let Some(value) = privilege_value { + if value.as_str().unwrap() == "ingester" { + *value = JsonValue::String("ingestor".to_string()); + } + } + } + } storage_metadata } From fc925436f5fb3152ca9a27daf1af142eea626286 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Tue, 4 Jun 2024 19:53:23 +0530 Subject: [PATCH 2/2] migrate metadata to v4 --- server/src/migration.rs | 20 ++++++++++++-------- server/src/migration/metadata_migration.rs | 3 ++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/server/src/migration.rs b/server/src/migration.rs index d8c89b578..3a682b861 100644 --- a/server/src/migration.rs +++ b/server/src/migration.rs @@ -54,16 +54,18 @@ pub async fn run_metadata_migration(config: &Config) -> anyhow::Result<()> { if let Some(storage_metadata) = storage_metadata { match get_version(&storage_metadata) { Some("v1") => { - let metadata = metadata_migration::v1_v3(storage_metadata); + let mut metadata = metadata_migration::v1_v3(storage_metadata); + metadata = metadata_migration::v3_v4(metadata); put_remote_metadata(&*object_store, &metadata).await?; } Some("v2") => { - let metadata = metadata_migration::v2_v3(storage_metadata); + let mut metadata = metadata_migration::v2_v3(storage_metadata); + metadata = metadata_migration::v3_v4(metadata); put_remote_metadata(&*object_store, &metadata).await?; } Some("v3") => { - let mdata = metadata_migration::update_v3(storage_metadata); - put_remote_metadata(&*object_store, &mdata).await?; + let metadata = metadata_migration::v3_v4(storage_metadata); + put_remote_metadata(&*object_store, &metadata).await?; } _ => (), } @@ -73,16 +75,18 @@ pub async fn run_metadata_migration(config: &Config) -> anyhow::Result<()> { if let Some(staging_metadata) = staging_metadata { match get_version(&staging_metadata) { Some("v1") => { - let metadata = metadata_migration::v1_v3(staging_metadata); + let mut metadata = metadata_migration::v1_v3(staging_metadata); + metadata = metadata_migration::v3_v4(metadata); put_staging_metadata(config, &metadata)?; } Some("v2") => { - let metadata = metadata_migration::v2_v3(staging_metadata); + let mut metadata = metadata_migration::v2_v3(staging_metadata); + metadata = metadata_migration::v3_v4(metadata); put_staging_metadata(config, &metadata)?; } Some("v3") => { - let mdata = metadata_migration::update_v3(staging_metadata); - put_staging_metadata(config, &mdata)?; + let metadata = metadata_migration::v3_v4(staging_metadata); + put_staging_metadata(config, &metadata)?; } _ => (), } diff --git a/server/src/migration/metadata_migration.rs b/server/src/migration/metadata_migration.rs index a8c685f32..bbe1c1548 100644 --- a/server/src/migration/metadata_migration.rs +++ b/server/src/migration/metadata_migration.rs @@ -119,8 +119,9 @@ pub fn v2_v3(mut storage_metadata: JsonValue) -> JsonValue { } // maybe rename -pub fn update_v3(mut storage_metadata: JsonValue) -> JsonValue { +pub fn v3_v4(mut storage_metadata: JsonValue) -> JsonValue { let metadata = storage_metadata.as_object_mut().unwrap(); + *metadata.get_mut("version").unwrap() = JsonValue::String("v4".to_string()); let sm = metadata.get("server_mode"); if sm.is_none() || sm.unwrap().as_str().unwrap() == "All" {