Skip to content

Commit 6b21462

Browse files
changed logic to throw exception in case of deployment mismatch between staging and remote
1 parent f8780ee commit 6b21462

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

server/src/storage/store_metadata.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,13 @@ pub async fn resolve_parseable_metadata() -> Result<StorageMetadata, ObjectStora
100100
let remote_metadata = storage.get_metadata().await?;
101101

102102
let check = match (staging_metadata, remote_metadata) {
103-
(Some(_staging), Some(remote)) => EnvChange::None(remote),
103+
(Some(staging), Some(remote)) => {
104+
if staging.deployment_id == remote.deployment_id {
105+
EnvChange::None(remote)
106+
} else {
107+
EnvChange::NewRemote
108+
}
109+
}
104110
(None, Some(remote)) => EnvChange::NewStaging(remote),
105111
(Some(_), None) => EnvChange::NewRemote,
106112
(None, None) => EnvChange::CreateBoth,
@@ -130,7 +136,7 @@ pub async fn resolve_parseable_metadata() -> Result<StorageMetadata, ObjectStora
130136
}
131137
EnvChange::CreateBoth => {
132138
create_dir_all(CONFIG.staging_dir())?;
133-
let metadata = StorageMetadata::new();
139+
let metadata = StorageMetadata::new();
134140
// new metadata needs to be set on both staging and remote
135141
overwrite_remote = true;
136142
overwrite_staging = true;

0 commit comments

Comments
 (0)