]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
elector: create declare_standlone_victory in Elector/Logic for Monitor
authorGreg Farnum <gfarnum@redhat.com>
Thu, 13 Jun 2019 17:26:43 +0000 (10:26 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Mon, 19 Aug 2019 20:04:59 +0000 (13:04 -0700)
This lets us make a few more ElectionLogic functions private.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/mon/Elector.cc
src/mon/Elector.h
src/mon/Monitor.cc

index 626c6d33099a3cca08c17ec2ae79193bf7f16e36..dcf62b29fd360159664e3fe1d0356211ed1a411a 100644 (file)
@@ -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()
 {
index ba03f3a315836ec80d7df918d1eefc0d76fae6e3..02beaa11710b6ab86a8a82461bc8c847e406f5d1 100644 (file)
@@ -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();
   }
 
   /**
index 89bc41985d0fcbb11e87d1ede8b71f87b7cc6c47..1b2860d1839d5ad137e4089de62f8f6117059dc2 100644 (file)
@@ -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);