Skip to content
This repository has been archived by the owner on Mar 3, 2020. It is now read-only.

Commit

Permalink
KEP-497 Made review changes
Browse files Browse the repository at this point in the history
  • Loading branch information
rnistuk committed Sep 14, 2018
1 parent 0ef6aa8 commit 9a803fa
Showing 1 changed file with 36 additions and 25 deletions.
61 changes: 36 additions & 25 deletions raft/raft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1238,16 +1238,15 @@ raft::shutdown_on_exceeded_max_storage(bool do_throw)
}
}


bzn::message raft::to_peer_message(const peer_address_t& address)
void
raft::set_audit_enabled(bool val)
{
this->enable_audit = val;
}

void
raft::handle_get_peers(std::shared_ptr<bzn::session_base>& session)

bzn::message
raft::to_peer_message(const peer_address_t& address)
{
bzn::message bzn;
bzn["port"] = address.port;
Expand All @@ -1259,32 +1258,44 @@ raft::handle_get_peers(std::shared_ptr<bzn::session_base>& session)
}


void raft::handle_get_peers(std::shared_ptr<bzn::session_base> session)
void
raft::to_peer_message(const peer_address_t& address)
{
bzn::message msg;
msg["error"] = ERROR_GET_PEERS_SELECTED_NODE_IN_UNKNOWN_STATE;
bzn::message bzn;
bzn["port"] = address.port;
bzn["http_port"] = address.http_port;
bzn["host"] = address.host;
bzn["uuid"] = address.uuid;
bzn["name"] = address.name;
return bzn;
}

if (this->current_state == bzn::raft_state::follower)
{
LOG(error) << ERROR_GET_PEERS_MUST_BE_SENT_TO_LEADER;
msg["error"] = ERROR_GET_PEERS_MUST_BE_SENT_TO_LEADER;
msg["message"]["leader"] = this->to_peer_message(this->get_leader_unsafe());
}

if (this->current_state == bzn::raft_state::candidate)
{
LOG(error) << ERROR_GET_PEERS_ELECTION_IN_PROGRESS_TRY_LATER;
msg["error"] = ERROR_GET_PEERS_ELECTION_IN_PROGRESS_TRY_LATER;
}
void
raft::handle_get_peers(std::shared_ptr<bzn::session_base> session)
{
bzn::message msg;

if (this->current_state == bzn::raft_state::leader)
switch (this->current_state)
{
msg.removeMember("error");
for(const auto& peer : this->get_all_peers())
{
msg["message"].append(this->to_peer_message(peer));
}
case bzn::raft_state::candidate:
LOG(error) << ERROR_GET_PEERS_ELECTION_IN_PROGRESS_TRY_LATER;
msg["error"] = ERROR_GET_PEERS_ELECTION_IN_PROGRESS_TRY_LATER;
break;
case bzn::raft_state::follower:
LOG(error) << ERROR_GET_PEERS_MUST_BE_SENT_TO_LEADER;
msg["error"] = ERROR_GET_PEERS_MUST_BE_SENT_TO_LEADER;
msg["message"]["leader"] = this->to_peer_message(this->get_leader_unsafe());
break;
case bzn::raft_state::leader:
for(const auto& peer : this->get_all_peers())
{
msg["message"].append(this->to_peer_message(peer));
}
break;
default:
msg["error"] = ERROR_GET_PEERS_SELECTED_NODE_IN_UNKNOWN_STATE;
break;
}

session->send_message(std::make_shared<bzn::message>(msg), false);
}

0 comments on commit 9a803fa

Please sign in to comment.