From: Greg Farnum Date: Thu, 20 Jun 2019 17:44:20 +0000 (-0700) Subject: elector: make some more ElectionLogic members private X-Git-Tag: v15.1.0~1791^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=28729ea192281a034e65f932c7dbbb69853a8e78;p=ceph.git elector: make some more ElectionLogic members private Signed-off-by: Greg Farnum --- diff --git a/src/mon/ElectionLogic.h b/src/mon/ElectionLogic.h index 974ee3fca39a..f5451194b924 100644 --- a/src/mon/ElectionLogic.h +++ b/src/mon/ElectionLogic.h @@ -34,35 +34,37 @@ public: virtual void _start() = 0; virtual void _defer_to(int who) = 0; virtual void message_victory(const set& quorum) = 0; - virtual bool is_current_member(int rank) = 0; + virtual bool is_current_member(int ) = 0; virtual ~ElectionOwner() {} }; class ElectionLogic { -public: ElectionOwner *elector; CephContext *cct; epoch_t epoch = 0; + int leader_acked; +public: bool participating; bool electing_me; set acked_me; - int leader_acked; ElectionLogic(ElectionOwner *e, CephContext *c) : elector(e), cct(c), + leader_acked(-1), participating(true), - electing_me(false), leader_acked(-1) {} + electing_me(false) {} void declare_standalone_victory(); void start(); - void defer(int who); void end_election_period(); void receive_propose(epoch_t mepoch, int from); void receive_ack(int from, epoch_t from_epoch); bool receive_victory_claim(int from, epoch_t from_epoch); + epoch_t get_epoch() { return epoch; } private: void init(); void bump_epoch(epoch_t e); + void defer(int who); void declare_victory(); }; diff --git a/src/mon/Elector.cc b/src/mon/Elector.cc index a8ca4cd1efb8..e3eb3bd118cb 100644 --- a/src/mon/Elector.cc +++ b/src/mon/Elector.cc @@ -120,7 +120,7 @@ void Elector::_start() void Elector::_defer_to(int who) { - MMonElection *m = new MMonElection(MMonElection::OP_ACK, logic.epoch, mon->monmap); + MMonElection *m = new MMonElection(MMonElection::OP_ACK, get_epoch(), mon->monmap); m->mon_features = ceph::features::mon::get_supported(); m->mon_release = ceph_release(); mon->collect_metadata(&m->metadata); @@ -192,7 +192,7 @@ void Elector::message_victory(const set& quorum) p != quorum.end(); ++p) { if (*p == mon->rank) continue; - MMonElection *m = new MMonElection(MMonElection::OP_VICTORY, logic.epoch, + MMonElection *m = new MMonElection(MMonElection::OP_VICTORY, get_epoch(), mon->monmap); m->quorum = quorum; m->quorum_features = cluster_features; @@ -203,7 +203,7 @@ void Elector::message_victory(const set& quorum) } // tell monitor - mon->win_election(logic.epoch, quorum, + mon->win_election(get_epoch(), quorum, cluster_features, mon_features, min_mon_release, metadata); } @@ -257,7 +257,7 @@ void Elector::handle_ack(MonOpRequestRef op) dout(5) << "handle_ack from " << m->get_source() << dendl; int from = m->get_source().num(); - ceph_assert(m->epoch == logic.epoch); + ceph_assert(m->epoch == get_epoch()); uint64_t required_features = mon->get_required_features(); if ((required_features ^ m->get_connection()->get_features()) & required_features) { @@ -315,7 +315,7 @@ void Elector::handle_victory(MonOpRequestRef op) return; } - mon->lose_election(logic.epoch, m->quorum, from, + mon->lose_election(get_epoch(), m->quorum, from, m->quorum_features, m->mon_features, m->mon_release); // cancel my timer @@ -443,7 +443,7 @@ void Elector::dispatch(MonOpRequestRef op) return; } - if (em->epoch < logic.epoch) { + if (em->epoch < get_epoch()) { dout(5) << "old epoch, dropping" << dendl; break; } diff --git a/src/mon/Elector.h b/src/mon/Elector.h index e25208a4fa03..e6c39d35d6d7 100644 --- a/src/mon/Elector.h +++ b/src/mon/Elector.h @@ -368,7 +368,7 @@ class Elector : public ElectionOwner { * * @returns Our current epoch number */ - epoch_t get_epoch() { return logic.epoch; } + epoch_t get_epoch() { return logic.get_epoch(); } void declare_standalone_victory() { logic.declare_standalone_victory();