diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/ha/BrokerReplicator.cpp | 2 | ||||
-rw-r--r-- | cpp/src/qpid/ha/Enum.cpp | 2 | ||||
-rw-r--r-- | cpp/src/qpid/ha/Enum.h | 4 | ||||
-rw-r--r-- | cpp/src/qpid/ha/HaBroker.cpp | 16 | ||||
-rw-r--r-- | cpp/src/qpid/ha/HaBroker.h | 2 | ||||
-rwxr-xr-x | cpp/src/tests/ha_tests.py | 4 |
6 files changed, 15 insertions, 15 deletions
diff --git a/cpp/src/qpid/ha/BrokerReplicator.cpp b/cpp/src/qpid/ha/BrokerReplicator.cpp index 1041062997..ee6b6e42fb 100644 --- a/cpp/src/qpid/ha/BrokerReplicator.cpp +++ b/cpp/src/qpid/ha/BrokerReplicator.cpp @@ -201,7 +201,7 @@ void BrokerReplicator::initializeBridge(Bridge& bridge, SessionHandler& sessionH case READY: // FIXME aconway 2012-04-27: distinguish ready case, reconnect to other backup. break; - case PROMOTING: + case RECOVERING: case ACTIVE: // FIXME aconway 2012-04-27: link is connected to self! // Promotion should close the link before allowing connections. diff --git a/cpp/src/qpid/ha/Enum.cpp b/cpp/src/qpid/ha/Enum.cpp index fda2976ad3..a5ee7ea51f 100644 --- a/cpp/src/qpid/ha/Enum.cpp +++ b/cpp/src/qpid/ha/Enum.cpp @@ -53,7 +53,7 @@ template <> const char* Enum<ReplicateLevel>::NAMES[] = { template <> const size_t Enum<ReplicateLevel>::N = 3; template <> const char* Enum<BrokerStatus>::NAMES[] = { - "joining", "catchup", "ready", "promoting", "active", + "joining", "catchup", "ready", "recovering", "active", "standalone", "broker status" }; template <> const size_t Enum<BrokerStatus>::N = 7; diff --git a/cpp/src/qpid/ha/Enum.h b/cpp/src/qpid/ha/Enum.h index 82d087b768..adad21d2d4 100644 --- a/cpp/src/qpid/ha/Enum.h +++ b/cpp/src/qpid/ha/Enum.h @@ -81,13 +81,13 @@ enum BrokerStatus { JOINING, ///< New broker, looking for primary CATCHUP, ///< Backup: Connected to primary, catching up on state. READY, ///< Backup: Caught up, ready to take over. - PROMOTING, ///< Primary: waiting for backups to connect & sync + RECOVERING, ///< Primary: waiting for backups to connect & sync ACTIVE, ///< Primary: actively serving clients. STANDALONE ///< Not part of a cluster. }; inline bool isPrimary(BrokerStatus s) { - return s == PROMOTING || s == ACTIVE || s == STANDALONE; + return s == RECOVERING || s == ACTIVE || s == STANDALONE; } inline bool isBackup(BrokerStatus s) { return !isPrimary(s); } diff --git a/cpp/src/qpid/ha/HaBroker.cpp b/cpp/src/qpid/ha/HaBroker.cpp index bc5e9927c2..9caa96a607 100644 --- a/cpp/src/qpid/ha/HaBroker.cpp +++ b/cpp/src/qpid/ha/HaBroker.cpp @@ -85,8 +85,8 @@ HaBroker::HaBroker(broker::Broker& b, const Settings& s) HaBroker::~HaBroker() {} -void HaBroker::promoting(sys::Mutex::ScopedLock&) { - setStatus(PROMOTING); +void HaBroker::recover(sys::Mutex::ScopedLock&) { + setStatus(RECOVERING); backup.reset(); // No longer replicating, close link. primary.reset(new Primary(*this)); // Starts primary-ready check. } @@ -133,10 +133,10 @@ Manageable::status_t HaBroker::ManagementMethod (uint32_t methodId, Args& args, // FIXME aconway 2012-04-27: don't allow promotion in catch-up // QPID_LOG(error, logPrefix << "Still catching up, cannot be promoted."); // throw Exception("Still catching up, cannot be promoted."); - promoting(l); + recover(l); break; - case READY: promoting(l); break; - case PROMOTING: break; + case READY: recover(l); break; + case RECOVERING: break; case ACTIVE: break; case STANDALONE: break; } @@ -237,12 +237,12 @@ namespace { bool checkTransition(BrokerStatus from, BrokerStatus to) { // Legal state transitions. Initial state is JOINING, ACTIVE is terminal. static const BrokerStatus TRANSITIONS[][2] = { - { CATCHUP, PROMOTING }, // FIXME aconway 2012-04-27: illegal transition, allow while fixing behavior + { CATCHUP, RECOVERING }, // FIXME aconway 2012-04-27: illegal transition, allow while fixing behavior { JOINING, CATCHUP }, // Connected to primary { JOINING, ACTIVE }, // Chosen as initial primary. { CATCHUP, READY }, // Caught up all queues, ready to take over. - { READY, PROMOTING }, // Chosen as new primary - { PROMOTING, ACTIVE } + { READY, RECOVERING }, // Chosen as new primary + { RECOVERING, ACTIVE } }; static const size_t N = sizeof(TRANSITIONS)/sizeof(TRANSITIONS[0]); for (size_t i = 0; i < N; ++i) { diff --git a/cpp/src/qpid/ha/HaBroker.h b/cpp/src/qpid/ha/HaBroker.h index b3f2c1a941..ebd4836e71 100644 --- a/cpp/src/qpid/ha/HaBroker.h +++ b/cpp/src/qpid/ha/HaBroker.h @@ -98,7 +98,7 @@ class HaBroker : public management::Manageable bool isPrimary(const sys::Mutex::ScopedLock&) { return !backup.get(); } void setStatus(BrokerStatus, sys::Mutex::ScopedLock&); - void promoting(sys::Mutex::ScopedLock&); + void recover(sys::Mutex::ScopedLock&); void activate(sys::Mutex::ScopedLock&); void statusChanged(sys::Mutex::ScopedLock&); diff --git a/cpp/src/tests/ha_tests.py b/cpp/src/tests/ha_tests.py index 96cf843775..3126b757f9 100755 --- a/cpp/src/tests/ha_tests.py +++ b/cpp/src/tests/ha_tests.py @@ -603,7 +603,7 @@ class ReplicationTests(BrokerTest): test("excl_sub;{create:always, link:{x-subscribe:{exclusive:True}}}"); test("excl_queue;{create:always, node:{x-declare:{exclusive:True}}}") - def test_promoting(self): + def test_recovering(self): """Verify that the primary broker does not go active until expected backups have connected or timeout expires.""" cluster = HaCluster(self, 3, args=["--ha-expected-backups=2"]) @@ -620,7 +620,7 @@ class ReplicationTests(BrokerTest): # Verify in logs that all queue catch-up happened before the transition to active. log = open(cluster[1].log).read() - i = log.find("Status change: promoting -> active") + i = log.find("Status change: recovering -> active") self.failIf(i < 0) self.assertEqual(log.find("caught up", i), -1) |