Skip to content

Commit 8d2feb9

Browse files
fix: server mode from All to Query (#988)
Upon migration from Standalone to Distributed mode, Query server should update the server mode from `All` to `Query` in `.parseable.json` in storage as well in staging
1 parent 46686dc commit 8d2feb9

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

server/src/storage/store_metadata.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,13 @@ pub async fn resolve_parseable_metadata(
204204
}
205205
};
206206

207-
let metadata = res.map_err(|err| {
207+
let mut metadata = res.map_err(|err| {
208208
let err = format!("{}. {}", err, JOIN_COMMUNITY);
209209
let err: Box<dyn std::error::Error + Send + Sync + 'static> = err.into();
210210
ObjectStorageError::UnhandledError(err)
211211
})?;
212212

213+
metadata.server_mode = CONFIG.parseable.mode.to_string();
213214
if overwrite_remote {
214215
put_remote_metadata(&metadata).await?;
215216
}
@@ -227,19 +228,19 @@ fn determine_environment(
227228
) -> EnvChange {
228229
match (staging_metadata, remote_metadata) {
229230
(Some(staging), Some(remote)) => {
230-
// if both staging and remote have same deployment id
231-
if staging.deployment_id == remote.deployment_id {
232-
EnvChange::None(remote)
233-
} else if Mode::from_string(&remote.server_mode).expect("server mode is valid here")
234-
== Mode::All
231+
// if both staging and remote have same deployment id but different server modes
232+
if staging.deployment_id == remote.deployment_id
233+
&& Mode::from_string(&remote.server_mode).expect("server mode is valid here")
234+
== Mode::All
235235
&& (CONFIG.parseable.mode == Mode::Query || CONFIG.parseable.mode == Mode::Ingest)
236236
{
237-
// if you are switching to distributed mode from standalone mode
238-
// it will create a new staging rather than a new remote
239237
EnvChange::NewStaging(remote)
240-
} else {
241-
// it is a new remote
238+
} else if staging.deployment_id != remote.deployment_id {
239+
// if deployment id is different
242240
EnvChange::NewRemote
241+
} else {
242+
// if deployment id is same
243+
EnvChange::None(remote)
243244
}
244245
}
245246
(None, Some(remote)) => EnvChange::NewStaging(remote),

0 commit comments

Comments
 (0)