Author: tross
Date: Fri Jun 15 18:35:34 2012
New Revision: 1350732

URL: http://svn.apache.org/viewvc?rev=1350732&view=rev
Log:
QPID-4066 - Allow configuration to override the broker's federation tag

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
    qpid/trunk/qpid/cpp/src/tests/federation.py
    qpid/trunk/qpid/cpp/src/tests/run_federation_tests

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=1350732&r1=1350731&r2=1350732&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Fri Jun 15 18:35:34 2012
@@ -173,6 +173,7 @@ Broker::Options::Options(const std::stri
         ("link-maintenace-interval", optValue(linkMaintenanceInterval, 
"SECONDS"))
         ("link-heartbeat-interval", optValue(linkHeartbeatInterval, "SECONDS"))
         ("max-negotiate-time", optValue(maxNegotiateTime, "MilliSeconds"), 
"Maximum time a connection can take to send the initial protocol negotiation")
+        ("federation-tag", optValue(fedTag, "NAME"), "Override the federation 
tag")
         ;
 }
 
@@ -244,8 +245,11 @@ Broker::Broker(const Broker::Options& co
         // management schema correct.
         Vhost* vhost = new Vhost(this, this);
         vhostObject = Vhost::shared_ptr(vhost);
-        framing::Uuid uuid(managementAgent->getUuid());
-        federationTag = uuid.str();
+        if (conf.fedTag.empty()) {
+            framing::Uuid uuid(managementAgent->getUuid());
+            federationTag = uuid.str();
+        } else
+            federationTag = conf.fedTag;
         vhostObject->setFederationTag(federationTag);
 
         queues.setParent(vhost);
@@ -254,8 +258,11 @@ Broker::Broker(const Broker::Options& co
     } else {
         // Management is disabled so there is no broker management ID.
         // Create a unique uuid to use as the federation tag.
-        framing::Uuid uuid(true);
-        federationTag = uuid.str();
+        if (conf.fedTag.empty()) {
+            framing::Uuid uuid(true);
+            federationTag = uuid.str();
+        } else
+            federationTag = conf.fedTag;
     }
 
     QueuePolicy::setDefaultMaxSize(conf.queueLimit);

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h?rev=1350732&r1=1350731&r2=1350732&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h Fri Jun 15 18:35:34 2012
@@ -128,6 +128,7 @@ class Broker : public sys::Runnable, pub
         double linkMaintenanceInterval; // FIXME aconway 2012-02-13: 
consistent parsing of SECONDS values.
         uint16_t linkHeartbeatInterval;
         uint32_t maxNegotiateTime;  // Max time in ms for connection with no 
negotiation
+        std::string fedTag;
 
       private:
         std::string getHome();

Modified: qpid/trunk/qpid/cpp/src/tests/federation.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/federation.py?rev=1350732&r1=1350731&r2=1350732&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/federation.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/federation.py Fri Jun 15 18:35:34 2012
@@ -394,6 +394,9 @@ class FederationTests(TestBase010):
         for i in range(1, 11):
             try:
                 msg = queue.get(timeout=5)
+                mp = msg.get("message_properties").application_headers
+                self.assertEqual(mp.__class__, dict)
+                self.assertEqual(mp['x-qpid.trace'], 'REMOTE') # check that 
the federation-tag override works
                 self.assertEqual("Message %d" % i, msg.body)
             except Empty:
                 self.fail("Failed to find expected message containing 'Message 
%d'" % i)

Modified: qpid/trunk/qpid/cpp/src/tests/run_federation_tests
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_federation_tests?rev=1350732&r1=1350731&r2=1350732&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_federation_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_federation_tests Fri Jun 15 18:35:34 2012
@@ -36,10 +36,10 @@ fi
 QPIDD_CMD="../qpidd --daemon --port 0 --no-data-dir $MODULES --auth no 
--log-enable=info+ --log-enable=debug+:Bridge --log-to-file"
 start_brokers() {
     rm -f fed_local.log fed_remote.log fed_b1.log fed_b2.log
-    LOCAL_PORT=$($QPIDD_CMD fed_local.log)
-    REMOTE_PORT=$($QPIDD_CMD fed_remote.log)
-    REMOTE_B1=$($QPIDD_CMD fed_b1.log)
-    REMOTE_B2=$($QPIDD_CMD fed_b2.log)
+    LOCAL_PORT=$($QPIDD_CMD fed_local.log --federation-tag LOCAL)
+    REMOTE_PORT=$($QPIDD_CMD fed_remote.log --federation-tag REMOTE)
+    REMOTE_B1=$($QPIDD_CMD fed_b1.log --federation-tag B1)
+    REMOTE_B2=$($QPIDD_CMD fed_b2.log --federation-tag B2)
 }
 
 stop_brokers() {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to