]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
elector: store accessors for ElectionLogic
authorGreg Farnum <gfarnum@redhat.com>
Thu, 6 Jun 2019 15:55:45 +0000 (08:55 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Mon, 19 Aug 2019 20:04:59 +0000 (13:04 -0700)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/mon/Elector.cc
src/mon/Elector.h

index 41382f4a4c190b8f3116a9a3bb5e6a630be6f17f..fdaaf0dd0f5c22fde8c5cddf2f69d853c1c69e18 100644 (file)
@@ -31,6 +31,20 @@ static ostream& _prefix(std::ostream *_dout, Monitor *mon, epoch_t epoch) {
                << ").elector(" << epoch << ") ";
 }
 
+void ElectionLogic::persist_epoch(epoch_t e)
+{
+  auto t(std::make_shared<MonitorDBStore::Transaction>());
+  t->put(Monitor::MONITOR_NAME, "election_epoch", e);
+  mon->store->apply_transaction(t);
+}
+
+void ElectionLogic::validate_store()
+{
+  auto t(std::make_shared<MonitorDBStore::Transaction>());
+  t->put(Monitor::MONITOR_NAME, "election_writeable_test", rand());
+  int r = mon->store->apply_transaction(t);
+  ceph_assert(r >= 0);
+}
 
 void Elector::init()
 {
index 2b4b8020800a075a399b9790dd6628ea9e8cddc3..58e75f36aca45e95a0470f6ff666f9e7d6a5201b 100644 (file)
@@ -37,6 +37,10 @@ public:
 
   ElectionLogic(Elector *e) : elector(e), epoch(0),
                              electing_me(false), leader_acked(-1) {}
+private:
+  void persist_epoch(epoch_t e);
+  void validate_store();
+  
 };
 
 /**