From: Greg Farnum Date: Thu, 13 Jun 2019 17:26:43 +0000 (-0700) Subject: elector: create declare_standlone_victory in Elector/Logic for Monitor X-Git-Tag: v15.1.0~1791^2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=40339cd405b2d8dd12b54a5746dc05c9daeedc40;p=ceph.git elector: create declare_standlone_victory in Elector/Logic for Monitor This lets us make a few more ElectionLogic functions private. Signed-off-by: Greg Farnum --- diff --git a/src/mon/Elector.cc b/src/mon/Elector.cc index 626c6d33099a..dcf62b29fd36 100644 --- a/src/mon/Elector.cc +++ b/src/mon/Elector.cc @@ -131,6 +131,12 @@ void Elector::_bump_epoch() mon->join_election(); } +void ElectionLogic::declare_standalone_victory() +{ + assert(elector_paxos_size() == 1 && elector_my_rank() == 0); + init(); + bump_epoch(epoch+1); +} void ElectionLogic::start() { diff --git a/src/mon/Elector.h b/src/mon/Elector.h index ba03f3a31583..02beaa11710b 100644 --- a/src/mon/Elector.h +++ b/src/mon/Elector.h @@ -38,8 +38,7 @@ public: ElectionLogic(Elector *e) : elector(e), epoch(0), participating(true), electing_me(false), leader_acked(-1) {} - void init(); - void bump_epoch(epoch_t e); + void declare_standalone_victory(); void start(); void defer(int who); void end_election_period(); @@ -49,6 +48,8 @@ public: private: + void init(); + void bump_epoch(epoch_t e); void declare_victory(); // call-outs void persist_epoch(epoch_t e); @@ -401,13 +402,8 @@ private: */ epoch_t get_epoch() { return logic.epoch; } - /** - * advance_epoch - * - * increase election epoch by 1 - */ - void advance_epoch() { - logic.bump_epoch(logic.epoch + 1); + void declare_standalone_victory() { + logic.declare_standalone_victory(); } /** diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 89bc41985d0f..1b2860d1839d 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -2095,8 +2095,7 @@ void Monitor::win_standalone_election() // bump election epoch, in case the previous epoch included other // monitors; we need to be able to make the distinction. - elector.logic.init(); - elector.advance_epoch(); + elector.declare_standalone_victory(); rank = monmap->get_rank(name); ceph_assert(rank == 0);