diff options
Diffstat (limited to 'qpid/cpp/src/tests')
-rwxr-xr-x | qpid/cpp/src/tests/ha_test.py | 12 | ||||
-rwxr-xr-x | qpid/cpp/src/tests/ha_tests.py | 38 |
2 files changed, 43 insertions, 7 deletions
diff --git a/qpid/cpp/src/tests/ha_test.py b/qpid/cpp/src/tests/ha_test.py index d7885d9622..4efbfdba3d 100755 --- a/qpid/cpp/src/tests/ha_test.py +++ b/qpid/cpp/src/tests/ha_test.py @@ -100,7 +100,7 @@ class HaBroker(Broker): self.qpid_ha_script.main_except(["", "-b", url]+args) def promote(self): self.ready(); self.qpid_ha(["promote"]) - def set_client_url(self, url): self.qpid_ha(["set", "--public-url", url]) + def set_public_url(self, url): self.qpid_ha(["set", "--public-url", url]) def set_brokers_url(self, url): self.qpid_ha(["set", "--brokers-url", url]) def replicate(self, from_broker, queue): self.qpid_ha(["replicate", from_broker, queue]) @@ -113,10 +113,12 @@ class HaBroker(Broker): self._agent = QmfAgent(self.host_port()) return self._agent - def ha_status(self): + def qmf(self): hb = self.agent().getHaBroker() hb.update() - return hb.status + return hb + + def ha_status(self): return self.qmf().status def wait_status(self, status): def try_get_status(): @@ -234,7 +236,9 @@ class HaCluster(object): def update_urls(self): self.url = ",".join([b.host_port() for b in self]) if len(self) > 1: # No failover addresses on a 1 cluster. - for b in self: b.set_brokers_url(self.url) + for b in self: + b.set_brokers_url(self.url) + b.set_public_url(self.url) def connect(self, i): """Connect with reconnect_urls""" diff --git a/qpid/cpp/src/tests/ha_tests.py b/qpid/cpp/src/tests/ha_tests.py index ccb75d9cfd..b29ff42627 100755 --- a/qpid/cpp/src/tests/ha_tests.py +++ b/qpid/cpp/src/tests/ha_tests.py @@ -782,9 +782,9 @@ acl deny all all cluster[1].wait_queue("q0") cluster[1].wait_queue("q1") cluster[0].kill() - cluster[1].wait_queue("q1") # Not timed out yet - cluster[1].wait_no_queue("q1", timeout=2) # Wait for timeout - cluster[1].wait_no_queue("q0", timeout=2) + cluster[1].wait_queue("q1") # Not timed out yet + cluster[1].wait_no_queue("q1") # Wait for timeout + cluster[1].wait_no_queue("q0") def test_alt_exchange_dup(self): """QPID-4349: if a queue has an alterante exchange and is deleted the @@ -1135,6 +1135,38 @@ class RecoveryTests(HaBrokerTest): cluster.bounce(0, promote_next=False) cluster[0].promote() + +class ConfigurationTests(HaBrokerTest): + """Tests for configuration settings.""" + + def test_client_broker_url(self): + """Check that setting of broker and public URLs obeys correct defaulting + and precedence""" + + def check(broker, brokers, public): + qmf = broker.qmf() + self.assertEqual(brokers, qmf.brokersUrl) + self.assertEqual(public, qmf.publicUrl) + + def start(brokers, public, known=None): + args=[] + if brokers: args.append("--ha-brokers-url="+brokers) + if public: args.append("--ha-public-url="+public) + if known: args.append("--known-hosts-url="+known) + return HaBroker(self, args=args) + + # Both set explictily, no defaulting + b = start("foo:123", "bar:456") + check(b, "amqp:tcp:foo:123", "amqp:tcp:bar:456") + b.set_brokers_url("foo:999") + check(b, "amqp:tcp:foo:999", "amqp:tcp:bar:456") + b.set_public_url("bar:999") + check(b, "amqp:tcp:foo:999", "amqp:tcp:bar:999") + + # Allow "none" to mean "not set" + b = start("none", "none") + check(b, "", "") + if __name__ == "__main__": shutil.rmtree("brokertest.tmp", True) qpid_ha = os.getenv("QPID_HA_EXEC") |