Skip to content

Commit

Permalink
Issue-277: prevent cluster deployment if one peer is already deployed…
Browse files Browse the repository at this point in the history
… or in invalid state.

Co-authored-by: Anna Völker <anna.voelker@mercedes-benz.com>
Co-authored-by: Matthias Twardawski <matthias.twardawski@mercedes-benz.com>
  • Loading branch information
mtwardawski and voelkera committed Aug 19, 2024
1 parent b49991f commit 4ce80fd
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions opendut-carl/src/actions/peers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,6 @@ pub async fn store_peer_descriptor(params: StorePeerDescriptorParams) -> Result<
let peer_descriptor = params.peer_descriptor;
let resources_manager = params.resources_manager;

let get_peer_state_params = GetPeerStateParams {
peer: peer_id,
resources_manager: resources_manager.clone(),
};
let peer_state = get_peer_state(get_peer_state_params)
.await
.map_or(PeerState::Down, | peer_state | peer_state);

let is_new_peer = resources_manager.resources_mut(|resources| {
let old_peer_descriptor = resources.get::<PeerDescriptor>(peer_id)?;
let is_new_peer = old_peer_descriptor.is_none();
Expand Down Expand Up @@ -125,6 +117,9 @@ pub async fn store_peer_descriptor(params: StorePeerDescriptorParams) -> Result<
};
resources.insert(peer_id, peer_configuration2)?; //FIXME don't just insert, but rather update existing values via ID with intelligent logic (in a separate action)


let peer_state = resources.get::<PeerState>(peer_id)?
.unwrap_or(PeerState::Down); // If peer is new or no peer was found in the database, we consider it as PeerState::Down.
resources.insert(peer_id, peer_state)?;
resources.insert(peer_id, peer_descriptor)?;

Expand Down

0 comments on commit 4ce80fd

Please sign in to comment.