summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2011-08-09 20:19:54 +0000
committerGordon Sim <gsim@apache.org>2011-08-09 20:19:54 +0000
commitc54d50dc73c192810fb18c415f2ab95f6bfae00d (patch)
treef0caf569270b06bcdf5f0aeb164c38825c328e97
parent8d683e6b0ea229e9702555bd2317e5164d0aba89 (diff)
downloadqpid-python-c54d50dc73c192810fb18c415f2ab95f6bfae00d.tar.gz
QPID-3363: prevent bind/unbind on default exchange
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1155545 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/broker/Broker.cpp11
-rw-r--r--qpid/cpp/src/qpid/cluster/UpdateClient.cpp6
-rwxr-xr-xqpid/cpp/src/tests/federation_sys.py282
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py27
4 files changed, 38 insertions, 288 deletions
diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp
index 6eaf16b052..e02a013cd1 100644
--- a/qpid/cpp/src/qpid/broker/Broker.cpp
+++ b/qpid/cpp/src/qpid/broker/Broker.cpp
@@ -916,6 +916,9 @@ void Broker::bind(const std::string& queueName,
if (!acl->authorise(userId,acl::ACT_BIND,acl::OBJ_EXCHANGE,exchangeName,&params))
throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied exchange bind request from " << userId));
}
+ if (exchangeName.empty()) {
+ throw framing::NotAllowedException(QPID_MSG("Bind not allowed for default exchange"));
+ }
Queue::shared_ptr queue = queues.find(queueName);
Exchange::shared_ptr exchange = exchanges.get(exchangeName);
@@ -946,13 +949,15 @@ void Broker::unbind(const std::string& queueName,
if (!acl->authorise(userId,acl::ACT_UNBIND,acl::OBJ_EXCHANGE,exchangeName,&params) )
throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied exchange unbind request from " << userId));
}
-
+ if (exchangeName.empty()) {
+ throw framing::NotAllowedException(QPID_MSG("Unbind not allowed for default exchange"));
+ }
Queue::shared_ptr queue = queues.find(queueName);
Exchange::shared_ptr exchange = exchanges.get(exchangeName);
if (!queue) {
- throw framing::NotFoundException(QPID_MSG("Bind failed. No such queue: " << queueName));
+ throw framing::NotFoundException(QPID_MSG("Unbind failed. No such queue: " << queueName));
} else if (!exchange) {
- throw framing::NotFoundException(QPID_MSG("Bind failed. No such exchange: " << exchangeName));
+ throw framing::NotFoundException(QPID_MSG("Unbind failed. No such exchange: " << exchangeName));
} else {
if (exchange->unbind(queue, key, 0)) {
if (exchange->isDurable() && queue->isDurable()) {
diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp
index f306517d37..fc104e8ca9 100644
--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp
+++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp
@@ -402,7 +402,11 @@ void UpdateClient::updateNonExclusiveQueue(const boost::shared_ptr<broker::Queue
}
void UpdateClient::updateBinding(client::AsyncSession& s, const std::string& queue, const QueueBinding& binding) {
- s.exchangeBind(queue, binding.exchange, binding.key, binding.args);
+ if (binding.exchange.size())
+ s.exchangeBind(queue, binding.exchange, binding.key, binding.args);
+ //else its the default exchange and there is no need to replicate
+ //the binding, the creation of the queue will have done so
+ //automatically
}
void UpdateClient::updateOutputTask(const sys::OutputTask* task) {
diff --git a/qpid/cpp/src/tests/federation_sys.py b/qpid/cpp/src/tests/federation_sys.py
index 4e28156a29..11590f684e 100755
--- a/qpid/cpp/src/tests/federation_sys.py
+++ b/qpid/cpp/src/tests/federation_sys.py
@@ -574,7 +574,7 @@ class QmfTestBase010(TestBase010):
def _do_test(self,
test_name, # Name of test
- exch_name = "", # Remote exchange name
+ exch_name = "amq.direct", # Remote exchange name
exch_type = "direct", # Remote exchange type
exch_alt_exch = "", # Remote exchange alternate exchange
exch_alt_exch_type = "direct", # Remote exchange alternate exchange type
@@ -726,23 +726,6 @@ class B_LongTransactionTests(QmfTestBase010):
self._do_test(self._get_name(), queue_route_type_flag=True, enq_txn_size=10, msg_count = 103)
- def test_txEnq01_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1)
-
- def test_txEnq01_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1)
-
- def test_txEnq10_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=10, msg_count = 103)
-
- def test_txEnq10_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=10, msg_count = 103)
-
- def test_txEnq01_txDeq01_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, deq_txn_size=1)
-
- def test_txEnq01_txDeq01_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1)
def test_txEnq01_route_directExch(self):
@@ -825,25 +808,6 @@ class C_ShortClusterTests(QmfTestBase010):
class C_LongClusterTests(QmfTestBase010):
- def test_locCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", local_cluster_flag=True)
-
- def test_locCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, local_cluster_flag=True)
-
- def test_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", remote_cluster_flag=True)
-
- def test_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, remote_cluster_flag=True)
-
- def test_locCluster_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_locCluster_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, local_cluster_flag=True, remote_cluster_flag=True)
-
-
def test_locCluster_route_directExch(self):
self._do_test(self._get_name(), exch_name="testDirectExchange", local_cluster_flag=True)
@@ -961,61 +925,6 @@ class D_LongClusterTransactionTests(QmfTestBase010):
self._do_test(self._get_name(), queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
- def test_txEnq01_locCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_locCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq10_locCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=10, msg_count = 103, local_cluster_flag=True)
-
- def test_txEnq10_locCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq10_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=10, msg_count = 103, remote_cluster_flag=True)
-
- def test_txEnq10_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, deq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_locCluster_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_locCluster_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq10_locCluster_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq10_locCluster_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_remCluster_route_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_remCluster_queueRoute_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
-
def test_txEnq01_locCluster_route_directExch(self):
self._do_test(self._get_name(), exch_name="testDirectExchange", enq_txn_size=1, local_cluster_flag=True)
@@ -1198,18 +1107,6 @@ class E_ShortPersistenceTests(QmfTestBase010):
class E_LongPersistenceTests(QmfTestBase010):
- def test_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True)
-
- def test_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True)
-
- def test_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True)
-
- def test_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True)
-
def test_route_durQueue_directExch(self):
self._do_test(self._get_name(), exch_name="testDirectExchange", queue_durable_flag=True)
@@ -1292,41 +1189,6 @@ class F_LongPersistenceTransactionTests(QmfTestBase010):
self._do_test(self._get_name(), msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103)
- def test_txEnq01_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1)
-
- def test_txEnq01_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1)
-
- def test_txEnq01_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1)
-
- def test_txEnq01_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1)
-
- def test_txEnq10_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=10, msg_count = 103)
-
- def test_txEnq10_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=10, msg_count = 103)
-
- def test_txEnq10_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103)
-
- def test_txEnq10_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103)
-
- def test_txEnq01_txDeq01_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1)
-
- def test_txEnq01_txDeq01_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1)
-
- def test_txEnq01_txDeq01_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1)
-
- def test_txEnq01_txDeq01_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1)
def test_txEnq01_route_durQueue_directExch(self):
@@ -1481,41 +1343,6 @@ class G_ShortPersistenceClusterTests(QmfTestBase010):
class G_LongPersistenceClusterTests(QmfTestBase010):
- def test_locCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, local_cluster_flag=True)
-
- def test_locCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, local_cluster_flag=True)
-
- def test_locCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, local_cluster_flag=True)
-
- def test_locCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, local_cluster_flag=True)
-
- def test_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, remote_cluster_flag=True)
-
- def test_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, remote_cluster_flag=True)
-
- def test_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, remote_cluster_flag=True)
-
- def test_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, remote_cluster_flag=True)
-
- def test_locCluster_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_locCluster_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_locCluster_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_locCluster_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, local_cluster_flag=True, remote_cluster_flag=True)
def test_locCluster_route_durQueue_directExch(self):
@@ -1743,113 +1570,6 @@ class H_LongPersistenceClusterTransactionTests(QmfTestBase010):
self._do_test(self._get_name(), msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
- def test_txEnq01_locCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_locCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_locCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_locCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq10_locCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True)
-
- def test_txEnq10_locCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True)
-
- def test_txEnq10_locCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True)
-
- def test_txEnq10_locCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True)
-
- def test_txEnq01_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq10_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=10, msg_count = 103, remote_cluster_flag=True)
-
- def test_txEnq10_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=10, msg_count = 103, remote_cluster_flag=True)
-
- def test_txEnq10_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, remote_cluster_flag=True)
-
- def test_txEnq10_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, remote_cluster_flag=True)
-
- def test_txEnq01_locCluster_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_locCluster_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_locCluster_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_locCluster_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq10_locCluster_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq10_locCluster_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq10_locCluster_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq10_locCluster_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=10, msg_count = 103, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_remCluster_route_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_remCluster_route_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_remCluster_queueRoute_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
-
- def test_txEnq01_txDeq01_locCluster_remCluster_queueRoute_durMsg_durQueue_amqDirectExch(self):
- self._do_test(self._get_name(), exch_name="amq.direct", msg_durable_flag=True, queue_durable_flag=True, queue_route_type_flag=True, enq_txn_size=1, deq_txn_size=1, local_cluster_flag=True, remote_cluster_flag=True)
def test_txEnq01_locCluster_route_durQueue_directExch(self):
diff --git a/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py b/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py
index f51923fcf3..a0f0684bc8 100644
--- a/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py
+++ b/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py
@@ -226,8 +226,6 @@ class DefaultExchangeRuleTests(TestHelper, StandardExchangeVerifier):
# Test automatic binding by queue name.
self.queue_declare(queue="d")
self.assertPublishConsume(queue="d", routing_key="d")
- # Test explicit bind to default queue
- self.verifyDirectExchange("")
# TODO aconway 2006-09-27: Fill in empty tests:
@@ -460,7 +458,30 @@ class MiscellaneousErrorsTests(TestHelper):
self.fail("Expected 530 for redeclaration of exchange with different type.")
except SessionException, e:
self.assertEquals(530, e.args[0].error_code)
-
+
+ def testDefaultAccessBind(self):
+ try:
+ self.session.queue_declare(queue="my-queue", auto_delete=True, exclusive=True)
+ self.session.exchange_bind(exchange="", queue="my-queue", binding_key="another-key")
+ self.fail("Expected 530 (not-allowed) code for bind to default exchange.")
+ except SessionException, e:
+ self.assertEquals(530, e.args[0].error_code)
+
+ def testDefaultAccessUnbind(self):
+ try:
+ self.session.queue_declare(queue="my-queue", auto_delete=True, exclusive=True)
+ self.session.exchange_unbind(exchange="", queue="my-queue", binding_key="my-queue")
+ self.fail("Expected 530 (not-allowed) code for unbind from default exchange.")
+ except SessionException, e:
+ self.assertEquals(530, e.args[0].error_code)
+
+ def testDefaultAccessDelete(self):
+ try:
+ self.session.exchange_delete(exchange="")
+ self.fail("Expected 530 (not-allowed) code for delete of default exchange.")
+ except SessionException, e:
+ self.assertEquals(530, e.args[0].error_code)
+
class ExchangeTests(TestHelper):
def testHeadersBindNoMatchArg(self):
self.session.queue_declare(queue="q", exclusive=True, auto_delete=True)