Author: tross
Date: Mon Mar 5 21:04:04 2012
New Revision: 1297230
URL: http://svn.apache.org/viewvc?rev=1297230&view=rev
Log:
NO-JIRA - Cleaned up qpidtoollibs
1) Fixed the update() method to work on all object types
2) Shortened the path needed in import statements
3) Updated the connection-stats test to use qpidtoollibs
Modified:
qpid/trunk/qpid/cpp/src/tests/ha_tests.py
qpid/trunk/qpid/python/qpid/testlib.py
qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py
qpid/trunk/qpid/tools/src/py/qpid-config
qpid/trunk/qpid/tools/src/py/qpid-stat
qpid/trunk/qpid/tools/src/py/qpidtoollibs/__init__.py
qpid/trunk/qpid/tools/src/py/qpidtoollibs/broker.py
Modified: qpid/trunk/qpid/cpp/src/tests/ha_tests.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ha_tests.py?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/ha_tests.py (original)
+++ qpid/trunk/qpid/cpp/src/tests/ha_tests.py Mon Mar 5 21:04:04 2012
@@ -24,7 +24,7 @@ from qpid.datatypes import uuid4
from brokertest import *
from threading import Thread, Lock, Condition
from logging import getLogger, WARN, ERROR, DEBUG
-from qpidtoollibs.broker import BrokerAgent
+from qpidtoollibs import BrokerAgent
log = getLogger("qpid.ha-tests")
Modified: qpid/trunk/qpid/python/qpid/testlib.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/testlib.py?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/testlib.py (original)
+++ qpid/trunk/qpid/python/qpid/testlib.py Mon Mar 5 21:04:04 2012
@@ -30,7 +30,7 @@ from qpid.harness import Skipped
from qpid.exceptions import VersionError
import qpid.messaging
-import qpidtoollibs.broker
+from qpidtoollibs import BrokerAgent
class TestBase(unittest.TestCase):
"""Base class for Qpid test cases.
@@ -203,7 +203,7 @@ class TestBase010(unittest.TestCase):
if 'broker_conn' not in self.__dict__:
self.broker_conn = qpid.messaging.Connection(str(self.broker))
self.broker_conn.open()
- self.broker_access =
qpidtoollibs.broker.BrokerAgent(self.broker_conn)
+ self.broker_access = BrokerAgent(self.broker_conn)
def connect(self, host=None, port=None):
url = self.broker
Modified: qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py (original)
+++ qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/management.py Mon Mar
5 21:04:04 2012
@@ -24,8 +24,17 @@ from threading import Condition
from time import sleep
import qmf.console
import qpid.messaging
+from qpidtoollibs import BrokerAgent
class ManagementTest (TestBase010):
+
+ def setup_access(self):
+ if 'broker_agent' not in self.__dict__:
+ self.conn2 = qpid.messaging.Connection(self.broker)
+ self.conn2.open()
+ self.broker_agent = BrokerAgent(self.conn2)
+ return self.broker_agent
+
"""
Tests for the management hooks
"""
@@ -559,12 +568,18 @@ class ManagementTest (TestBase010):
"""
Test message in/out stats for connection
"""
- self.startQmf()
+ agent = self.setup_access()
conn = self.connect()
session = conn.session("stats-session")
#using qmf find named session and the corresponding connection:
- conn_qmf = self.qmf.getObjects(_class="session",
name="stats-session")[0]._connectionRef_
+ conn_qmf = None
+ sessions = agent.getAllSessions()
+ for s in sessions:
+ if s.name == "stats-session":
+ conn_qmf = agent.getConnection(s.connectionRef)
+
+ assert(conn_qmf)
#send a message to a queue
session.queue_declare(queue="stats-q", exclusive=True,
auto_delete=True)
Modified: qpid/trunk/qpid/tools/src/py/qpid-config
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/tools/src/py/qpid-config?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/tools/src/py/qpid-config (original)
+++ qpid/trunk/qpid/tools/src/py/qpid-config Mon Mar 5 21:04:04 2012
@@ -29,7 +29,7 @@ home = os.environ.get("QPID_TOOLS_HOME",
sys.path.append(os.path.join(home, "python"))
from qpid.messaging import Connection
-from qpidtoollibs.broker import BrokerAgent
+from qpidtoollibs import BrokerAgent
usage = """
Usage: qpid-config [OPTIONS]
Modified: qpid/trunk/qpid/tools/src/py/qpid-stat
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/tools/src/py/qpid-stat?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/tools/src/py/qpid-stat (original)
+++ qpid/trunk/qpid/tools/src/py/qpid-stat Mon Mar 5 21:04:04 2012
@@ -30,8 +30,8 @@ from qpid.messaging import Connection
home = os.environ.get("QPID_TOOLS_HOME",
os.path.normpath("/usr/share/qpid-tools"))
sys.path.append(os.path.join(home, "python"))
-from qpidtoollibs.broker import BrokerAgent
-from qpidtoollibs.disp import Display, Header, Sorter, YN, Commas, TimeLong
+from qpidtoollibs import BrokerAgent
+from qpidtoollibs import Display, Header, Sorter, YN, Commas, TimeLong
class Config:
Modified: qpid/trunk/qpid/tools/src/py/qpidtoollibs/__init__.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/tools/src/py/qpidtoollibs/__init__.py?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/tools/src/py/qpidtoollibs/__init__.py (original)
+++ qpid/trunk/qpid/tools/src/py/qpidtoollibs/__init__.py Mon Mar 5 21:04:04
2012
@@ -16,3 +16,7 @@
# specific language governing permissions and limitations
# under the License.
#
+
+from qpidtoollibs.broker import *
+from qpidtoollibs.disp import *
+
Modified: qpid/trunk/qpid/tools/src/py/qpidtoollibs/broker.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/tools/src/py/qpidtoollibs/broker.py?rev=1297230&r1=1297229&r2=1297230&view=diff
==============================================================================
--- qpid/trunk/qpid/tools/src/py/qpidtoollibs/broker.py (original)
+++ qpid/trunk/qpid/tools/src/py/qpidtoollibs/broker.py Mon Mar 5 21:04:04 2012
@@ -95,9 +95,8 @@ class BrokerAgent(object):
self.sess.acknowledge()
return items
- def _doNameQuery(self, class_name, object_name,
package_name='org.apache.qpid.broker'):
- query = {'_what' : 'OBJECT',
- '_object_id' : {'_object_name' : "%s:%s:%s" % (package_name,
class_name, object_name)}}
+ def _doNameQuery(self, object_id):
+ query = {'_what' : 'OBJECT', '_object_id' : {'_object_name' :
object_id}}
correlator = self._sendRequest('_query_request', query)
response = self.reply_rx.fetch(10)
if response.properties['qmf.opcode'] != '_query_response':
@@ -123,13 +122,18 @@ class BrokerAgent(object):
objs.append(cls(self, item))
return objs
- def _getBrokerObject(self, cls, name):
- obj = self._doNameQuery(cls.__name__.lower(), name)
+ def _getBrokerObject(self, cls, oid):
+ obj = self._doNameQuery(oid)
if obj:
return cls(self, obj)
return None
def _getSingleObject(self, cls):
+ #
+ # getAllBrokerObjects is used instead of getBrokerObject(Broker,
'amqp-broker') because
+ # of a bug that used to be in the broker whereby by-name queries did not
return the
+ # object timestamps.
+ #
objects = self._getAllBrokerObjects(cls)
if objects: return objects[0]
return None
@@ -138,11 +142,6 @@ class BrokerAgent(object):
"""
Get the Broker object that contains broker-scope statistics and operations.
"""
- #
- # getAllBrokerObjects is used instead of getBrokerObject(Broker,
'amqp-broker') because
- # of a bug that used to be in the broker whereby by-name queries did not
return the
- # object timestamps.
- #
return self._getSingleObject(Broker)
@@ -155,32 +154,32 @@ class BrokerAgent(object):
def getAllConnections(self):
return self._getAllBrokerObjects(Connection)
- def getConnection(self, name):
- return self._getBrokerObject(Connection, name)
+ def getConnection(self, oid):
+ return self._getBrokerObject(Connection,
"org.apache.qpid.broker:connection:%s" % oid)
def getAllSessions(self):
return self._getAllBrokerObjects(Session)
- def getSession(self, name):
- return self._getBrokerObject(Session, name)
+ def getSession(self, oid):
+ return self._getBrokerObject(Session, "org.apache.qpid.broker:session:%s"
% oid)
def getAllSubscriptions(self):
return self._getAllBrokerObjects(Subscription)
- def getSubscription(self, name):
- return self._getBrokerObject(Subscription, name)
+ def getSubscription(self, oid):
+ return self._getBrokerObject(Subscription,
"org.apache.qpid.broker:subscription:%s" % oid)
def getAllExchanges(self):
return self._getAllBrokerObjects(Exchange)
def getExchange(self, name):
- return self._getBrokerObject(Exchange, name)
+ return self._getBrokerObject(Exchange,
"org.apache.qpid.broker:exchange:%s" % name)
def getAllQueues(self):
return self._getAllBrokerObjects(Queue)
def getQueue(self, name):
- return self._getBrokerObject(Queue, name)
+ return self._getBrokerObject(Queue, "org.apache.qpid.broker:queue:%s" %
name)
def getAllBindings(self):
return self._getAllBrokerObjects(Binding)
@@ -277,9 +276,9 @@ class BrokerAgent(object):
"""Delete an object of the specified type"""
pass
- def query(self, _type, name):
+ def query(self, _type, oid):
"""Query the current state of an object"""
- return self._getBrokerObject(self, _type, name)
+ return self._getBrokerObject(self, _type, oid)
class BrokerObject(object):
@@ -302,6 +301,9 @@ class BrokerObject(object):
return full_name[colon+1:]
return value
+ def getObjectId(self):
+ return self.content['_object_id']['_object_name']
+
def getAttributes(self):
return self.values
@@ -318,7 +320,7 @@ class BrokerObject(object):
"""
Reload the property values from the agent.
"""
- refreshed = self.broker._getBrokerObject(self.__class__, self.name)
+ refreshed = self.broker._getBrokerObject(self.__class__,
self.getObjectId())
if refreshed:
self.content = refreshed.content
self.values = self.content['_values']
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]